Win32 API 日本語リファレンス
ホーム › System.Diagnostics.Debug › PREAD_PROCESS_MEMORY_ROUTINE64

PREAD_PROCESS_MEMORY_ROUTINE64

コールバック

シグネチャ

BOOL PREAD_PROCESS_MEMORY_ROUTINE64(
    HANDLE hProcess,
    ULONGLONG qwBaseAddress,
    void* lpBuffer,
    DWORD nSize,
    DWORD* lpNumberOfBytesRead
);

パラメーター

フィールド型説明
hProcessHANDLEスタックトレースの生成対象となるプロセスのハンドル。
qwBaseAddressULONGLONG読み取るメモリのベースアドレス。
lpBuffervoid*読み取ったメモリを受け取るバッファーへのポインター。
nSizeDWORD読み取るメモリのサイズ (バイト単位)。
lpNumberOfBytesReadDWORD*実際に読み取られたバイト数を受け取る変数へのポインター。

公式ドキュメント

StackWalk64 関数と共に使用されるアプリケーション定義のコールバック関数です。 この関数は、StackWalk64 がプロセスのアドレス空間からメモリを読み取る必要があるときに呼び出されます。

PREAD_PROCESS_MEMORY_ROUTINE64 型は、このコールバック関数へのポインターを定義します。 ReadProcessMemoryProc64 は、アプリケーション定義の関数名のプレースホルダーです。

戻り値

関数が成功した場合、戻り値は TRUE にしてください。関数が失敗した場合、戻り値は FALSE にしてください。

解説(Remarks)

多くの場合、この関数は対応する ReadProcessMemory の呼び出しによってコールバックを処理するのが最適です。

この関数は、要求されたメモリをできる限り多く読み取る必要があります。要求されたメモリの一部しか読み取れなかった場合の処理は、 StackWalk64 関数が行います。

このコールバック関数は、PREAD_PROCESS_MEMORY_ROUTINE コールバック関数に代わるものです。 PREAD_PROCESS_MEMORY_ROUTINE は Dbghelp.h で次のように定義されています。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE64
#else
typedef
BOOL
(__stdcall *PREAD_PROCESS_MEMORY_ROUTINE)(
    __in HANDLE hProcess,
    __in DWORD lpBaseAddress,
    __out_bcount(nSize) PVOID lpBuffer,
    __in DWORD nSize,
    __out PDWORD lpNumberOfBytesRead
    );
#endif
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)