ICorProfilerCallback インターフェイス
コード プロファイラーでサブスクライブされているイベントが発生したときにそのプロファイラーに通知するために、共通言語ランタイム (CLR) によって使用されるメソッドを提供します。
メソッド
メソッド | 説明 |
---|---|
AppDomainCreationFinished メソッド | アプリケーション ドメインが作成されたことをプロファイラーに通知します。 |
AppDomainCreationStarted メソッド | アプリケーション ドメインが作成されていることをプロファイラーに通知します。 |
AppDomainShutdownFinished メソッド | アプリケーション ドメインがプロセスからアンロードされたことをプロファイラーに通知します。 |
AppDomainShutdownStarted メソッド | アプリケーション ドメインがプロセスからアンロードされていることをプロファイラーに通知します。 |
AssemblyLoadFinished メソッド | アセンブリの読み込みが終了したことをプロファイラーに通知します。 |
AssemblyLoadStarted メソッド | アセンブリが読み込まれていることをプロファイラーに通知します。 |
AssemblyUnloadFinished メソッド | アセンブリがアンロードされたことをプロファイラーに通知します。 |
AssemblyUnloadStarted メソッド | アセンブリがアンロードされていることをプロファイラーに通知します。 |
ClassLoadFinished メソッド | クラスの読み込みが終了したことをプロファイラーに通知します。 |
ClassLoadStarted メソッド | クラスが読み込まれていることをプロファイラーに通知します。 |
ClassUnloadFinished メソッド | クラスのアンロードが終了したことをプロファイラーに通知します。 |
ClassUnloadStarted メソッド | クラスがアンロードされていることをプロファイラーに通知します。 |
COMClassicVTableCreated メソッド | 指定された IID およびクラスのランタイム呼び出し可能ラッパー (RCW) が作成されたことをプロファイラーに通知します。 |
COMClassicVTableDestroyed メソッド | RCW が破棄されていることをプロファイラーに通知します。 |
ExceptionCatcherEnter メソッド | 適切な catch ブロックに制御が渡されていることをプロファイラーに通知します。 |
ExceptionCatcherLeave メソッド | 適切な catch ブロックから制御が渡されていることをプロファイラーに通知します。 |
ExceptionCLRCatcherExecute メソッド | .NET Framework バージョン 2.0 で廃止されました。 |
ExceptionCLRCatcherFound メソッド | .NET Framework 2.0 で廃止されました。 |
ExceptionOSHandlerEnter メソッド | 実装されていません。 アンマネージドの例外情報を必要とするプロファイラーでは、他の方法でこの情報を取得する必要があります。 |
ExceptionOSHandlerLeave メソッド | 実装されていません。 アンマネージドの例外情報を必要とするプロファイラーでは、他の方法でこの情報を取得する必要があります。 |
ExceptionSearchCatcherFound メソッド | 例外処理の検索フェーズで、スローされた例外のハンドラーが見つかったことをプロファイラーに通知します。 |
ExceptionSearchFilterEnter メソッド | ユーザー フィルターが実行されていることをプロファイラーに通知します。 |
ExceptionSearchFilterLeave メソッド | ユーザー フィルターの実行が終了したことをプロファイラーに通知します。 |
ExceptionSearchFunctionEnter メソッド | 例外処理の検索フェーズが関数に入ったことをプロファイラーに通知します。 |
ExceptionSearchFunctionLeave メソッド | 例外処理の検索フェーズで関数の検索が終了したことをプロファイラーに通知します。 |
ExceptionThrown メソッド | 例外がスローされたことをプロファイラーに通知します。 |
ExceptionUnwindFinallyEnter メソッド | 例外処理のアンワインド フェーズが、指定された関数に含まれる finally 句に入っていることをプロファイラーに通知します。 |
ExceptionUnwindFinallyLeave メソッド | 例外処理のアンワインド フェーズが finally 句を離れたことをプロファイラーに通知します。 |
ExceptionUnwindFunctionEnter メソッド | 例外処理のアンワインド フェーズが関数に入ったことをプロファイラーに通知します。 |
ExceptionUnwindFunctionLeave メソッド | 例外処理のアンワインド フェーズで関数のアンワインドが終了したことをプロファイラーに通知します。 |
FunctionUnloadStarted メソッド | ランタイムで関数のアンロードが開始されたことをプロファイラーに通知します。 |
Initialize メソッド | 新しい CLR アプリケーションが開始されるたびに、プロファイラーを初期化するために呼び出されます。 |
JITCachedFunctionSearchFinished メソッド | 以前に NGen.exe を使用してコンパイルされた関数の検索が終了したことをプロファイラーに通知します。 |
JITCachedFunctionSearchStarted メソッド | 以前に NGen.exe を使用してコンパイルされた関数の検索が開始されたことをプロファイラーに通知します。 |
JITCompilationFinished メソッド | JIT コンパイラで関数のコンパイルが終了したことをプロファイラーに通知します。 |
JITCompilationStarted メソッド | Just-in-time (JIT) コンパイラで関数のコンパイルが開始されたことをプロファイラーに通知します。 |
JITFunctionPitched メソッド | JIT コンパイル済みの関数がメモリから削除されたことをプロファイラーに通知します。 |
JITInlining メソッド | JIT コンパイラによって、ある関数が別の関数と共に挿入されようとしていることをプロファイラーに通知します。 |
ManagedToUnmanagedTransition メソッド | マネージド コードからアンマネージド コードへの遷移が発生したことをプロファイラーに通知します。 |
ModuleAttachedToAssembly メソッド | モジュールがその親アセンブリにアタッチされていることをプロファイラーに通知します。 |
ModuleLoadFinished メソッド | モジュールの読み込みが終了したことをプロファイラーに通知します。 |
ModuleLoadStarted メソッド | モジュールが読み込まれていることをプロファイラーに通知します。 |
ModuleUnloadFinished メソッド | モジュールのアンロードが終了したことをプロファイラーに通知します。 |
ModuleUnloadStarted メソッド | モジュールがアンロードされていることをプロファイラーに通知します。 |
MovedReferences メソッド | ガベージ コレクション中に移動されたオブジェクト参照について、プロファイラーに通知します。 |
ObjectAllocated メソッド | ヒープ内のメモリがオブジェクトに割り当てられたことをプロファイラーに通知します。 |
ObjectReferences メソッド | 指定されたオブジェクトによって参照されるメモリ内のオブジェクトについて、プロファイラーに通知します。 |
ObjectsAllocatedByClass メソッド | 前のガベージ コレクション以降に作成された、指定された各クラスのインスタンスの数をプロファイラーに通知します。 |
RemotingClientInvocationFinished メソッド | リモート処理呼び出しがクライアントで最後まで実行されたことをプロファイラーに通知します。 |
RemotingClientInvocationStarted メソッド | リモート処理呼び出しが開始されたことをプロファイラーに通知します。 |
RemotingClientReceivingReply メソッド | リモート処理呼び出しのサーバー側の部分が完了し、クライアントで現在応答が受信され、処理されようとしていることをプロファイラーに通知します。 |
RemotingClientSendingMessage メソッド | クライアントでサーバーに要求を送信していることをプロファイラーに通知します。 |
RemotingServerInvocationReturned メソッド | プロセスで、リモート メソッド呼び出し要求に応答してメソッドの呼び出しが終了したことをプロファイラーに通知します。 |
RemotingServerInvocationStarted メソッド | プロセスで、リモート メソッド呼び出し要求に応答してメソッドを呼び出していることをプロファイラーに通知します。 |
RemotingServerReceivingMessage メソッド | プロセスでリモート メソッド呼び出しまたはアクティブ化要求を受信していることをプロファイラーに通知します。 |
RemotingServerSendingReply メソッド | プロセスでリモート メソッド呼び出し要求の処理が終了したこと、およびチャネルを介して応答が転送されようとしていることをプロファイラーに通知します。 |
RootReferences メソッド | ガベージ コレクション後のルート参照に関する情報をプロファイラーに通知します。 |
RuntimeResumeFinished メソッド | ランタイムですべてのランタイム スレッドが再開され、通常の動作に戻ったことをプロファイラーに通知します。 |
RuntimeResumeStarted メソッド | ランタイムですべてのランタイム スレッドが再開されていることをプロファイラーに通知します。 |
RuntimeSuspendAborted メソッド | 発生していたランタイムの中断がランタイムによって中止されたことをプロファイラーに通知します。 |
RuntimeSuspendFinished メソッド | ランタイムですべてのランタイム スレッドの中断が完了したことをプロファイラーに通知します。 |
RuntimeSuspendStarted メソッド | ランタイムですべてのランタイム スレッドが中断されようとしていることをプロファイラーに通知します。 |
RuntimeThreadResumed メソッド | 指定されたスレッドが中断された後に再開されたことをプロファイラーに通知します。 |
RuntimeThreadSuspended メソッド | 指定されたスレッドが中断されたか、中断されようとしていることをプロファイラーに通知します。 |
Shutdown メソッド | アプリケーションがシャットダウンされていることをプロファイラーに通知します。 |
ThreadAssignedToOSThread メソッド | 特定のオペレーティング システム (OS) スレッドを使用して、マネージド スレッドが実装されていることをプロファイラーに通知します。 |
ThreadCreated メソッド | スレッドが作成されたことをプロファイラーに通知します。 |
ThreadDestroyed メソッド | スレッドが破棄されたことをプロファイラーに通知します。 |
UnmanagedToManagedTransition メソッド | アンマネージド コードからマネージド コードへの遷移が発生したことをプロファイラーに通知します。 |
解説
CLR では、ICorProfilerCallback
(または ICorProfilerCallback2) インターフェイスでメソッドを呼び出して、プロファイラーでサブスクライブしているイベントが発生したときにプロファイラーに通知します。 これは、CLR がコード プロファイラーと通信するときに使用される主要なコールバック インターフェイスです。
コード プロファイラーでは、ICorProfilerCallback
インターフェイスのメソッドを実装する必要があります。 .NET Framework バージョン 2.0 以降の場合、プロファイラーで ICorProfilerCallback2
メソッドも実装する必要があります。 各メソッドの実装では、値が S_OK (成功した場合) または E_FAIL (失敗した場合) の HRESULT を返す必要があります。 現在、CLR では、ICorProfilerCallback::ObjectReferences を除く各コールバックによって返される HRESULT は無視されます。
Microsoft Windows レジストリでは、コード プロファイラーで、ICorProfilerCallback
および ICorProfilerCallback2
インターフェイスを実装するコンポーネント オブジェクト モデル (COM) オブジェクトを登録する必要があります。 コード プロファイラーで、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 のバージョン: 1.0 以降で使用可能
関連項目
.NET