TraceLoggingUnregister 関数 (traceloggingprovider.h)
トレース ログ プロバイダーの登録を解除します。
構文
void TraceLoggingUnregister(
TraceLoggingHProvider hProvider
);
パラメーター
hProvider
登録を解除するトレース ログ プロバイダーのハンドル。
戻り値
なし
解説
コンポーネントの実行が開始されると、コンポーネント内のすべての TraceLogging プロバイダー ハンドルは登録解除された状態になり、プロバイダーのハンドルを使用してイベントを生成しようとすると、警告なしに無視されます。 プロバイダーがイベントを書き込む前に、 TraceLoggingRegister を使用してプロバイダーを登録する必要があります。
通常、これはコンポーネントの起動時に行います。 コンポーネントのシャットダウン時に、TraceLoggingUnregister を呼び出してプロバイダーの登録を解除します。たとえば、 で DllMain(DLL_PROCESS_DETACH)
、wmain
、または WinMain
からmain
を返す前に、失敗した DriverEntry
、またはドライバーの Unload ルーチンから戻ります。
TraceLoggingRegister は、同じハンドルで TraceLoggingRegister または TraceLoggingUnregister への他の呼び出しに関してスレッド セーフではありません。 別のスレッドが同じハンドルで TraceLoggingRegister または TraceLoggingUnregister を同時に呼び出す可能性がある場合 は、TraceLoggingRegister を呼び出さないでください。
TraceLoggingRegister が失敗した場合、プロバイダー ハンドルは登録解除されたままになり、プロバイダー ハンドルのすべての使用は安全な操作なしになります。 特に、登録されていないプロバイダー ハンドルを使用して TraceLoggingWrite または TraceLoggingUnregister を呼び出しても安全な操作はありません。
重要
DLL またはドライバーがプロバイダー ハンドルを呼び出すTraceLoggingRegister
場合は、DLL またはドライバーがアンロードされる前に、そのプロバイダー ハンドルで を呼び出TraceLoggingUnregister
す必要があります。 DLL が を呼び出 TraceLoggingUnregister
さずにアンロードすると、プロセスが後でクラッシュする可能性があります。 ドライバーが を呼び出 TraceLoggingUnregister
さずにアンロードすると、システムは後でクラッシュする可能性があります。 関数は TraceLoggingRegister
ETW 構成コールバックを確立し TraceLoggingUnregister
、コールバックを取り消します。 コールバックが取り消されず、モジュールがアンロードされると、次に ETW がコールバックを呼び出そうとしたときにクラッシュが発生します。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
Header | traceloggingprovider.h |
Library | Advapi32.lib |