다음을 통해 공유


ICorProfilerInfo3::GetModuleInfo2 Method

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

Syntax

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);

Parameters

moduleId [in] 정보를 검색할 모듈의 ID입니다.

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

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

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

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

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

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

Remarks

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

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

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

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

Requirements

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

머리글: CorProf.idl, CorProf.h

Library: CorGuids.lib

.NET Framework 버전: 4 이후 사용 가능

See also