Freigeben über


PEVENT_CALLBACK Rückruffunktion (evntrace.h)

ETW-Ereignisverbraucher implementieren diesen Rückruf, um Ereignisse aus einer Ablaufverfolgungsverarbeitungssitzung zu empfangen. Dieser Rückruf sollte nicht im neuen Code verwendet werden. Implementieren Sie stattdessen EventRecordCallback.

Der PEVENT_CALLBACK Typs ist ein Zeiger auf diese Rückruffunktion. EventCallback ist ein Platzhalter für den anwendungsdefinierte Funktionsnamen.

Syntax

PEVENT_CALLBACK PeventCallback;

void PeventCallback(
  [in] PEVENT_TRACE pEvent
)
{...}

Parameter

[in] pEvent

Zeiger auf eine EVENT_TRACE-Struktur , die die Ereignisinformationen enthält.

Rückgabewert

Keine

Bemerkungen

Hinweis

Dieser Rückruf ist veraltet, da er unvollständige Informationen zum Ereignis empfängt und nicht mit Ereignisdecodierungshilfs-APIs wie TdhGetEventInformation kompatibel ist. Anstatt EventCallback zu implementieren, implementieren Sie EventRecordCallback.

Um die Funktion anzugeben, die ETW aufruft, um die Ereignisse zu übermitteln, legen Sie den EventCallback-Member der EVENT_TRACE_LOGFILE-Struktur fest, die Sie an die OpenTrace-Funktion übergeben.

Hinweis

Wenn Ihre EventCallback-Funktion unzutreffende Daten von ProcessTrace empfängt, überprüfen Sie die Flags, die im Feld der ProcessTraceModeEVENT_TRACE_LOGFILE Für OpenTrace bereitgestellten Struktur angegeben sind. EVENT_TRACE_LOGFILEDie Felder EventCallback und EventRecordCallback sind überlappende Elemente einer Union. Wenn das ProcessTraceMode Feld das PROCESS_TRACE_MODE_EVENT_RECORD Flag enthält, ruft ProcessTrace Ihren Rückruf mithilfe der EventRecordCallback-Funktionssignatur auf. Andernfalls ruft ProcessTrace Ihren Rückruf mithilfe der EventCallback-Funktionssignatur auf.

Nachdem Sie OpenTrace zum Erstellen der Ablaufverfolgungsverarbeitungssitzung verwendet haben, rufen Sie die ProcessTrace-Funktion auf, um die Ereignisse zu empfangen.

Wenn ProcessTrace mit der Verarbeitung von Ereignissen aus einer Ablaufverfolgung beginnt, kann ihr Rückruf mit einem oder mehreren synthetischen Ereignissen aufgerufen werden, die Daten zur Ablaufverfolgung (Metadaten) und nicht Daten aus protokollierten Ereignissen enthalten. Für diese synthetischen Ereignisse ist Header.Guid auf EventTraceGuid und Header.Class.Type basierend auf dem Inhalt des synthetischen Ereignisses festgelegt. Beispielsweise ist das erste Ereignis aus jeder Ablaufverfolgungsdatei ein synthetisches Ereignis mit typ 0 , das TRACE_LOGFILE_HEADER Informationen enthält.

Alle anderen Ereignisse, die Sie empfangen, enthalten anbieterspezifische Ereignisdaten. Sie verwenden die Header.Guid - und Header.Class.Type-Member von EVENT_TRACE , um den Typ des empfangenen Ereignisses zu bestimmen. Es ist möglich, die Decodierungslogik für bekannte Ereignistypen hart zu codieren, aber die meisten Ereignisse werden mithilfe von MOF-Schemainformationen decodiert, die auf dem System im \\root\wmi Namespace registriert sind. Informationen zur Verwendung des MOF-Schemas eines Ereignisses zum Interpretieren des Ereignisses finden Sie unter Verwenden von Ereignissen.

Beispiele

Eine Beispielimplementierung einer EventCallback-Funktion finden Sie unter Abrufen von Ereignisdaten mithilfe von MOF.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile evntrace.h

Weitere Informationen

Verwenden von Ereignissen

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace