PREAD_PROCESS_MEMORY_ROUTINEコールバック関数 (dbghelp.h)

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

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

構文

PREAD_PROCESS_MEMORY_ROUTINE PreadProcessMemoryRoutine;

BOOL PreadProcessMemoryRoutine(
  [in]  HANDLE hProcess,
  [in]  DWORD lpBaseAddress,
  [out] PVOID lpBuffer,
  [in]  DWORD nSize,
  [out] PDWORD lpNumberOfBytesRead
)
{...}

パラメーター

[in] hProcess

スタック トレースが生成されるプロセスへのハンドル。

[in] lpBaseAddress

読み取るメモリのベース アドレス。

[out] lpBuffer

読み取るメモリを受け取るバッファーへのポインター。

[in] nSize

読み取るメモリのサイズ (バイト単位)。

[out] lpNumberOfBytesRead

実際に読み取られたバイト数を受け取る変数へのポインター。

戻り値

関数が成功した場合、戻り値は TRUE である必要があります。 関数が失敗した場合、戻り値は FALSE である必要があります。

注釈

多くの場合、この関数は 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

要件

要件
対象プラットフォーム Windows
ヘッダー dbghelp.h
再頒布可能パッケージ DbgHelp.dll 5.1 以降

こちらもご覧ください

DbgHelp 関数

ReadProcessMemory

StackWalk64