ICorProfilerCallback2 インターフェイス
コード プロファイラーでサブスクライブされているイベントが発生したときにそのプロファイラーに通知するために、共通言語ランタイム (CLR) によって使用されるメソッドを提供します。 ICorProfilerCallback2
インターフェイスは、ICorProfilerCallback インターフェイスの機能を拡張するインターフェイスです。 つまり、.NET Framework バージョン 2.0 で導入された新しいコールバックを提供します。
Note
各メソッドの実装では、値が S_OK (成功した場合) または E_FAIL (失敗した場合) の HRESULT を返す必要があります。 現在、CLR では、ICorProfilerCallback::ObjectReferences を除く各コールバックによって返される HRESULT は無視されます。
メソッド
メソッド | 説明 |
---|---|
FinalizeableObjectQueued メソッド | ファイナライザーを持つオブジェクトが、その Finalize メソッドを実行するためにファイナライザー スレッドのキューに登録されたことをコード プロファイラーに通知します。 |
GarbageCollectionFinished メソッド | ガベージ コレクションが完了し、すべてのガベージ コレクションのコールバックが発行されたことをプロファイラーに通知します。 |
GarbageCollectionStarted メソッド | ガベージ コレクションが開始されたことをコード プロファイラーに通知します。 |
HandleCreated メソッド | ガベージ コレクション ハンドルが作成されたことをコード プロファイラーに通知します。 |
HandleDestroyed メソッド | ガベージ コレクション ハンドルが破棄されたことをコード プロファイラーに通知します。 |
RootReferences2 メソッド | ガベージ コレクションが発生した後のルート参照をプロファイラーに通知します。 このメソッドは、ICorProfilerCallback::RootReferences メソッドの拡張です。 |
SurvivingReferences メソッド | ガベージ コレクション後に残ったオブジェクト参照について、プロファイラーに通知します。 |
ThreadNameChanged メソッド | スレッドの名前が変更されたことをコード プロファイラーに通知します。 |
解説
CLR では、プロファイラーでサブスクライブしたイベントがいつ発生したかをプロファイラーに通知するために、ICorProfilerCallback
(または ICorProfilerCallback2
) インターフェイス内のメソッドを呼び出します。 これは、CLR がコード プロファイラーと通信するときに使用される主要なコールバック インターフェイスです。
コード プロファイラーでは、ICorProfilerCallback
インターフェイスのメソッドを実装する必要があります。 .NET Framework バージョン 2.0 以降の場合、プロファイラーで ICorProfilerCallback2
メソッドも実装する必要があります。 各メソッドの実装では、値が S_OK (成功した場合) または E_FAIL (失敗した場合) の HRESULT を返す必要があります。 現在、CLR では、ICorProfilerCallback::ObjectReferences を除く各コールバックによって返される HRESULT は無視されます。
コード プロファイラーでは、ICorProfilerCallback
および ICorProfilerCallback2
インターフェイスを実装する COM オブジェクトを Microsoft Windows レジストリ内で登録する必要があります。 コード プロファイラーでは、ICorProfilerInfo::SetEventMask を呼び出すことによって、通知を受け取る必要がある対象のイベントがサブスクライブされます。 これは通常、プロファイラーによる ICorProfilerCallback::Initialize の実装で行われます。 その後、プロファイラーでは、実行中のランタイム プロセスでイベントが発生しようとしているか発生したばかりの場合に、ランタイムから通知を受け取ることができます。
Note
プロファイラーでは単一の COM オブジェクトを登録します。 プロファイラーのターゲットが .NET Framework バージョン 1.0 または 1.1 である場合、その COM オブジェクトでは ICorProfilerCallback
のメソッドのみを実装する必要があります。 .NET Framework バージョン 2.0 以降をターゲットとする場合、COM オブジェクトでは ICorProfilerCallback2
のメソッドも実装する必要があります。
必要条件
:「システム要件」を参照してください。
ヘッダー : CorProf.idl、CorProf.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 2.0 以降で使用可能
関連項目
.NET