Share via


ICorProfilerInfo4::GetCodeInfo3 メソッド

指定した関数の JIT 再コンパイル バージョンに関連付けられているネイティブ コードの範囲を取得します。

構文

HRESULT GetCodeInfo3(  
    [in]  FunctionID functionID,  
    [in]  ReJITID reJitId,  
    [in]  ULONG32 cCodeInfos,  
    [out] ULONG32 *pcCodeInfos,  
    [out, size_is(cCodeInfos), length_is(*pcCodeInfos)]  
    COR_PRF_CODE_INFO codeInfos[]);  

パラメーター

functionID
[in] ネイティブ コードが関連付けられている関数の ID。

reJitId
[in] JIT 再コンパイルされた関数のID。

cCodeInfos
[in] codeInfos 配列のサイズ。

pcCodeInfos
[out] 使用できる COR_PRF_CODE_INFO 構造体の総数へのポインター。

codeInfos
[out] 呼び出し元が提供したバッファー。 メソッドから制御が戻った後で、それぞれがネイティブ コードのブロックを記述する COR_PRF_CODE_INFO の構造体の配列が含まれます。

解説

GetCodeInfo3 メソッドは GetCodeInfo2 に似ていますが、指定した IP アドレスを含む関数の JIT 再コンパイルされた ID を取得します。

Note

GetCodeInfo3 はガベージ コレクションをトリガーできますが、GetCodeInfo2 はガベージ コレクションをトリガーしません。 詳細については、CORPROF_E_UNSUPPORTED_CALL_SEQUENCE HRESULT を参照してください。

エクステントは共通中間言語 (CIL) オフセットの昇順に並べ替えられます。

GetCodeInfo3 から制御が戻ったら、codeInfos バッファーのサイズが十分で、すべての COR_PRF_CODE_INFO 構造体を格納できることを確認する必要があります。 これを行うには、cCodeInfos の値を cchName パラメーターの値と比較します。 COR_PRF_CODE_INFO 構造体のサイズによって除算された cCodeInfospcCodeInfos より小さい場合は、codeInfos バッファーの割り当てを増やし、cCodeInfos を新しい大きいサイズに更新した後、GetCodeInfo3 を再度呼び出します。

別の方法として、最初に GetCodeInfo3 を長さゼロの codeInfos バッファーで呼び出して、適切なバッファーのサイズを取得します。 その後 codeInfos バッファーのサイズを、pcCodeInfos で返された値と、COR_PRF_CODE_INFO 構造体のサイズを乗算した値に設定し、GetCodeInfo3 を再度呼び出します。

必要条件

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

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

ライブラリ: CorGuids.lib

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

関連項目