次の方法で共有


ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs メソッド

指定されたメタデータ トークン、包含クラス、および任意の型引数の ClassID 値を使用して、関数の FunctionID を取得します。

構文

HRESULT GetFunctionFromTokenAndTypeArgs(  
    [in] ModuleID moduleID,  
    [in] mdMethodDef funcDef,  
    [in] ClassID classId,  
    [in] ULONG32 cTypeArgs,  
    [in, size_is(cTypeArgs)] ClassID typeArgs[],  
    [out] FunctionID* pFunctionID);  

パラメーター

moduleID
[in] 関数が存在するモジュールの ID。

funcDef
[in] 関数を参照する mdMethodDef メタデータ トークン。

classId
[in] 関数の包含クラスの ID。

cTypeArgs
[in] 指定された関数についての型パラメーターの数。 非ジェネリック関数の場合、この値は 0 である必要があります。

typeArgs
[in] ClassID 値の配列。それぞれが関数の引数になります。 cTypeArgs が 0 に設定されている場合、typeArgs の値は NULL になります。

pFunctionID
[out] 指定された関数の FunctionID へのポインター。

解説

mdMethodDef メタデータ トークンの代わりに mdMethodRef メタデータを指定して GetFunctionFromTokenAndTypeArgs メソッドを呼び出すと、予期しない結果が発生する可能性があります。 呼び出し元は、mdMethodRef を渡すときにこれを mdMethodDef に解決する必要があります。

関数がまだ読み込まれていない場合、GetFunctionFromTokenAndTypeArgs を呼び出すと読み込みがトリガーされ、これは多くのコンテキストでは危険な操作です。 たとえば、モジュールまたは型の読み込み中にこのメソッドを呼び出すと、ランタイムで循環読み込みが試行されたときに無限ループが発生する可能性があります。

一般に、GetFunctionFromTokenAndTypeArgs の使用は推奨されていません。 プロファイラーが特定の関数のイベントに関心を持っている場合は、その関数の ModuleIDmdMethodDef を格納し、ICorProfilerInfo2::GetFunctionInfo2 を使用して、特定の FunctionID が目的の関数であるかどうかを確認する必要があります。

必要条件

:システム要件」を参照してください。

ヘッダー : CorProf.idl、CorProf.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 2.0 以降で使用可能

関連項目