Función EventEnabled (evntprov.h)
Determina si un proveedor de eventos debe generar un evento determinado basado en el EVENT_DESCRIPTOR del evento.
Devuelve FALSE si ETW puede determinar rápidamente que ninguna sesión escucha un evento especificado del proveedor especificado. De lo contrario, devuelve TRUE.
Sintaxis
BOOLEAN EVNTAPI EventEnabled(
[in] REGHANDLE RegHandle,
[in] PCEVENT_DESCRIPTOR EventDescriptor
);
Parámetros
[in] RegHandle
Identificador de registro del proveedor. El identificador procede de EventRegister.
Si RegHandle es NULL, EventEnabled devolverá FALSE.
[in] EventDescriptor
EVENT_DESCRIPTOR que proporciona información que se usará para determinar si el evento está habilitado. Esto incluye el nivel (gravedad) del evento y la palabra clave (categorías).
Valor devuelto
Devuelve FALSE si el proveedor debe omitir la generación del evento, es decir, devuelve FALSE si ETW puede determinar rápidamente que ninguna sesión de recopilación de eventos registraría un evento del proveedor especificado con el descriptor especificado. De lo contrario, devuelve TRUE, lo que indica que el proveedor debe generar el evento.
Comentarios
Esta API proporciona una manera sencilla de determinar si un evento está habilitado (es decir, si alguna sesión de consumidor de eventos está interesada en recibir el evento) en función del identificador del proveedor y el descriptor de eventos.
Nota
Esta API realiza una prueba rápida conservadora. Es posible que esta API devuelva true en determinados casos en los que el filtrado detallado posterior determinaría que ninguna sesión necesita grabar el evento.
Esta API proporciona una funcionalidad similar a la que proporciona EventProviderEnabled. Cuando un proveedor tiene acceso a la EVENT_DESCRIPTOR completa de un evento, el proveedor debe usar EventEnabled. Cuando un proveedor solo tiene acceso al nivel y la palabra clave del evento, el proveedor debe usar EventProviderEnabled.
La mayoría de los proveedores de eventos no llamarán directamente a EventEnabled :
- Las API de EventWrite incluyen su propia prueba eventEnabled y devuelven inmediatamente si el evento no está habilitado.
- La mayoría de los proveedores ETW usan un marco ETW (por ejemplo, manifiestos o TraceLogging) en lugar de llamar directamente a EventWrite o EventEnabled. Por lo general, los marcos ETW proporcionan su propia API habilitada para eventos que se debe usar en lugar de llamar a EventEnabled.
- Las implementaciones del marco ETW suelen comprobar su propio estado de proveedor en lugar de llamar a EventEnabled.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | evntprov.h |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |