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