次の方法で共有


ICorProfilerCallback::Shutdown メソッド

アプリケーションがシャットダウンされていることをプロファイラーに通知します。

構文

HRESULT Shutdown();  

解説

プロファイラー コードでは、Shutdown メソッドが呼び出された後に ICorProfilerInfo インターフェイスのメソッドを安全に呼び出すことができません。 ICorProfilerInfo メソッドを呼び出すと、Shutdown メソッドから制御が戻った後に未定義の動作が発生します。 シャットダウン後も、特定の変更できないイベントが発生する可能性があります。これが発生する場合、プロファイラーはすぐに制御を戻す必要があります。

Shutdown メソッドは、プロファイリングされているマネージド アプリケーションがマネージド コードとして開始されている (つまり、プロセス スタックの初期フレームが管理されている) 場合にのみ呼び出されます。 アプリケーションがアンマネージド コードとして起動され、後でマネージド コードにジャンプし、その結果、共通言語ランタイム (CLR) のインスタンスを作成した場合、Shutdown は呼び出されません。 このような場合、プロファイラーでは、DLL_PROCESS_DETACH 値を使用してリソースを解放する DllMain ルーチンを自身のライブラリに組み込み、トレースをディスクにフラッシュするなどのデータのクリーンアップ処理を実行する必要があります。

一般に、プロファイラーは予期しないシャットダウンに対処する必要があります。 たとえば、Win32 の TerminateProcess メソッド (Winbase.h で宣言される) によってプロセスが停止する場合があります。 それ以外の場合、CLR は、特定のマネージド スレッド (バックグラウンド スレッド) を停止し、それらに対する破棄メッセージを適切な順序で配信しません。

必要条件

:システム要件」を参照してください。

ヘッダー : CorProf.idl、CorProf.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 2.0 以降で使用可能

関連項目