Table of Contents

Class Arm64UnpackedUnwindInfo

Namespace
AsmResolver.PE.Exceptions
Assembly
AsmResolver.PE.dll

Represents an unpacked ARM64 .xdata unwind info record associated to a RUNTIME_FUNCTION of an ARM64 executable file.

public class Arm64UnpackedUnwindInfo : SegmentBase, ISegment, IOffsetProvider, IWritable, IArm64UnwindInfo, IUnwindInfo
Inheritance
Arm64UnpackedUnwindInfo
Implements
Inherited Members

Properties

EpilogScopes

Gets a collection of epilog scopes defined in this xdata unwind info.

public IList<Arm64EpilogScope> EpilogScopes { get; }

Property Value

IList<Arm64EpilogScope>

ExceptionHandler

When available, gets or sets a reference to the exception handler data.

public ISegmentReference ExceptionHandler { get; set; }

Property Value

ISegmentReference

ExceptionHandlerData

When available, gets or sets a reference to the exception handler data.

public ISegmentReference ExceptionHandlerData { get; set; }

Property Value

ISegmentReference

FunctionLength

Gets the number of instructions that this unwind info is protecting.

public uint FunctionLength { get; set; }

Property Value

uint

UnwindCodes

Gets or sets the raw bytes of the unwind codes.

public byte[] UnwindCodes { get; set; }

Property Value

byte[]

Version

Gets or sets the version of the xdata unwind info format.

public byte Version { get; set; }

Property Value

byte

Remarks

Currently, only version 0 is defined. Values of 1-3 are not permitted.

Methods

FromReader(PEReaderContext, ref BinaryStreamReader)

Reads an .xdata unwind information record from the provided input stream.

public static Arm64UnpackedUnwindInfo FromReader(PEReaderContext context, ref BinaryStreamReader reader)

Parameters

context PEReaderContext

The reader context.

reader BinaryStreamReader

The input stream.

Returns

Arm64UnpackedUnwindInfo

The read unwind record.

GetPhysicalSize()

Computes the number of bytes that the structure contains.

public override uint GetPhysicalSize()

Returns

uint

The number of bytes.

UpdateOffsets(in RelocationParameters)

Assigns a new file and virtual offset to the segment and all its sub-components.

public override void UpdateOffsets(in RelocationParameters parameters)

Parameters

parameters RelocationParameters

The parameters containing the new offset information for the segment.

Write(BinaryStreamWriter)

Serializes the structure to an output stream.

public override void Write(BinaryStreamWriter writer)

Parameters

writer BinaryStreamWriter

The output stream to write the data to.