Поделиться через


Функция 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

Базовый адрес модуля. Если это значение равно нулю и Маска содержит восклицательный знак (!), функция выглядит по модулям. Если это значение равно нулю и Маска не содержит восклицательный знак, функция использует область, установленную функцией SymSetContext.

[in, optional] Mask

Подстановочный знак, указывающий имена символов, которые необходимо перечислить. Текст может содержать подстановочные знаки, "*" и "?".

Чтобы указать определенный модуль или набор модулей, начните текст со строкой подстановочного знака, указывающей модуль, а затем восклицательный знак. При указании модуля BaseOfDll игнорируется.

Ценность Значение
foo
Если BaseOfDll не равно нулю, SymEnumSymbols будет искать глобальный символ с именем foo.

Если BaseOfDll равно нулю, SymEnumSymbols будет искать локальный символ с именем foo в области, установленной самым последним вызовом функции SymSetContext.

foo?
Если BaseOfDll не равно нулю, то SymEnumSymbols будет искать глобальный символ, который начинается с "foo" и содержит один дополнительный символ после этого, например "дурак" и "фут".

Если BaseOfDll равно нулю, то SymEnumSymbols будет искать символ, который начинается с "foo" и содержит один дополнительный символ после этого, например "дурак" и "фут". Поиск будет находиться в области, установленной последним вызовом функции 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 как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
целевая платформа Виндоус
заголовка dbghelp.h
библиотеки DbgHelp.lib
DLL DbgHelp.dll
распространяемый DbgHelp.dll 6.2 или более поздней версии