IDebugMemoryBytes2::ReadAt
指定された位置から始まるバイト シーケンスを読み取ります。
構文
int ReadAt(
IDebugMemoryContext2 pStartContext,
uint dwCount,
byte[] rgbMemory,
out uint pdwRead,
ref uint pdwUnreadable
);
パラメーター
pStartContext
[入力] バイトの読み取りの開始位置を指定する IDebugMemoryContext2 オブジェクト。
dwCount
[入力] 読み取るバイト数。 rgbMemory
配列の長さも指定します。
rgbMemory
[入力、出力] 実際に読み取られたバイトが格納される配列。
pdwRead
[出力] 実際に読み取られた連続するバイト数を返します。
pdwUnreadable
[入力、出力] 読み取り不可能なバイト数を返します。 クライアントが読み取り不可能なバイト数を必要としない場合、null 値にすることができます。
戻り値
成功した場合は、S_OK を返します。それ以外の場合はエラー コードを返します。
解説
100 バイトが要求され、最初の 50 が読み取り可能、次の 20 が読み取り不可能、残りの 30 が読み取り可能な場合、このメソッドは次のように返します。
*pdwRead
= 50
*pdwUnreadable
= 20
この場合、*pdwRead + *pdwUnreadable < dwCount
であるため、呼び出し元は要求された元の 100 のうち残りの 30 バイトを読み取るために追加の呼び出しを行う必要があります。また、pStartContext
パラメーターで渡される IDebugMemoryContext2 オブジェクトは、70 進める必要があります。