ReadProcessMemory 関数 (memoryapi.h)
構文
BOOL ReadProcessMemory(
[in] HANDLE hProcess,
[in] LPCVOID lpBaseAddress,
[out] LPVOID lpBuffer,
[in] SIZE_T nSize,
[out] SIZE_T *lpNumberOfBytesRead
);
パラメーター
[in] hProcess
読み取られるメモリを含むプロセスへのハンドル。 ハンドルには、プロセスへのPROCESS_VM_READアクセス権が必要です。
[in] lpBaseAddress
読み取り元の指定したプロセスのベース アドレスへのポインター。 データ転送が行われる前に、システムは、指定されたサイズのベース アドレスとメモリ内のすべてのデータに読み取りアクセスが可能であることを確認し、アクセスできない場合は関数が失敗します。
[out] lpBuffer
指定したプロセスのアドレス空間から内容を受け取るバッファーへのポインター。
[in] nSize
指定したプロセスから読み取るバイト数。
[out] lpNumberOfBytesRead
指定したバッファーに転送されたバイト数を受け取る変数へのポインター。 lpNumberOfBytesRead が NULL の場合、パラメーターは無視されます。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
要求された読み取り操作が、アクセスできないプロセスの領域に渡ると、関数は失敗します。
解説
ReadProcessMemory は、指定したアドレス範囲のデータを、指定したプロセスのアドレス空間から現在のプロセスの指定されたバッファーにコピーします。 PROCESS_VM_READアクセス権を持つハンドルを持つプロセスは、 関数を呼び出すことができます。
読み取る領域全体にアクセスできる必要があり、アクセスできない場合、関数は失敗します。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | memoryapi.h (Windows.h を含む) |
Library | onecore.lib |
[DLL] | Kernel32.dll |
関連項目
デバッグ関数、 OpenProcess、 デバッグ用プロセス関数、 VirtualAllocEx、 WriteProcessMemory