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

在 SymRegisterFunctionEntryCallback64NULL 中指定的用户定义的值。 通常,应用程序使用此参数将指针传递到数据结构,该结构允许回调函数建立一些上下文。

返回值

如果没有可用的函数表条目,则返回 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 或更高版本

另请参阅

DbgHelp 函数

SymRegisterFunctionEntryCallback64