共用方式為


ICorProfilerInfo2::GetFunctionInfo2 Method

取得函式的父類別、元資料標記和 ClassID 每個型別自變數的 。

Syntax

HRESULT GetFunctionInfo2(
    [in]  FunctionID funcId,
    [in]  COR_PRF_FRAME_INFO frameInfo,
    [out] ClassID *pClassId,
    [out] ModuleID *pModuleId,
    [out] mdToken *pToken,
    [in]  ULONG32 cTypeArgs,
    [out] ULONG32 *pcTypeArgs,
    [out] ClassID typeArgs[]);

Parameters

funcId [in]要取得父類別和其他資訊的函式標識碼。

frameInfo [in] COR_PRF_FRAME_INFO 值,指向堆疊框架的相關信息。

pClassId [out]函式之父類別的指標。

pModuleId [out]定義函式父類別之模組的指標。

pToken [out]函式元數據令牌的指標。

cTypeArgs [in]陣列的大小 typeArgs

pcTypeArgs [out]值總數的 ClassID 指標。

typeArgs [out]值的陣列,每個陣列 ClassID 都是函式的類型自變數標識碼。 當方法傳回時, typeArgs 將會包含部分或所有 ClassID 值。

Remarks

分析工具程式代碼可以呼叫 ICorProfilerInfo::GetModuleMetaData 來取得指定模組的 元數據 介面。 傳回至 所參考 pToken 位置的元數據令牌可用來存取函式的元數據。

透過 pClassIdtypeArgs 參數傳回的類別標識碼和型別自變數取決於傳入 frameInfo 參數的值,如下表所示。

frameInfo 參數的值 Result
COR_PRF_FRAME_INFOFunctionEnter2回呼取得的值 ClassID在所參考pClassId的位置中傳回的 ,以及數位中typeArgs傳回的所有型別自變數,都是確切的。
COR_PRF_FRAME_INFO從回呼以外的來源取得的 。FunctionEnter2 無法判斷確切 ClassID 和型別自變數。 也就是說, ClassID 可能是 Null,而某些型別自變數可能會傳回為 Object
Zero 無法判斷確切 ClassID 和型別自變數。 也就是說, ClassID 可能是 Null,而某些型別自變數可能會傳回為 Object

傳回之後 GetFunctionInfo2 ,您必須確認 typeArgs 緩衝區夠大,足以包含所有 ClassID 值。 若要這樣做,請比較指向的值 pcTypeArgs 與 參數的值 cTypeArgs 。 如果 pcTypeArgs 指向大於除 cTypeArgs 以值大小 ClassID 的值,請配置較大的 pcTypeArgs 緩衝區、以新的、較大的大小更新 cTypeArgs ,然後再次呼叫 GetFunctionInfo2

或者,您可以先呼叫 GetFunctionInfo2 長度為零的 pcTypeArgs 緩衝區,以取得正確的緩衝區大小。 然後,您可以將緩衝區大小設定為除以 值大小ClassID傳回pcTypeArgs的值,然後再呼叫GetFunctionInfo2一次。

Requirements

平台:請參閱系統需求

頁眉: CorProf.idl、CorProf.h

Library: CorGuids.lib

.NET Framework 版本:自 2.0 起 可用

See also