FlushTraceW-Funktion (evntrace.h)

Die FlushTrace-Funktion bewirkt, dass eine Ereignisablaufverfolgungssitzung sofort gepufferte Ereignisse für die angegebene Sitzung übermittelt. Standardmäßig übermittelt eine Ereignisablaufverfolgungssitzung Ereignisse, wenn der Puffer voll ist, der FlushTimer der Sitzung abläuft oder die Sitzung geschlossen wird.

Diese Funktion ist veraltet. Die ControlTrace-Funktion ersetzt diese Funktion.

Syntax

ULONG WMIAPI FlushTraceW(
  [in]      TRACEHANDLE             TraceHandle,
  [in]      LPCWSTR                 InstanceName,
  [in, out] PEVENT_TRACE_PROPERTIES Properties
);

Parameter

[in] TraceHandle

Handle für die Ereignisablaufverfolgungssitzung, die geleert werden soll, oder 0. Sie müssen ein TraceHandle ungleich Null angeben, wenn InstanceNameNULL ist. Dieser Parameter wird nur verwendet, wenn InstanceNameNULL ist. Das Handle wird vom StartTrace zurückgegeben.

[in] InstanceName

Name der Ereignisablaufverfolgungssitzung, die geleert werden soll, oder NULL. Sie müssen InstanceName angeben, wenn TraceHandle den Wert 0 hat.

Um die NT Kernel Logger-Sitzung anzugeben, legen Sie InstanceName auf KERNEL_LOGGER_NAME fest.

[in, out] Properties

Zeiger auf eine initialisierte EVENT_TRACE_PROPERTIES-Struktur .

Wenn Sie eine neu initialisierte Struktur verwenden, müssen Sie nur die Elemente Wnode.BufferSize, Wnode.Guid, LoggerNameOffset und LogFileNameOffset der -Struktur festlegen. Sie können die maximale Länge des Sitzungsnamens (1024 Zeichen) und die maximale Länge des Protokolldateinamens (1024 Zeichen) verwenden, um die Puffergröße und die Offsets zu berechnen, wenn sie nicht bekannt sind.

Bei der Ausgabe empfängt die Struktur die Eigenschafteneinstellungen und Sitzungsstatistiken der Ereignisablaufverfolgungssitzung, die den Zustand der Sitzung nach dem Leeren widerspiegeln.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der Systemfehlercodes. Die folgende Tabelle enthält einige häufige Fehler und deren Ursachen.

  • ERROR_INVALID_PARAMETER

    Es trifft eine der folgenden Bedingungen zu:

    • Eigenschaften sind NULL.
    • InstanceName und TraceHandle sind beide NULL.
    • InstanceName ist NULL , und TraceHandle ist kein gültiges Handle.
  • ERROR_BAD_LENGTH

    Es trifft eine der folgenden Bedingungen zu:

    • Der Wnode.BufferSize-Member von Properties gibt eine falsche Größe an.
    • Eigenschaften verfügen nicht über genügend Speicherplatz, um eine Kopie des Sitzungsnamens und des Protokolldateinamens (falls verwendet) zu speichern.
  • ERROR_ACCESS_DENIED

    Nur Benutzer mit Administratorrechten, Benutzer in der Gruppe Leistungsprotokollbenutzer und Dienste, die als LocalSystem, LocalService und NetworkService ausgeführt werden, können Ereignisablaufverfolgungssitzungen steuern. Um einem eingeschränkten Benutzer die Möglichkeit zu gewähren, Ablaufverfolgungssitzungen zu steuern, fügen Sie sie der Gruppe Leistungsprotokollbenutzer hinzu.

    Windows XP und Windows 2000: Jeder kann eine Ablaufverfolgungssitzung steuern.

Hinweise

Ereignisablaufverfolgungscontroller rufen diese Funktion auf.

Diese Funktion ist veraltet. Verwenden Sie stattdessen ControlTrace , wobei ControlCode auf EVENT_TRACE_CONTROL_FLUSH festgelegt ist.

Diese Funktion kann mit einer In-Memory-Sitzung (einer Sitzung, die mit dem flag EVENT_TRACE_BUFFERING_MODE gestartet wurde) verwendet werden, um die Daten aus der Ablaufverfolgung in eine Datei zu schreiben.

Sie müssen normalerweise keine dateibasierten Sitzungen oder Echtzeitsitzungen leeren, da ETW automatisch einen Puffer leert, wenn er voll ist (d. h. wenn er keinen Platz für das nächste Ereignis hat), wenn flushTimer der Ablaufverfolgungssitzung abläuft oder wenn die Ablaufverfolgungssitzung geschlossen wird.

Rufen Sie FlushTrace nicht aus DllMain auf (kann zu einem Deadlock führen).

Hinweis

Der evntrace.h-Header definiert FlushTrace als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile evntrace.h
Bibliothek Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

ControlTrace