取得函式的父類別、元資料標記和 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 位置的元數據令牌可用來存取函式的元數據。
透過 pClassId 和 typeArgs 參數傳回的類別標識碼和型別自變數取決於傳入 frameInfo 參數的值,如下表所示。
frameInfo 參數的值 |
Result |
|---|---|
COR_PRF_FRAME_INFO從FunctionEnter2回呼取得的值 |
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 起 可用