Table of Contents

Class DisplacedDataSource

Namespace
AsmResolver.IO
Assembly
AsmResolver.dll

Represents a data source that was moved in memory to a different address.

public class DisplacedDataSource : ISpanDataSource, IDataSource
Inheritance
DisplacedDataSource
Implements
Inherited Members
Extension Methods

Constructors

DisplacedDataSource(IDataSource, long)

Creates a new displace data source.

public DisplacedDataSource(IDataSource dataSource, long displacement)

Parameters

dataSource IDataSource

The original data source that was moved.

displacement long

The number of bytes the data source was shifted by.

Exceptions

ArgumentNullException

Occurs when dataSource is null.

Properties

BaseAddress

Gets the first byte address of the data source that is accessible.

public ulong BaseAddress { get; }

Property Value

ulong

this[ulong]

Reads a single byte at the provided address.

public byte this[ulong address] { get; }

Parameters

address ulong

The address to read from.

Property Value

byte

Length

Gets the number of bytes accessible in the data source.

public ulong Length { get; }

Property Value

ulong

Methods

IsValidAddress(ulong)

Determines whether the provided address is a valid address in the data source.

public bool IsValidAddress(ulong address)

Parameters

address ulong

The address to verify.

Returns

bool

true if the address is valid, false otherwise.

ReadBytes(ulong, byte[], int, int)

Reads a block of data from the data source.

public int ReadBytes(ulong address, byte[] buffer, int index, int count)

Parameters

address ulong

The starting address to read from.

buffer byte[]

The buffer that receives the read bytes.

index int

The index into the buffer to start writing at.

count int

The number of bytes to read.

Returns

int

The number of bytes that were read.

ReadBytes(ulong, Span<byte>)

Reads a block of data from the data source.

public int ReadBytes(ulong address, Span<byte> buffer)

Parameters

address ulong

The starting address to read from.

buffer Span<byte>

The buffer that receives the read bytes.

Returns

int

The number of bytes that were read.