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_LOGFILELos 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

Consulte también

Consumo de eventos

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace