次の方法で共有


ICorProfilerCallback2 インターフェイス

プロファイラーがサブスクライブしたイベントが発生したときにコード プロファイラーに通知するために共通言語ランタイム (CLR: Common Language Runtime) が使用するメソッドを提供します。 ICorProfilerCallback2 インターフェイスは、ICorProfilerCallback の機能を拡張するインターフェイスです。 つまり、これは .NET Framework Version 2.0 で導入された新しいコールバックを提供します。

メモメモ

各メソッド実装は、S_OK (成功時) または E_FAIL (エラー時) の値を持つ HRESULT を返す必要があります。現在、CLR は、ICorProfilerCallback::ObjectReferences を除く各コールバックが返す HRESULT を無視します。

メソッド

メソッド

説明

ICorProfilerCallback2::FinalizeableObjectQueued メソッド

ファイナライザーを持つオブジェクトが、その Finalize メソッドを実行するためのファイナライザー スレッドのキューに配置されたことをコード プロファイラーに通知します。

ICorProfilerCallback2::GarbageCollectionFinished メソッド

ガベージ コレクションが完了し、そのガベージ コレクションに対してすべてのガベージ コレクション コールバックが‎発行されたことをプロファイラーに通知します。

ICorProfilerCallback2::GarbageCollectionStarted メソッド

ガベージ コレクションが開始されたことをコード プロファイラーに通知します。

ICorProfilerCallback2::HandleCreated メソッド

ガベージ コレクション ハンドルが作成されたことをコード プロファイラーに通知します。

ICorProfilerCallback2::HandleDestroyed メソッド

コード プロファイラーに、ガベージ コレクション ハンドルが破棄されたことを通知します。

ICorProfilerCallback2::RootReferences2 メソッド

ガベージ コレクションが発生した後に、ルート参照についてプロファイラーに通知します。 このメソッドは、ICorProfilerCallback::RootReferences メソッドの拡張です。

ICorProfilerCallback2::SurvivingReferences メソッド

ガベージ コレクションで削除されなかったオブジェクト参照についてプロファイラーに通知します。

ICorProfilerCallback2::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 のプロファイラーの実装で行われます。 これにより、イベントが発生するとき、または実行中のランタイム プロセスでイベントが発生したときに、プロファイラーはランタイムから通知を受け取ることができます。

メモメモ

プロファイラーは単一の COM オブジェクトを登録します。プロファイラーが .NET Framework Version 1.0 または 1.1 を対象としている場合、その COM オブジェクトが実装する必要があるのは、ICorProfilerCallback のメソッドのみです。プロファイラーが .NET Framework Version 2.0 以降を対象としている場合、その COM オブジェクトは ICorProfilerCallback2 のメソッドも実装する必要があります。

要件

プラットフォーム: 「.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

参照

参照

ICorProfilerCallback インターフェイス

その他の技術情報

プロファイリングのインターフェイス