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
);

参数

[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”和“傻瓜!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 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
目标平台 窗户
标头 dbghelp.h
DbgHelp.lib
DLL DbgHelp.dll
可再发行组件 DbgHelp.dll 6.2 或更高版本