Share via


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.

See Also

Reference

IDebugMemoryBytes2

IDebugMemoryContext2