Configuración e inicio de la sesión global del registrador

La sesión de seguimiento de eventos del registrador global registra los eventos que se producen al principio del proceso de arranque del sistema operativo. Las aplicaciones y los controladores de dispositivos pueden usar la sesión de registrador global para capturar seguimientos antes de que el usuario inicie sesión. Tenga en cuenta que algunos controladores de dispositivos, como los controladores de dispositivos de disco, no se cargan en el momento en que comienza la sesión del registrador global.

Nota

Si va a crear una sesión de registrador global en Windows Vista, debe considerar la posibilidad de crear una sesión de AutoLogger en su lugar.

El registro se usa para configurar la sesión global del registrador. Agregue la clave GlobalLogger a la siguiente clave del Registro, si aún no está presente:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \WMI

En la tabla siguiente se describen los valores que puede definir para la clave GlobalLogger . Debe tener privilegios de administrador para especificar estos valores del Registro. Los valores del Registro afectan a todos los proveedores que registran eventos en la sesión del registrador global. El valor Start es el único valor necesario para iniciar la sesión del registrador global; todos los demás valores tienen valores predeterminados que se usan si el valor no está presente en el Registro. Normalmente, debe usar los valores predeterminados. Si especifica un valor que ETW no puede admitir, ETW invalidará el valor.

Valor Tipo Descripción
Iniciar REG_DWORD Establezca este valor en 1 (activado) para iniciar la sesión del registrador global la próxima vez que se inicie el sistema. Para detener el inicio de la sesión, establezca este valor en 0 (desactivado).
BufferSize REG_DWORD Tamaño de cada búfer, en kilobytes. Este valor debe ser menor que un megabyte. ETW usa el tamaño de la memoria física para calcular este valor.
ClockType REG_DWORD Temporizador que se va a usar al registrar la marca de tiempo para cada evento.
  • 1 = Valor del contador de rendimiento (alta resolución)
  • 2 = Temporizador del sistema
  • 3 = Contador de ciclo de CPU
Para obtener una descripción de cada tipo de reloj, vea el miembro ClientContext de WNODE_HEADER.
El valor predeterminado es 1 (valor del contador de rendimiento) en Windows Vista y versiones posteriores. Antes de Windows Vista, el valor predeterminado es 2 (temporizador del sistema).
EnableKernelFlags REG_BINARY Use este valor para habilitar uno o varios proveedores de kernel. Si habilita proveedores de kernel, la sesión del registrador global cambiará su nombre a NT Kernel Logger cuando se inicie. Para obtener los valores posibles, consulte el miembro EnableFlags de EVENT_TRACE_PROPERTIES.
FileCounter REG_DWORD Número de archivos de registro de seguimiento de eventos generados por sesiones de registrador global. El sistema incrementa este valor hasta que alcanza el valor de FileMax. A continuación, restablece el valor en 0. Este contador impide que el sistema sobrescriba un archivo de registro de seguimiento del registrador global.
FileMax REG_DWORD Número máximo de archivos de registro de seguimiento de eventos permitidos en el sistema. Cuando el número de registros de seguimiento alcanza el máximo especificado, el sistema comienza a sobrescribir los registros, empezando por el más antiguo.
Si el archivo de registro especificado en FileName existe, ETW anexa el valor FileCounter al nombre de archivo. Por ejemplo, si se usa el nombre de archivo de registro predeterminado, el formulario es %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN.
El valor predeterminado es 0, lo que significa que no hay ningún máximo.
FileName REG_SZ Ruta de acceso completa del archivo de registro. La ruta de acceso a este archivo debe existir. El archivo de registro es un archivo de registro secuencial. Tenga en cuenta que todos los proveedores que escriben eventos en la sesión de registrador global escriben eventos en este archivo de registro. La ruta de acceso está limitada a 1024 caracteres. Si no se especifica FileName , los eventos se escriben en %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl. Antes de Windows Vista: El archivo predeterminado es %SystemRoot%\System32\LogFiles\WMI\Trace.log.

FlushTimer REG_DWORD Con qué frecuencia, en segundos, los búferes de seguimiento se vacían forzosamente. El tiempo mínimo de vaciado es de 1 segundo. Este vaciado forzado se suma al vaciado automático que se produce cuando un búfer está lleno y cuando se detiene la sesión de seguimiento.
En el caso de un registrador en tiempo real, un valor de cero (el valor predeterminado) significa que el tiempo de vaciado se establecerá en 1 segundo. Un registrador en tiempo real es cuando LogFileMode se establece en EVENT_TRACE_REAL_TIME_MODE.
El valor predeterminado es 0. De forma predeterminada, los búferes solo se vacían cuando están llenos.
LogFileMode REG_DWORD Especifica las opciones de sesión de registro. Para obtener valores, vea Constantes del modo de registro. Estos valores se admiten en Windows Vista y versiones posteriores.
MaximumBuffers REG_DWORD Número máximo de búferes que se van a asignar. Normalmente, este valor es el número mínimo de búferes más veinte. ETW usa el tamaño del búfer y el tamaño de la memoria física para calcular este valor. Este valor debe ser mayor o igual que el valor de MinimumBuffers.
MaxFileSize REG_DWORD Tamaño máximo, en megabytes, del archivo de registro de seguimiento de eventos. De manera predeterminada, no hay un tamaño máximo de archivo.
MinimumBuffers REG_DWORD Número mínimo de búferes que se van a asignar cuando se inicia la sesión del registrador global. El número mínimo de búferes que puede especificar es dos búferes por procesador. Por ejemplo, en un único equipo procesador, el número mínimo de búferes es dos.
El valor predeterminado en un sistema de un solo procesador es 0x3.
Estado REG_DWORD Estado de inicio del registrador global. Si no se pudo iniciar el registrador global, el valor de esta clave es el código de error de Win32 adecuado. Si el registrador global se inició correctamente, el valor de esta clave es ERROR_SUCCESS (0).

Una vez modificado el registro y reiniciado el equipo, la sesión del registrador global se inicia automáticamente y se usa como cualquier otra sesión con una excepción: se usa el identificador de constante WMI_GLOBAL_LOGGER_ID (definido en Wmistr.h) para hacer referencia a la sesión del registrador global. Esta constante se puede usar como argumento para cualquier función de seguimiento de eventos que acepte un identificador de sesión. En funciones que aceptan un nombre de sesión, use GLOBAL_LOGGER_NAME.

El controlador de registrador global no llama a la función EnableTrace para habilitar proveedores. El proveedor es responsable de determinar si se inicia la sesión del registrador global y, a continuación, se habilita.

Para determinar si se inicia la sesión del registrador global, puede llamar a la función ControlTrace , estableciendo SessionHandle en WMI_GLOBAL_LOGGER_ID y ControlCode en EVENT_TRACE_CONTROL_QUERY. Si la llamada a ControlTrace se realiza correctamente, existe la sesión del registrador global y el proveedor puede habilitarse y registrar eventos en la sesión del registrador global (la función ControlTrace devuelve ERROR_WMI_INSTANCE_NOT_FOUND si el registrador global no está activo).

Normalmente, el controlador es responsable de pasar las marcas de habilitación y el nivel al proveedor cuando habilita el proveedor, pero porque el controlador de registrador global no habilita el proveedor, es responsabilidad del proveedor pasar esta información a sí mismo, si es necesario.

La sesión del registrador global es un recurso limitado y se debe usar con moderación. Los servicios que desean capturar información durante el proceso de arranque deben considerar la posibilidad de agregar lógica de controlador a sí misma en lugar de usar la sesión del registrador global.

Para obtener más información sobre cómo iniciar una sesión de seguimiento de eventos, consulte Configuración e inicio de una sesión de seguimiento de eventos.

Para obtener más información sobre cómo iniciar una sesión de registrador privado, consulte Configuración e inicio de una sesión de registrador privado.

Para obtener más información sobre cómo iniciar una sesión de registrador de kernel de NT, vea Configuring and Starting the NT Kernel Logger Session.