Configuración e inicio de una sesión de SystemTraceProvider

SystemTraceProvider es un proveedor de kernel con conjuntos predefinidos de eventos de kernel admitidos en Windows 7, Windows Server 2008 R2 y versiones posteriores. En Windows 7 y Windows Server 2008 R2, SystemTraceProvider solo se puede usar para la sesión del registrador de kernel nt.

En Windows 8, Windows Server 2012 y versiones posteriores, SystemTraceProvider se puede multiplexar hasta 8 sesiones de registrador. Las dos primeras ranuras para las sesiones de registrador se reservan para el registrador de kernel nt y el registrador de contexto de kernel circular .

Para obtener más información sobre el uso de la sesión del registrador de kernel de NT como proveedor de seguimiento, consulte Configuración e inicio de la sesión del registrador de kernel de NT.

En Windows 10 compilación 20348 del SDK y versiones posteriores, SystemTraceProvider se puede configurar a través de proveedores de sistema independientes, que se pueden controlar con EnableTraceEx2 como el seguimiento de eventos estándar para proveedores de eventos de Windows. Para obtener una lista completa de los proveedores de sistema, las palabras clave y los grupos heredados correspondientes, consulte Proveedores de sistema.

Habilitación de una sesión de SystemTraceProvider

Para permitir que SystemTraceProvider inicie una sesión distinta del registrador de kernel nt, ejecute el siguiente comando:

tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH

Para habilitar mediante programación SystemTraceProvider para iniciar una sesión distinta del registrador de kernel de NT, siga estos pasos.

  • Defina un nombre de registrador privado.

    #define PRIVATE_LOGGER_NAME"Algunas sesiones de seguimiento privadas"

  • En el controlador, establezca los siguientes miembros de la estructura EVENT_TRACE_PROPERTIES .

    Establezca LogFileModeen EVENT_TRACE_SYSTEM_LOGGER_MODE.

    Establezca LoggerName en registrador privado, en lugar de KERNEL_LOGGER_NAME.

    Asegúrese de que el miembro Wnode.Guid de la estructura EVENT_TRACE_PROPERTIES no está establecido en SystemTraceControlGuid. Debe asignar un nuevo GUID a este miembro.

  • En el consumidor, establezca el miembro LoggerName de la estructura EVENT_TRACE_LOGFILE en este registrador privado.

Nota

Si desea que un proceso que no sea de administradores o que no sea TCB pueda iniciar una sesión de seguimiento de generación de perfiles mediante SystemTraceProvider en nombre de aplicaciones de terceros, debe conceder el privilegio de perfil de usuario y, a continuación, agregar este usuario tanto al GUID de sesión (creado para la sesión del registrador) como al GUID del proveedor de seguimiento del sistema para habilitar el proveedor de seguimiento del sistema. Para obtener más información, consulte la función EventAccessControl .

 

Configuración e inicio de una sesión de registrador privado

Configuración e inicio de una sesión de AutoLogger

Configuración e inicio de una sesión de seguimiento de eventos

Configuración e inicio de la sesión del registrador de kernel de NT

Proveedores de sistemas

Actualización de una sesión de seguimiento de eventos