ICorProfilerCallback2 インターフェイス
プロファイラーがサブスクライブしたイベントが発生したときにコード プロファイラーに通知するために共通言語ランタイム (CLR: Common Language Runtime) が使用するメソッドを提供します。 ICorProfilerCallback2 インターフェイスは、ICorProfilerCallback の機能を拡張するインターフェイスです。 つまり、これは .NET Framework Version 2.0 で導入された新しいコールバックを提供します。
メモ |
---|
各メソッド実装は、S_OK (成功時) または E_FAIL (エラー時) の値を持つ HRESULT を返す必要があります。現在、CLR は、ICorProfilerCallback::ObjectReferences を除く各コールバックが返す HRESULT を無視します。 |
メソッド
メソッド |
説明 |
---|---|
ファイナライザーを持つオブジェクトが、その Finalize メソッドを実行するためのファイナライザー スレッドのキューに配置されたことをコード プロファイラーに通知します。 |
|
ガベージ コレクションが完了し、そのガベージ コレクションに対してすべてのガベージ コレクション コールバックが発行されたことをプロファイラーに通知します。 |
|
ガベージ コレクションが開始されたことをコード プロファイラーに通知します。 |
|
ガベージ コレクション ハンドルが作成されたことをコード プロファイラーに通知します。 |
|
コード プロファイラーに、ガベージ コレクション ハンドルが破棄されたことを通知します。 |
|
ガベージ コレクションが発生した後に、ルート参照についてプロファイラーに通知します。 このメソッドは、ICorProfilerCallback::RootReferences メソッドの拡張です。 |
|
ガベージ コレクションで削除されなかったオブジェクト参照についてプロファイラーに通知します。 |
|
スレッドの名前が変更されたことをコード プロファイラーに通知します。 |
解説
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