ICorProfilerInfo3::GetModuleInfo2 메서드

모듈 ID가 지정된 경우 모듈의 파일 이름, 모듈의 부모 어셈블리 ID 및 모듈 속성을 설명하는 비트 마스크를 반환합니다.

구문

HRESULT GetModuleInfo2(  
    [in]  ModuleID   moduleId,  
    [out] LPCBYTE    *ppBaseLoadAddress,  
    [in]  ULONG      cchName,  
    [out] ULONG      *pcchName,  
    [out, annotation("__out_ecount_part(cchName, *pcchName)")]  
          WCHAR      szName[] ,  
    [out] AssemblyID *pAssemblyId);  
    [out] DWORD                 *pdwModuleFlags);  

매개 변수

moduleId
[in] 정보가 검색되는 모듈의 ID입니다.

ppBaseLoadAddress
[out] 모듈이 로드되는 기본 주소입니다.

cchName
[in] szName 반환 버퍼의 길이(문자)입니다.

pcchName
[out] 반환되는 모듈 파일 이름의 총 문자 길이에 대한 포인터입니다.

szName
[out] 호출자가 제공한 와이드 문자 버퍼입니다. 메서드가 반환되면 이 버퍼에 모듈의 파일 이름이 포함됩니다.

pAssemblyId
[out] 모듈의 부모 어셈블리 ID에 대한 포인터입니다.

pdwModuleFlags
[out] 모듈 속성을 지정하는 COR_PRF_MODULE_FLAGS 열거형의 값 비트 마스크입니다.

설명

동적 모듈의 경우 szName 매개 변수는 모듈의 메타데이터 이름이고 기본 주소는 0입니다. 메타데이터 이름은 메타데이터 내부에서 Module 테이블의 Name 열에 있는 값입니다. 관리 코드에는 Module.ScopeName 속성으로 노출되고 관리되지 않는 메타데이터 클라이언트 코드에는 IMetaDataImport::GetScopeProps 메서드의 szName 매개 변수로 노출됩니다.

모듈 ID가 있으면 즉시 GetModuleInfo2 메서드가 호출될 수 있지만 프로파일러가 ICorProfilerCallback::ModuleAttachedToAssembly 콜백을 수신할 때까지 부모 어셈블리의 ID를 사용할 수 없습니다.

GetModuleInfo2가 반환된 후 szName 버퍼가 모듈의 전체 파일 이름을 포함하기에 충분히 큰지 확인해야 합니다. 이렇게 하려면 pcchName가 가리키는 값을 cchName 매개 변수의 값과 비교합니다. pcchNamecchName보다 큰 값을 가리키는 경우 더 큰 szName 버퍼를 할당하고 cchName을 더 큰 새 크기로 업데이트한 후 GetModuleInfo2를 다시 호출합니다.

또는 길이가 0인 szName 버퍼로 GetModuleInfo2를 먼저 호출하여 올바른 버퍼 크기를 구합니다. 그런 다음 버퍼 크기를 pcchName에 반환된 값으로 설정하고 GetModuleInfo2을 다시 호출합니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4부터 사용 가능

참고 항목