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 ProcessTraceMode
EVENT_TRACE_LOGFILE
Für OpenTrace bereitgestellten Struktur angegeben sind. EVENT_TRACE_LOGFILE
Die 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 |