Función EnableTrace (evntrace.h)
Un controlador de sesión de seguimiento llama a EnableTrace para configurar cómo un proveedor de eventos ETW registra eventos en una sesión de seguimiento.
Esta función está obsoleta. La función EnableTraceEx2 reemplaza a esta función.
Sintaxis
ULONG WMIAPI EnableTrace(
[in] ULONG Enable,
[in] ULONG EnableFlag,
[in] ULONG EnableLevel,
[in] LPCGUID ControlGuid,
CONTROLTRACE_ID TraceId
);
Parámetros
[in] Enable
Establézcalo en 1 para habilitar la recepción de eventos del proveedor o para ajustar la configuración utilizada al recibir eventos del proveedor (por ejemplo, para cambiar el nivel y las palabras clave). Establezca en 0 para deshabilitar la recepción de eventos del proveedor.
[in] EnableFlag
Máscara de bits de 32 bits de palabras clave que determinan las categorías de eventos que desea que escriba el proveedor. Normalmente, el proveedor escribe un evento si los bits de palabra clave del evento coinciden con cualquiera de los bits establecidos en este valor o si el evento no tiene ningún bit de palabra clave establecido, además de cumplir con el critera EnableLevel .
Nota
Los proveedores basados en EventRegister admiten palabras clave de 64 bits. Use EnableTraceEx2 para habilitar proveedores mediante una máscara MatchAnyKeyword de 64 bits.
[in] EnableLevel
Valor que indica el nivel máximo de eventos que desea que escriba el proveedor. Normalmente, el proveedor escribe un evento si el nivel del evento es menor o igual que este valor, además de cumplir los criterios EnableFlag .
Este valor debe estar en el intervalo de 1 a 255. Microsoft define la semántica de los niveles 1 a 5, como se muestra a continuación. Los valores inferiores indican eventos más graves. Cada valor de EnableLevel habilita el nivel especificado y todos los niveles más graves. Por ejemplo, si especifica TRACE_LEVEL_WARNING
, el consumidor recibirá eventos de advertencia, error y crítico.
Valor | Significado |
---|---|
TRACE_LEVEL_CRITICAL (1) | Eventos de salida o finalización anómalos |
TRACE_LEVEL_ERROR (2) | Eventos de error graves |
TRACE_LEVEL_WARNING (3) | Eventos de advertencia, como errores de asignación |
TRACE_LEVEL_INFORMATION (4) | Eventos informativos que no son de error |
TRACE_LEVEL_VERBOSE (5) | Eventos de diagnóstico detallados |
Las TRACE_LEVEL
constantes se definen en evntrace.h. Las constantes equivalentes WINMETA_LEVEL
se definen en winmeta.h.
[in] ControlGuid
GUID de control (id. de proveedor) del proveedor de eventos que desea habilitar o deshabilitar.
TraceId
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si se produce un error en la función, el valor devuelto es uno de los códigos de error del sistema. A continuación se muestran algunos errores comunes y sus causas.
ERROR_INVALID_PARAMETER
Una de las siguientes condiciones se cumple:
- ControlGuid es NULL.
- TraceHandle es NULL.
ERROR_INVALID_FUNCTION
No se pueden cambiar las marcas de habilitación y el nivel cuando el proveedor no está registrado.
ERROR_WMI_GUID_NOT_FOUND
El proveedor no está registrado. Se produce cuando se instala KB307331 o Windows 2000 Service Pack 4 y el proveedor no está registrado. Para evitar este error, primero se debe registrar el proveedor.
ERROR_NO_SYSTEM_RESOURCES
Se superó el número de sesiones de seguimiento que pueden habilitar el proveedor.
ERROR_ACCESS_DENIED
Solo los usuarios con privilegios administrativos, los usuarios del
Performance Log Users
grupo y los servicios que se ejecutan comoLocalSystem
,LocalService
oNetworkService
pueden habilitar proveedores de eventos en una sesión entre procesos. Para conceder a un usuario restringido la capacidad de habilitar un proveedor de eventos, agréguelos alPerformance Log Users
grupo o consulte EventAccessControl.Windows XP y Windows 2000: Cualquier persona puede habilitar un proveedor de eventos.
Comentarios
Los controladores de seguimiento de eventos llaman a esta función para configurar los proveedores de eventos que escriben eventos en la sesión. Por ejemplo, un controlador podría llamar a esta función para empezar a recopilar eventos de un proveedor, para ajustar el nivel o las palabras clave de los eventos que se recopilan de un proveedor o para detener la recopilación de eventos de un proveedor.
Esta función está obsoleta. Para obtener funcionalidad adicional, el nuevo código debe usar EnableTraceEx2.
Las dos llamadas de función siguientes son equivalentes:
// Obsolete:
Status = EnableTrace(
Enable,
EnableFlag,
EnableLevel,
ControlGuid,
TraceHandle);
// Updated equivalent code:
Status = EnableTraceEx2(
TraceHandle,
ControlGuid,
Enable, // ControlCode
EnableLevel,
EnableFlag, // MatchAnyKeyword
0, // MatchAllKeyword
0, // Timeout
NULL); // EnableParameters
Para obtener más información sobre la semántica de configuración de proveedores para una sesión, consulte la documentación de EnableTraceEx2.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | evntrace.h |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |