次の方法で共有


ICorProfilerInfo2::GetThreadStaticAddress メソッド

指定したスレッドのスコープ内にある、指定したスレッド内静的フィールドのアドレスを取得します。

HRESULT GetThreadStaticAddress(
    [in] ClassID     classId,
    [in] mdFieldDef  fieldToken,
    [in] ThreadID    threadId,
    [out] void       **ppAddress);

パラメーター

  • classId
    [入力] 要求されたスレッド内静的フィールドを含むクラスの ID。

  • fieldToken
    [入力] 要求したスレッド内静的フィールドのメタデータ トークン。

  • threadId
    [入力] 要求した静的フィールドのスコープであるスレッドの ID。

  • ppAddress
    [出力] 指定したスレッド内にある静的フィールドのアドレスへのポインター。

解説

GetThreadStaticAddress メソッドは次のいずれかの結果を返します。

  • 指定した静的フィールドに、指定したコンテキストでのアドレスが割り当て済みでない場合は、CORPROF_E_DATAINCOMPLETE HRESULT。

  • ガベージ コレクション ヒープ内のオブジェクトのアドレス。 これらのアドレスはガベージ コレクションの後に無効になることがあるため、ガーベジ コレクション後は、プロファイラーがこれらのアドレスを有効であると見なさないようにする必要があります。

クラスのクラス コンストラクターが完了する前に、GetThreadStaticAddress はすべての静的フィールドについて CORPROF_E_DATAINCOMPLETE を返します。ただし、一部の静的フィールドは初期化済みで、ガベージ コレクション オブジェクトをルーティングしていることがあります。

必要条件

プラットフォーム: 「.NET Framework システム要件」を参照

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

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

参照

参照

ICorProfilerInfo インターフェイス

ICorProfilerInfo2 インターフェイス