다음을 통해 공유


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.ScopeName 속성을 관리되는 코드로, IMetaDataImport::GetScopeProps 메서드의 szName 매개 변수를 관리되지 않는 메타데이터 클라이언트 코드로도 노출됩니다.

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

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

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

이러한 두 가지 방법에 대한 자세한 내용은 프로파일링 API 메서드 규칙의 "Caller-Allocated 버퍼" 섹션을 참조하십시오.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4

참고 항목

참조

ICorProfilerInfo 인터페이스

기타 리소스

프로파일링 인터페이스

프로파일링(관리되지 않는 API 참조)