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 回撥,才會有可用的父組件識別碼。

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

或者,您也可以先使用長度為零的 szName 緩衝區來呼叫 GetModuleInfo2,以取得正確的緩衝區大小。 接著您就可以將緩衝區大小設定為 pcchName 中傳回的值,並再次呼叫 GetModuleInfo2

規格需求

平台:請參閱系統需求

標頭: CorProf.idl、CorProf.h

程式庫:CorGuids.lib

.NET Framework版本:自 4 起可用

另請參閱