PEVENT_CALLBACK función de devolución de llamada (evntrace.h)
Los consumidores de eventos ETW implementan esta devolución de llamada para recibir eventos de una sesión de procesamiento de seguimiento. Esta devolución de llamada no debe usarse en código nuevo. En su lugar, implemente EventRecordCallback.
El tipo PEVENT_CALLBACK es un puntero a esta función de devolución de llamada. EventCallback es un marcador de posición para el nombre de función definido por la aplicación.
Sintaxis
PEVENT_CALLBACK PeventCallback;
void PeventCallback(
[in] PEVENT_TRACE pEvent
)
{...}
Parámetros
[in] pEvent
Puntero a una estructura de EVENT_TRACE que contiene la información del evento.
Valor devuelto
None
Observaciones
Nota
Esta devolución de llamada está obsoleta porque recibe información incompleta sobre el evento y no es compatible con las API auxiliares de descodificación de eventos, como TdhGetEventInformation. En lugar de implementar EventCallback, implemente EventRecordCallback.
Para especificar la función a la que ETW llama para entregar los eventos, establezca el miembro EventCallback de la estructura EVENT_TRACE_LOGFILE que se pasa a la función OpenTrace .
Nota
Si la función EventCallback recibe datos ensanchados de ProcessTrace, compruebe las marcas especificadas en el ProcessTraceMode
campo de la EVENT_TRACE_LOGFILE
estructura que se proporcionó a OpenTrace. EVENT_TRACE_LOGFILE
Los campos EventCallback y EventRecordCallback son miembros superpuestos de una unión. Si el ProcessTraceMode
campo incluye la marca, ProcessTrace invocará la PROCESS_TRACE_MODE_EVENT_RECORD
devolución de llamada mediante la firma de la función EventRecordCallback. De lo contrario, ProcessTrace invocará la devolución de llamada mediante la firma de la función EventCallback .
Después de usar OpenTrace para crear la sesión de procesamiento de seguimiento, llame a la función ProcessTrace para empezar a recibir los eventos.
Cuando ProcessTrace comienza a procesar eventos desde un seguimiento, puede invocar la devolución de llamada con uno o varios eventos sintéticos que contienen datos sobre el seguimiento (metadatos) en lugar de datos de eventos registrados. Estos eventos sintéticos tienen Header.Guid establecido EventTraceGuid
en y Header.Class.Type establecido en función del contenido del evento sintético. Por ejemplo, el primer evento de cada archivo de seguimiento será un evento sintético con el tipo 0 que contiene TRACE_LOGFILE_HEADER información.
Todos los demás eventos que reciba contienen datos de eventos específicos del proveedor. Use los miembros Header.Guid y Header.Class.Type de EVENT_TRACE para determinar el tipo de evento que recibió. Es posible descodificar de forma rígida la lógica de descodificación para los tipos de eventos conocidos, pero la mayoría de los eventos se descodificarán mediante la información del esquema MOF registrada en el sistema en el \\root\wmi
espacio de nombres. Para obtener información sobre el uso del esquema MOF de un evento para interpretar el evento, consulte Consumo de eventos.
Ejemplos
Para obtener un ejemplo de implementación de una función EventCallback , consulte Recuperación de datos de eventos mediante MOF.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | evntrace.h |