次の方法で共有


ICorProfilerInfo3::GetThreadStaticAddress2 メソッド

指定したスレッドおよびアプリケーション ドメインのスコープ内にある、指定したスレッド内静的フィールドのアドレスを取得します。

構文

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

パラメーター

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

fieldToken
[in] 要求されたスレッド静的フィールドのメタデータ トークン。

appDomainId
[in] アプリケーション ドメインの ID。

threadId
[in] 要求された静的フィールドのスコープであるスレッドの ID。

ppAddress
[out] 指定されたスレッド内の静的フィールドのアドレスへのポインター。

解説

GetThreadStaticAddress2 メソッドは次のいずれかを返す必要があります。

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

  • ガベージ コレクション ヒープ内に存在する可能性があるオブジェクトのアドレス。 これらのアドレスはガベージ コレクション後に無効になることがあるため、ガベージ コレクション後にプロファイラーではそれらが有効であると想定してはなりません。

クラスのクラス コンストラクターが完了する前に、GetThreadStaticAddress2 では、すべての静的フィールドに対して CORPROF_E_DATAINCOMPLETE が返されます。ただし、一部の静的フィールドは既に初期化されており、ガベージ コレクション オブジェクトをルート化する場合があります。

ICorProfilerInfo2::GetThreadStaticAddress メソッドは GetThreadStaticAddress2 メソッドに似ていますが、アプリケーション ドメイン引数を受け取りません。

必要条件

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

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

ライブラリ: CorGuids.lib

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

関連項目