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


Функция SymEnumerateModules (dbghelp.h)

Перечисляет все модули, загруженные для процесса функцией SymLoadModule64 или SymLoadModuleEx .

Синтаксис

BOOL IMAGEAPI SymEnumerateModules(
  [in]           HANDLE                    hProcess,
  [in]           PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
  [in, optional] PVOID                     UserContext
);

Параметры

[in] hProcess

Дескриптор процесса, который изначально был передан функции SymInitialize .

[in] EnumModulesCallback

Функция обратного вызова перечисления. Эта функция вызывается один раз для каждого модуля. Дополнительные сведения см. в разделе SymEnumerateModulesProc64.

[in, optional] UserContext

Определяемое пользователем значение или NULL. Это значение просто передается в функцию обратного вызова. Как правило, этот параметр используется приложением для передачи указателя на структуру данных, которая позволяет функции обратного вызова установить определенный тип контекста.

Возвращаемое значение

Если функция выполнена успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Комментарии

Функция SymEnumerateModules64 перечисляет все модули, загруженные для процесса SymLoadModule64, даже если загрузка символов откладывается. Функция обратного вызова перечисления вызывается один раз для каждого модуля и передает сведения о модуле.

Все функции DbgHelp, такие как эта, являются однопоточными. Таким образом, вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.

Чтобы вызвать версию юникода этой функции, определите DBGHELP_TRANSLATE_TCHAR. SymEnumerateModulesW64 определяется в Dbghelp.h следующим образом.


BOOL
IMAGEAPI
SymEnumerateModulesW64(
    __in HANDLE hProcess,
    __in PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback,
    __in_opt PVOID UserContext
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymEnumerateModules64  SymEnumerateModulesW64
#endif

Эта функция заменяет функцию SymEnumerateModules . Дополнительные сведения см. в разделе Обновленная поддержка платформы. SymEnumerateModules определяется в Dbghelp.h следующим образом.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateModules SymEnumerateModules64
#else
BOOL
IMAGEAPI
SymEnumerateModules(
    __in HANDLE hProcess,
    __in PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
    __in_opt PVOID UserContext
    );
#endif

Примеры

Пример см. в разделе Перечисление модулей символов.

Требования

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

См. также раздел

Функции DbgHelp

SymEnumerateModulesProc64

SymInitialize

SymLoadModule64