Share via


TraceLoggingUnregister-Funktion (traceloggingprovider.h)

Hebt die Registrierung eines TraceLogging-Anbieters auf.

Syntax

void TraceLoggingUnregister(
  TraceLoggingHProvider hProvider
);

Parameter

hProvider

Das Handle des TraceLogging-Anbieters zum Aufheben der Registrierung.

Rückgabewert

Keine

Bemerkungen

Wenn eine Komponente ausgeführt wird, befindet sich jedes TraceLogging-Anbieterhandle in der Komponente in einem nicht registrierten Zustand, und alle Versuche, das Handle des Anbieters zum Generieren von Ereignissen zu verwenden, werden unbeaufsichtigt ignoriert. Bevor der Anbieter Ereignisse schreiben kann, müssen Sie den Anbieter mithilfe von TraceLoggingRegister registrieren. Dies geschieht in der Regel während des Komponentenstarts. Heben Sie beim Herunterfahren der Komponente die Registrierung des Anbieters auf, indem Sie TraceLoggingUnregister aufrufen, z. B. vor der Rückgabe von main, wmainoder WinMain, in DllMain(DLL_PROCESS_DETACH), bevor Sie von einer fehlgeschlagenen DriverEntry- oder in der Treiberentladungsroutine zurückkehren.

TraceLoggingRegister ist nicht threadsicher in Bezug auf andere Aufrufe von TraceLoggingRegister oder TraceLoggingUnregister für dasselbe Handle. Rufen Sie TraceLoggingRegister nicht auf, wenn es möglich ist, dass ein anderer Thread TraceLoggingRegister oder TraceLoggingUnregister für dasselbe Handle zur gleichen Zeit aufruft.

Wenn TraceLoggingRegister fehlschlägt, bleibt das Anbieterhandle nicht registriert, und alle Verwendungen des Anbieterhandles sind sichere No-Ops. Insbesondere ist es ein sicherer Nichtbetrieb, TraceLoggingWrite oder TraceLoggingUnregister mit einem nicht registrierten Anbieterhandle aufzurufen.

Wichtig

Wenn Ihre DLL oder Ihr Treiber ein Anbieterhandle aufruft TraceLoggingRegister , muss sie dieses Anbieterhandle aufrufen TraceLoggingUnregister , bevor die DLL oder der Treiber entladen wird. Wenn eine DLL entladen wird, ohne aufzurufen TraceLoggingUnregister, kann der Prozess anschließend abstürzen. Wenn ein Treiber entladen wird, ohne zu rufen TraceLoggingUnregister, kann das System anschließend abstürzen. Die TraceLoggingRegister Funktion richtet einen ETW-Konfigurationsrückruf ein und TraceLoggingUnregister bricht den Rückruf ab. Wenn der Rückruf nicht abgebrochen wird und das Modul entladen wird, tritt ein Absturz auf, wenn ETW das nächste Mal versucht, den Rückruf aufzurufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Kopfzeile traceloggingprovider.h
Bibliothek Advapi32.lib

Weitere Informationen

TraceLoggingRegister

EventUnregister