symEnumSymbolsExW 函数 (dbghelp.h)

枚举进程中的所有符号。

语法

BOOL IMAGEAPI SymEnumSymbolsExW(
  [in]           HANDLE                          hProcess,
  [in]           ULONG64                         BaseOfDll,
  [in, optional] PCWSTR                          Mask,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
  [in, optional] PVOID                           UserContext,
  [in]           DWORD                           Options
);

parameters

[in] hProcess

进程的句柄。 此句柄必须以前传递给 SymInitialize 函数。

[in] BaseOfDll

模块的基址。 如果此值为零且 Mask 包含感叹号 (!) ,则函数将跨模块进行查找。 如果此值为零且 Mask 不包含感叹号,则函数将使用 SymSetContext 函数建立的范围。

[in, optional] Mask

一个通配符字符串,指示要枚举的符号的名称。 文本可以选择包含通配符“*”和“?”。

若要指定特定模块或模块集,请以指定模块的通配符字符串开头文本,后跟感叹号。 指定模块时,将忽略 BaseOfDll

含义
Foo
如果 BaseOfDll 不为零,则 SymEnumSymbols 将查找名为“foo”的全局符号。

如果 BaseOfDll 为零,则 SymEnumSymbols 将在最近调用 SymSetContext 函数所建立的范围内查找名为“foo”的本地符号。

Foo?
如果 BaseOfDll 不为零,则 SymEnumSymbols 将查找一个全局符号,该符号以“foo”开头,然后包含一个额外的字符,例如“傻瓜”和“foot”。

如果 BaseOfDll 为零,则 SymEnumSymbols 将查找一个以“foo”开头并随后包含一个额外字符的符号,例如“傻瓜”和“foot”。 搜索将在最近一次调用 SymSetContext 函数所建立的范围内。

foo*!bar

SymEnumSymbols 将在每个以文本“foo”开头的已加载模块中查找名为“bar”的符号。 它可以查找匹配项,例如“foot!bar”、“footlocker!bar”和“fool!bar”。

*!*

SymEnumSymbols 将枚举每个已加载模块中的每个符号。

[in] EnumSymbolsCallback

接收符号信息的 SymEnumSymbolsProcW 回调函数。

[in, optional] UserContext

传递给回调函数的用户定义值,或 NULL。 应用程序通常使用此参数来传递指向为回调函数提供上下文的数据结构的指针。

[in] Options

指示可能的选项。

含义
SYMENUM_OPTIONS_DEFAULT
1
使用默认选项。
SYMENUM_OPTIONS_INLINE
2
枚举内联符号。

返回值

如果函数成功,则返回值为 TRUE

如果函数失败,则返回值为 FALSE。 若要检索扩展的错误信息,请调用 GetLastError

注解

注意

dbghelp.h 标头将 SymEnumSymbolsEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
目标平台 Windows
标头 dbghelp.h
Library DbgHelp.lib
DLL DbgHelp.dll
可再发行组件 DbgHelp.dll 6.2 或更高版本