共用方式為


TraceLoggingUnregister 函式 (traceloggingprovider.h)

取消註冊 TraceLogging 提供者。

語法

void TraceLoggingUnregister(
  TraceLoggingHProvider hProvider
);

參數

hProvider

要取消註冊的 TraceLogging 提供者控制碼。

傳回值

備註

當元件開始執行時,元件中的任何 TraceLogging 提供者控制碼都會處於未註冊的狀態,而且任何嘗試使用提供者的控制碼來產生事件,都會以無訊息方式忽略。 在提供者可以寫入任何事件之前,您必須使用 TraceLoggingRegister註冊提供者。 您通常會在元件啟動期間執行此動作。 在元件關機時,先呼叫TraceLoggingUnregister來取消註冊提供者,例如,在 從 失敗傳回 之前,或從驅動程式 Unload 常式中傳回之前,先從 mainDriverEntrywmainWinMainDllMain(DLL_PROCESS_DETACH) 中傳回 。

TraceLoggingRegister 與相同控制碼上的 TraceLoggingRegisterTraceLoggingUnregister 的其他呼叫無關安全。 如果另一個執行緒可能同時在同一個控制碼上呼叫TraceLoggingRegisterTraceLoggingUnregister,請勿呼叫TraceLoggingRegister

如果 TraceLoggingRegister 失敗,提供者控制碼會維持未註冊狀態,而且提供者控制碼的所有用法都將是安全的無作業。 特別是,使用未註冊的提供者控制碼呼叫 TraceLoggingWriteTraceLoggingUnregister 是安全的 no-op。

重要

如果您的 DLL 或驅動程式在提供者控制碼上呼叫 TraceLoggingRegister ,它 必須在 該提供者控制碼上呼叫 TraceLoggingUnregister ,才能卸載 DLL 或驅動程式。 如果 DLL 卸載而不呼叫 TraceLoggingUnregister ,進程後續可能會當機。 如果驅動程式在未呼叫 TraceLoggingUnregister 的情況下卸載,系統後續可能會當機。 函 TraceLoggingRegister 式會建立 ETW 組態回呼,並 TraceLoggingUnregister 取消回呼。 如果未取消回呼且模組卸載,則下次 ETW 嘗試叫用回呼時,就會發生當機。

規格需求

   
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
標頭 traceloggingprovider.h
程式庫 Advapi32.lib

另請參閱

TraceLoggingRegister

EventUnregister