SymEnumSymbolsExW function (dbghelp.h)

Enumerates all symbols in a process.

Syntax

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

A handle to a process. This handle must have been previously passed to the SymInitialize function.

[in] BaseOfDll

The base address of the module. If this value is zero and Mask contains an exclamation point (!), the function looks across modules. If this value is zero and Mask does not contain an exclamation point, the function uses the scope established by the SymSetContext function.

[in, optional] Mask

A wildcard string that indicates the names of the symbols to be enumerated. The text can optionally contain the wildcards, "*" and "?".

To specify a specific module or set of modules, begin the text with a wildcard string specifying the module, followed by an exclamation point. When specifying a module, BaseOfDll is ignored.

Value Meaning
foo
If BaseOfDll is not zero, then SymEnumSymbols will look for a global symbol named "foo".

If BaseOfDll is zero, then SymEnumSymbols will look for a local symbol named "foo" within the scope established by the most recent call to the SymSetContext function.

foo?
If BaseOfDll is not zero, then SymEnumSymbols will look for a global symbol that starts with "foo" and contains one extra character afterwards, such as "fool" and "foot".

If BaseOfDll is zero, then SymEnumSymbols will look for a symbol that starts with "foo" and contains one extra character afterwards, such as "fool" and "foot". The search would be within the scope established by the most recent call to the SymSetContext function.

foo*!bar

SymEnumSymbols will look in every loaded module that starts with the text "foo" for a symbol called "bar". It could find matches such as these, "foot!bar", "footlocker!bar", and "fool!bar".

*!*

SymEnumSymbols will enumerate every symbol in every loaded module.

[in] EnumSymbolsCallback

A SymEnumSymbolsProcW callback function that receives the symbol information.

[in, optional] UserContext

A user-defined value that is passed to the callback function, or NULL. This parameter is typically used by an application to pass a pointer to a data structure that provides context for the callback function.

[in] Options

Indicates possible options.

Value Meaning
SYMENUM_OPTIONS_DEFAULT
1
Use the default options.
SYMENUM_OPTIONS_INLINE
2
Enumerate inline symbols.

Return value

If the function succeeds, the return value is TRUE.

If the function fails, the return value is FALSE. To retrieve extended error information, call GetLastError.

Remarks

Note

The dbghelp.h header defines SymEnumSymbolsEx as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that is not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.

Requirements

Requirement Value
Target Platform Windows
Header dbghelp.h
Library DbgHelp.lib
DLL DbgHelp.dll
Redistributable DbgHelp.dll 6.2 or later