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


Функция 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 будет искать локальный символ с именем foo в область, установленной последним вызовом функции SymSetContext.

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

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

Требования

   
Целевая платформа Windows
Header dbghelp.h
Библиотека DbgHelp.lib
DLL DbgHelp.dll
Распространяемые компоненты DbgHelp.dll 6.2 или более поздней версии