PSYMBOL_FUNCENTRY_CALLBACK回调函数 (dbghelp.h)
与 SymRegisterFunctionEntryCallback64 函数一起使用的应用程序定义的回调函数。 它由堆栈行走过程调用。
PSYMBOL_FUNCENTRY_CALLBACK64类型定义指向此回调函数的指针。 SymRegisterFunctionEntryCallbackProc64 是应用程序定义的函数名称的占位符。
语法
PSYMBOL_FUNCENTRY_CALLBACK PsymbolFuncentryCallback;
PVOID PsymbolFuncentryCallback(
[in] HANDLE hProcess,
[in] DWORD AddrBase,
[in, optional] PVOID UserContext
)
{...}
参数
[in] hProcess
最初传递给 StackWalk64 函数的进程句柄。
[in] AddrBase
回调函数应为其返回函数表条目的指令的地址。
[in, optional] UserContext
在 SymRegisterFunctionEntryCallback64 或 NULL 中指定的用户定义的值。 通常,应用程序使用此参数将指针传递到数据结构,该结构允许回调函数建立一些上下文。
返回值
如果没有可用的函数表条目,则返回 NULL 值。
成功后,返回指向 IMAGE_RUNTIME_FUNCTION_ENTRY 结构的指针。 有关此函数的定义,请参阅头文件 WinNT.h。
注解
结构必须以在正在调试的进程中存在的形式返回。 某些成员可能是指向进程地址空间中其他位置的指针。 可以调用 ReadProcessMemoryProc64 回调函数来检索这些位置的信息。
调用应用程序通过注册的回调函数作为 对 StackWalk64 函数的调用而调用。 调用应用程序必须做好应对可能导致的副作用的准备。 如果应用程序只有一个被多个线程使用的回调函数,则可能需要在回调函数的上下文中同步某些类型的数据访问。
此函数类似于 FunctionTableAccessProc64 回调函数。 区别在于 FunctionTableAccessProc64 返回 IMAGE_FUNCTION_ENTRY 结构,而此函数返回 IMAGE_RUNTIME_FUNCTION_ENTRY 结构。
此回调函数取代 PSYMBOL_FUNCENTRY_CALLBACK 回调函数。 PSYMBOL_FUNCENTRY_CALLBACK 在 Dbghelp.h 中定义如下。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PSYMBOL_FUNCENTRY_CALLBACK PSYMBOL_FUNCENTRY_CALLBACK64
#endif
typedef
PVOID
(CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(
__in HANDLE hProcess,
__in DWORD AddrBase,
__in_opt PVOID UserContext
);
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | dbghelp.h |
可再发行组件 | DbgHelp.dll 5.1 或更高版本 |