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

指定したバッファーに転送されたバイト数を受け取る変数へのポインター。 lpNumberOfBytesReadNULL の場合、パラメーターは無視されます。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

要求された読み取り操作が、アクセスできないプロセスの領域に渡ると、関数は失敗します。

解説

ReadProcessMemory は、指定したアドレス範囲のデータを、指定したプロセスのアドレス空間から現在のプロセスの指定されたバッファーにコピーします。 PROCESS_VM_READアクセス権を持つハンドルを持つプロセスは、 関数を呼び出すことができます。

読み取る領域全体にアクセスできる必要があり、アクセスできない場合、関数は失敗します。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー memoryapi.h (Windows.h を含む)
Library onecore.lib
[DLL] Kernel32.dll

関連項目

デバッグ関数OpenProcessデバッグ用プロセス関数VirtualAllocExWriteProcessMemory