ReadProcessMemory

指定したプロセス内のメモリ領域からデータを読み取る。読み取る全領域がアクセス可能でなければ、操作は失敗する。

ReadProcessMemory hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead

hProcess : [intptr] メモリが読み取られるプロセスへのハンドル。ハンドルはそのプロセスに対する PROCESS_VM_READ アクセス権を持つ必要がある。
lpBaseAddress : [intptr] 指定したプロセス内で読み取りを開始するベースアドレスへのポインタ。データ転送が行われる前に、システムはベースアドレスと指定サイズのメモリ内の全データが読み取りアクセス可能であることを検証し、アクセスできない場合は関数は失敗する。
lpBuffer : [intptr] 指定したプロセスのアドレス空間からの内容を受け取るバッファへのポインタ。
nSize : [int] 指定したプロセスから読み取るバイト数。
lpNumberOfBytesRead : [var] 指定したバッファへ転送されたバイト数を受け取る変数へのポインタ。*lpNumberOfBytesRead* が **NULL** の場合、このパラメータは無視される。

(プラグイン / モジュール : kernel32.dll)

解説

指定したプロセス内のメモリ領域からデータを読み取る。読み取る全領域がアクセス可能でなければ、操作は失敗する。

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 である。拡張エラー情報を取得するには
[GetLastError](../errhandlingapi/nf-errhandlingapi-getlasterror.md)
を呼び出す。要求された読み取り操作がプロセスのアクセス不能な領域に跨る場合、関数は失敗する。

[備考]
**ReadProcessMemory**
は、指定したアドレス範囲のデータを指定したプロセスのアドレス空間から現在のプロセスの指定したバッファへコピーする。PROCESS_VM_READ
アクセスを持つハンドルを保持するプロセスであれば、この関数を呼び出すことができる。読み取る全領域はアクセス可能でなければならず、アクセス不能の場合は関数は失敗する。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs