Функция 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 или более поздней версии |