다음을 통해 공유


SymGetModuleInfo 함수(dbghelp.h)

지정된 모듈의 모듈 정보를 검색합니다.

구문

BOOL IMAGEAPI SymGetModuleInfo(
  [in]  HANDLE           hProcess,
  [in]  DWORD            dwAddr,
  [out] PIMAGEHLP_MODULE ModuleInfo
);

매개 변수

[in] hProcess

원래 SymInitialize 함수에 전달된 프로세스에 대한 핸들입니다.

[in] dwAddr

SymLoadModule64 함수에서 로드한 모듈 중 하나에 포함된 가상 주소

[out] ModuleInfo

IMAGEHLP_MODULE64 구조체에 대한 포인터입니다. SizeOfStruct 멤버는 IMAGEHLP_MODULE64 구조체의 크기로 설정해야 합니다. 값이 잘못되면 오류가 발생합니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다.

설명

모듈 테이블은 dwAddr이 포함된 모듈을 검색합니다. 모듈은 각 모듈의 부하 주소 및 크기를 기반으로 합니다. 유효한 모듈이 있으면 ModuleInfo 매개 변수가 모듈에 대한 정보로 채워집니다.

이 함수에서 사용하는 IMAGEHLP_MODULE64 구조체의 크기는 수년에 걸쳐 변경되었습니다. 호출 코드를 컴파일하는 데 사용된 DbgHelp.h보다 오래된 DbgHelp.dll 버전이 호출되면 이 함수는 오류 코드 ERROR_INVALID_PARAMETER 실패할 수 있습니다. 이는 시스템 버전(%WinDir%\System32\DbgHelp.dll)이 호출되는 경우에 가장 일반적으로 발생합니다. 시스템 버전의 DbgHelp.dll 호출하는 코드는 해당 Windows 릴리스에 적합한 SDK 또는 이전 릴리스의 SDK를 사용하여 컴파일해야 합니다.

권장 모델은 호출 소프트웨어와 함께 필요한 버전의 DbgHelp.dll 재배포하는 것입니다. 이렇게 하면 호출자가 가장 강력한 버전의 DbgHelp.dll 사용하고 업그레이드를 간소화할 수 있습니다. 최신 버전의 DbgHelp.dll 항상 Windows용 디버깅 도구 패키지에서 찾을 수 있습니다. 일반적으로 이전 버전에서 작동하도록 컴파일된 코드는 항상 최신 버전에서 작동합니다.

이 함수와 같은 모든 DbgHelp 함수는 단일 스레드입니다. 따라서 둘 이상의 스레드에서 이 함수로 호출하면 예기치 않은 동작이나 메모리 손상이 발생할 수 있습니다. 이를 방지하려면 둘 이상의 스레드에서 이 함수로의 모든 동시 호출을 동기화해야 합니다.

이 함수의 유니코드 버전을 호출하려면 DBGHELP_TRANSLATE_TCHAR 정의합니다. SymGetModuleInfoW64 는 DbgHelp.h에서 다음과 같이 정의됩니다.


BOOL
IMAGEAPI
SymGetModuleInfoW64(
    __in HANDLE hProcess,
    __in DWORD64 qwAddr,
    __out PIMAGEHLP_MODULEW64 ModuleInfo
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymGetModuleInfo64   SymGetModuleInfoW64
#endif

이 함수는 SymGetModuleInfo 함수를 대체합니다. 자세한 내용은 업데이트된 플랫폼 지원을 참조하세요. SymGetModuleInfo 는 DbgHelp.h에서 다음과 같이 정의됩니다.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetModuleInfo   SymGetModuleInfo64
#define SymGetModuleInfoW  SymGetModuleInfoW64
#else
BOOL
IMAGEAPI
SymGetModuleInfo(
    __in HANDLE hProcess,
    __in DWORD dwAddr,
    __out PIMAGEHLP_MODULE ModuleInfo
    );

BOOL
IMAGEAPI
SymGetModuleInfoW(
    __in HANDLE hProcess,
    __in DWORD dwAddr,
    __out PIMAGEHLP_MODULEW ModuleInfo
    );
#endif

요구 사항

   
대상 플랫폼 Windows
헤더 dbghelp.h
라이브러리 Dbghelp.lib
DLL Dbghelp.dll
재배포 가능 파일 DbgHelp.dll 5.1 이상

추가 정보

DbgHelp 함수

IMAGEHLP_MODULE64

SymInitialize

SymLoadModule64