IDebugMemoryBytes2::ReadAt
Reads a sequence of bytes, starting at a given location.
HRESULT ReadAt(
IDebugMemoryContext2* pStartContext,
DWORD dwCount,
BYTE* rgbMemory,
DWORD* pdwRead,
DWORD* pdwUnreadable
);
int ReadAt(
IDebugMemoryContext2 pStartContext,
uint dwCount,
byte[] rgbMemory,
out uint pdwRead,
ref uint pdwUnreadable
);
Parameters
pStartContext
[in] The IDebugMemoryContext2 object that specifies where to start reading bytes.dwCount
[in] The number of bytes to read. Also specifies the length of the rgbMemory array.rgbMemory
[in, out] Array filled in with the bytes actually read.pdwRead
[out] Returns the number of contiguous bytes actually read.pdwUnreadable
[in, out] Returns the number of unreadable bytes. May be a null value if the client is uninterested in the number of unreadable bytes.
Return Value
If successful, returns S_OK; otherwise, returns an error code.
Remarks
If 100 bytes are requested and the first 50 are readable, the next 20 are unreadable, and the remaining 30 are readable, this method returns:
*pdwRead = 50
*pdwUnreadable = 20
In this case, because *pdwRead + *pdwUnreadable < dwCount, the caller must make an additional call to read the remaining 30 bytes of the original 100 requested and the IDebugMemoryContext2 object passed in the pStartContext parameter must be advanced by 70.