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 或更高版本 |