共用方式為


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