ICorProfilerCallback インターフェイス
プロファイラーがサブスクライブしたイベントが発生したときにコード プロファイラーに通知するために共通言語ランタイム (CLR: Common Language Runtime) が使用するメソッドを提供します。
メソッド
メソッド |
説明 |
---|---|
アプリケーション ドメインが作成されたことをプロファイラーに通知します。 |
|
アプリケーション ドメインが作成されることをプロファイラーに通知します。 |
|
アプリケーション ドメインがプロセスからアンロードされたことをプロファイラーに通知します。 |
|
アプリケーション ドメインがプロセスからアンロードされることをプロファイラーに通知します。 |
|
アセンブリが読み込みを完了したことをプロファイラーに通知します。 |
|
アセンブリが読み込まれることをプロファイラーに通知します。 |
|
アセンブリがアンロードされたことをプロファイラーに通知します。 |
|
アセンブリがアンロードされることをプロファイラーに通知します。 |
|
クラスが読み込みを完了したことをプロファイラーに通知します。 |
|
クラスが読み込まれることをプロファイラーに通知します。 |
|
クラスがアンロードを完了したことをプロファイラーに通知します。 |
|
クラスがアンロードされることをプロファイラーに通知します。 |
|
指定した IID とクラスのランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) が作成されたことをプロファイラーに通知します。 |
|
RCW が破棄されることをプロファイラーに通知します。 |
|
適切な catch ブロックに制御が渡されていることをプロファイラーに通知します。 |
|
適切な catch ブロックから制御が渡されていることをプロファイラーに通知します。 |
|
.NET Framework Version 2.0 で互換性のために残されています。 |
|
.NET Framework 2.0 で互換性のために残されています。 |
|
実装されていません。 アンマネージ例外情報を必要とするプロファイラーは、他の方法でこの情報を取得する必要があります。 |
|
実装されていません。 アンマネージ例外情報を必要とするプロファイラーは、他の方法でこの情報を取得する必要があります。 |
|
例外処理の検索フェーズで、スローされた例外のハンドラーが見つかったことをプロファイラーに通知します。 |
|
ユーザー フィルターが実行されることをプロファイラーに通知します。 |
|
ユーザー フィルターの実行が終了したことをプロファイラーに通知します。 |
|
例外処理の検索フェーズが関数に入ったことをプロファイラーに通知します。 |
|
例外処理の検索フェーズが関数の検索を完了したことをプロファイラーに通知します。 |
|
例外がスローされたことをプロファイラーに通知します。 |
|
例外処理のアンワインド フェーズが、指定した関数に含まれる finally 句に入ることをプロファイラーに通知します。 |
|
例外処理のアンワインド フェーズの制御が finally 句を離れたことをプロファイラーに通知します。 |
|
例外処理のアンワインド フェーズの制御が関数に入ったことをプロファイラーに通知します。 |
|
例外処理のアンワインド フェーズの関数のアンワインドが終了したことをプロファイラーに通知します。 |
|
ランタイムが関数のアンロードを開始したことをプロファイラーに通知します。 |
|
新しい CLR アプリケーションが起動されるたびに、プロファイラーを初期化するために呼び出されます。 |
|
NGen.exe を使用して以前にコンパイルされた関数の検索が完了したことをプロファイラーに通知します。 |
|
NGen.exe を使用して以前にコンパイルされた関数の検索が開始されたことをプロファイラーに通知します。 |
|
JIT コンパイラが関数のコンパイルを終了したことをプロファイラーに通知します。 |
|
Just-In-Time (JIT) コンパイラが関数のコンパイルを開始したことをプロファイラーに通知します。 |
|
JIT でコンパイルされた関数がメモリから削除されたことをプロファイラーに通知します。 |
|
JIT コンパイラが関数を別の関数行内に挿入しようとしていることをプロファイラーに通知します。 |
|
マネージ コードからアンマネージ コードへの移行が発生したことをプロファイラーに通知します。 |
|
モジュールが親アセンブリにアタッチされることをプロファイラーに通知します。 |
|
モジュールが読み込みを完了したことをプロファイラーに通知します。 |
|
モジュールが読み込まれることをプロファイラーに通知します。 |
|
モジュールがアンロードを完了したことをプロファイラーに通知します。 |
|
モジュールがアンロードされることをプロファイラーに通知します。 |
|
ガベージ コレクション中に移動されたオブジェクト参照についてプロファイラーに通知します。 |
|
ヒープ内のメモリがオブジェクトに割り当てられたことをプロファイラーに通知します。 |
|
指定したオブジェクトが参照するメモリ内にあるオブジェクトについてプロファイラーに通知します。 |
|
指定した各クラスについて、前回ガベージ コレクションを実行した後で作成されたインスタンスの数をプロファイラーに通知します。 |
|
リモート処理呼び出しがクライアントで実行されて完了したことをプロファイラーに通知します。 |
|
リモート処理呼び出しが開始されたことをプロファイラーに通知します。 |
|
リモート処理呼び出しのサーバー側の処理が完了したこと、およびクライアントが現在応答を受信中でこれからその応答を処理することをプロファイラーに通知します。 |
|
クライアントがサーバーに要求を送信することをプロファイラーに通知します。 |
|
リモート メソッドの呼び出し要求に応答して、プロセスがメソッドを呼び出して終了したことをプロファイラーに通知します。 |
|
リモート メソッドの呼び出し要求に応答して、プロセスがメソッドを呼び出すことをプロファイラーに通知します。 |
|
プロセスがリモート メソッドの呼び出し要求またはアクティベーション要求を受け取ることをプロファイラーに通知します。 |
|
プロセスがリモート メソッドの呼び出し要求を完了し、チャネルを通じて応答を送信しようとしていることをプロファイラーに通知します。 |
|
ガベージ コレクション後のルート参照に関する情報をプロファイラーに通知します。 |
|
ランタイムがすべてのランタイム スレッドを再開し、通常の操作に戻ったことをプロファイラーに通知します。 |
|
ランタイムがすべてのランタイム スレッドを再開することをプロファイラーに通知します。 |
|
発生しているランタイムの中断をランタイムが中止したことをプロファイラーに通知します。 |
|
ランタイムがすべてのランタイム スレッドの中断を完了したことをプロファイラーに通知します。 |
|
ランタイムがすべてのランタイム スレッドを中断しようとしていることをプロファイラーに通知します。 |
|
指定したスレッドが中断された後、再開されたことをプロファイラーに通知します。 |
|
指定したスレッドが中断されたこと、または中断されようとしていることをプロファイラーに通知します。 |
|
アプリケーションの終了処理中であることをプロファイラーに通知します。 |
|
特定のオペレーティング システム (OS: Operating System) スレッドを使用してマネージ スレッドが実装されることをプロファイラーに通知します。 |
|
スレッドが作成されたことをプロファイラーに通知します。 |
|
スレッドが破棄されたことをプロファイラーに通知します。 |
|
アンマネージ コードからマネージ コードへの移行が発生したことをプロファイラーに通知します。 |
解説
CLR は ICorProfilerCallback (または ICorProfilerCallback2) インターフェイスでメソッドを呼び出して、プロファイラーがサブスクライブしたイベントが発生したときにプロファイラーに通知します。 これは、CLR がコード プロファイラーとの通信に使用するプライマリ コールバック インターフェイスです。
コード プロファイラーは、ICorProfilerCallback インターフェイスのメソッドを実装する必要があります。 .NET Framework Version 2.0 以降の場合、プロファイラーは ICorProfilerCallback2 のメソッドも実装する必要があります。 各メソッド実装は、S_OK (成功時) または E_FAIL (エラー時) の値を持つ HRESULT を返す必要があります。 現在、CLR は、ICorProfilerCallback::ObjectReferences を除く各コールバックが返す HRESULT を無視します。
Microsoft Windows レジストリでは、コード プロファイラーは ICorProfilerCallback インターフェイスおよび ICorProfilerCallback2 インターフェイスを実装するコンポーネント オブジェクト モデル (COM: Component Object Model) オブジェクトを登録する必要があります。 コード プロファイラーは、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、1.1、1.0
参照
参照
ICorProfilerCallback2 インターフェイス