次の方法で共有


ICorProfilerInfo9::GetCodeInfo4 メソッド

ネイティブ コードの開始アドレスを指定すると、このコードを格納する仮想メモリのブロックが返されます。

構文

HRESULT GetCodeInfo4( [in]  UINT_PTR pNativeCodeStartAddress,
                      [in]  ULONG32 cCodeInfos,
                      [out] ULONG32* pcCodeInfos,
                      [out] COR_PRF_CODE_INFO codeInfos[]);

パラメーター

pNativeCodeStartAddress
[in] ネイティブ関数の開始へのポインター。

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

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

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

解説

GetCodeInfo4 メソッドは、メソッドのさまざまなネイティブ バージョンのコード情報を参照できることを除いて、GetCodeInfo3 に似ています。

Note

GetCodeInfo4 によって、ガベージ コレクションをトリガーできます。

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

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

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

必要条件

プラットフォーム:.NET がサポートされているオペレーティング システムに関するページを参照してください。

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

ライブラリ: CorGuids.lib

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

関連項目