Table of Contents

Class UnmanagedDataSource

Namespace
AsmResolver.IO
Assembly
AsmResolver.dll

Represents a data source that obtains its data from a block of unmanaged memory.

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

Constructors

UnmanagedDataSource(nint, ulong)

Creates a new instance of the UnmanagedDataSource class.

public UnmanagedDataSource(nint basePointer, ulong length)

Parameters

basePointer nint

The base pointer to start reading from.

length ulong

The total length of the data source.

UnmanagedDataSource(void*, ulong)

Creates a new instance of the UnmanagedDataSource class.

public UnmanagedDataSource(void* basePointer, ulong length)

Parameters

basePointer void*

The base pointer to start reading from.

length ulong

The total length of the data source.

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.