共用方式為


ICorProfilerInfo3::GetModuleInfo2 Method

指定模組識別碼,傳回模組的檔名、模組的父元件標識碼,以及描述模組屬性的位掩碼。

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]要擷取資訊的模組標識碼。

ppBaseLoadAddress [out]載入模組的基位址。

cchName [in]傳回緩衝區的長度,以字元為單位 szName

pcchName [out]傳回之模組檔名之總字元長度的指標。

szName [out]呼叫端提供的寬字元緩衝區。 當方法傳回時,這個緩衝區會包含模組的檔名。

pAssemblyId [out]模組父元件的標識碼指標。

pdwModuleFlags [out]指定模組屬性之 COR_PRF_MODULE_FLAGS 列舉的值位掩碼。

Remarks

對於動態模組, szName 參數是模組的元數據名稱,而基位址為0(零)。 元資料名稱是 [模組] 資料表中元資料內 [名稱] 資料行中的值。 這也會公開為 Module.ScopeName Managed 程式代碼的屬性,以及作為 szNameIMetaDataImport::GetScopeProps 方法的 參數,公開至 Unmanaged 元數據用戶端程式代碼。

GetModuleInfo2雖然方法可能會在模組標識碼存在時立即呼叫,但除非分析工具收到 ICorProfilerCallback::ModuleAttachedToAssembly 回呼,否則父元件的標識符將無法使用。

傳回時 GetModuleInfo2 ,您必須確認 szName 緩衝區夠大,足以包含模組的完整檔名。 若要這樣做,請比較指向的值 pcchName 與 參數的值 cchName 。 如果 pcchName 指向大於 cchName的值,請配置較大的 szName 緩衝區、以新的、較大的大小更新 cchName ,然後再次呼叫 GetModuleInfo2

或者,您可以先呼叫 GetModuleInfo2 長度為零的 szName 緩衝區,以取得正確的緩衝區大小。 然後,您可以將緩衝區大小設定為 中所 pcchName 傳回的值,然後再呼叫 GetModuleInfo2 一次。

Requirements

平台:請參閱系統需求

頁眉: CorProf.idl、CorProf.h

Library: CorGuids.lib

.NET Framework 版本: 自 4 起可用

See also