다음을 통해 공유


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
헤더 dbghelp.h
라이브러리 Dbghelp.lib
DLL Dbghelp.dll
재배포 가능 파일 DbgHelp.dll 5.1 이상

추가 정보

DbgHelp 함수

SymEnumerateModulesProc64

SymInitialize

SymLoadModule64