Compartir a través de


estructura TRACE_PERIODIC_CAPTURE_STATE_INFO (evntrace.h)

Se usa con TraceQueryInformation y TraceSetInformation para obtener o establecer información relacionada con un estado de captura periódico.

Sintaxis

typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
  ULONG  CaptureStateFrequencyInSeconds;
  USHORT ProviderCount;
  USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;

Miembros

CaptureStateFrequencyInSeconds

La frecuencia de estado se captura en segundos.

ProviderCount

Número de proveedores.

Reserved

Reservado para uso futuro.

Comentarios

El estado de captura periódica es una manera de permitir que las notificaciones de estado de captura se envíen de forma rutinaria a los proveedores. Cuando esto está habilitado, las notificaciones solo se enviarán a los registros de proveedor que se han habilitado previamente en la sesión actual. Cada proveedor puede definir su propia respuesta (si existe) en una notificación. Tenga en cuenta que los eventos registrados por el proveedor en respuesta a una notificación se enviarán a cada sesión ETW a la que el proveedor esté habilitado, de forma similar a un estado de captura solicitado manualmente.

Para usar el estado de captura periódico:

  1. Asigne un búfer de tipo TRACE_PERIODIC_CAPTURE_STATE_INFO. El tamaño del búfer debe ser: sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID)), donde x es el número de proveedores que desea habilitar.
  2. Llame a TraceQueryInformation mediante TracePeriodicCaptureStateInfo para la enumeración TRACE_INFO_CLASS . Pase el búfer y su tamaño como los parámetros TraceInformation e InformationLength de TraceQueryInformation.
  3. Establezca CaptureStateFrequencyInSeconds de TRACE_PERIODIC_CAPTURE_STATE_INFO en la frecuencia mínima admitida por la versión de Windows. Este valor puede cambiar en el futuro, por lo que no se recomienda codificar de forma rígida. Si la frecuencia está por debajo del mínimo, se producirá un error en la llamada a TraceSetInformation .
  4. Establezca ProviderCount de TRACE_PERIODIC_CAPTURE_STATE_INFO en el número de GUID de proveedor que se pasan.
  5. Agregue los GUID de cada proveedor después del final de la estructura de TRACE_PERIODIC_CAPTURE_STATE_INFO . Usa el espacio adicional asignado desde (x * sizeof(GUID)) del primer paso.
  6. Llame a TraceSetInformation mediante TracePeriodicCaptureStateListInfo desde la enumeración TRACE_INFO_CLASS .
  7. Para desactivar el estado de captura periódico, vuelva a llamar a TraceSetInformation con TracePeriodicCaptureStateListInfo desde el TRACE_INFO_CLASS, NULL para TraceInformation y 0 como InformationLength.

Requisitos

   
Encabezado evntrace.h