Sesión de seguimiento del registrador global
Una sesión de seguimiento del registrador global registra eventos que se producen durante el proceso de arranque antes de que el sistema esté totalmente operativo, como los eventos generados por los controladores de dispositivo. Se trata de una sesión de seguimiento reservada integrada en Windows.
Las sesiones de seguimiento del registrador global siempre escriben mensajes en un registro de seguimiento. Global Logger no admite sesiones de seguimiento en tiempo real ni sesiones de seguimiento almacenadas en búfer.
Dado que el registrador global debe estar disponible al principio del proceso de arranque del sistema operativo, se inicia y configura mediante entradas del Registro (en la subclave HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger ), en lugar de llamadas de función. Después de iniciarse, el registrador global se comporta como una sesión de seguimiento de eventos normal.
La sesión de seguimiento del registrador global usa un nombre de sesión reservado, "GlobalLogger". El GUID de control se representa mediante la constante GlobalLoggerGuid. Cree una sesión de seguimiento del registrador global y, a continuación, reinicie el equipo para iniciar la sesión de seguimiento. Solo se puede ejecutar una sesión de seguimiento del registrador global en el equipo a la vez.
Para crear una sesión de seguimiento del registrador global, use Tracelog. Crea automáticamente la subclave del Registro y las entradas que almacenan las opciones de sesión de seguimiento. La sesión de seguimiento del registrador global se inicia al reiniciar el equipo. Para obtener más información, vea Sintaxis del comando tracelog.
Para dar formato a los mensajes de seguimiento desde una sesión de seguimiento del registrador global, use Tracefmt con system.tmf, un archivo de formato de mensaje de seguimiento incluido en el WDK.
Dado que las entradas del Registro desencadenan la sesión del registrador global, se ejecuta cada vez que las entradas aparecen en el registro. Para evitar que la sesión del registrador global se inicie cada vez que se inicie el sistema, establezca el valor de la entrada Start en 0 o elimine todas las entradas del Registro.
Puede convertir una sesión de seguimiento del registrador global en una sesión de seguimiento del registrador de kernel de NT y, por tanto, realizar un seguimiento del kernel durante el proceso de arranque. Para obtener información, consulte Sesión de registrador global en tiempo de arranque.
Los proveedores de seguimiento, como los controladores en modo kernel y las aplicaciones en modo de usuario, pueden iniciar sesión en la sesión de seguimiento del registrador global. Esto le permite realizar un seguimiento de un controlador u otro proveedor de seguimiento durante el arranque del sistema. Para obtener información, consulte Registro en la sesión del registrador global.
Limitaciones de la sesión de seguimiento del registrador global
La sesión de seguimiento del registrador global es muy útil, pero es importante tener en cuenta sus limitaciones:
Solo puede ejecutar una sesión de registrador global a la vez.
La sesión del registrador global no envía notificaciones a proveedores.
Las entradas del Registro registrador global permanecen en el registro y son efectivas hasta que restablezca o elimine manualmente, o use el comando tracelog -remove . Hasta que los restablezca, la sesión del registrador global se inicia cada vez que inicie el sistema.
El registrador ACPI de Windows está habilitado permanentemente para la sesión de seguimiento del registrador global. Los mensajes de seguimiento de este registrador aparecen en el registro de seguimiento.
Si se inicia una sesión de seguimiento estándar mientras un controlador inicia sesión en la sesión del registrador global, el controlador cambia e inicia el registro en la sesión de seguimiento estándar.
Entradas del Registro de registrador global
En la tabla siguiente se muestran las entradas del Registro que configuran la sesión del registrador global. Estas entradas están en la subclave HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . Solo se requiere la entrada Inicio .
Además de las entradas del Registro de esta tabla, también puede agregar una subclave ControlGUID en la subclave GlobalLogger para representar un proveedor de seguimiento, como un controlador, que registra en la sesión de seguimiento del registrador global. Para obtener información, consulte Registro en la sesión global del registrador.
Entrada | Tipo de datos | Descripción |
---|---|---|
Iniciar |
REG_DWORD |
Cuando se establece en 1 (activado), la sesión del registrador global se inicia la próxima vez que se inicie el sistema. 0 = desactivado, 1=on |
BufferSize |
REG_DWORD |
Especifica el tamaño de cada búfer (en KB). El valor predeterminado es 0x40 (64 KB). |
ClockType |
REG_DWORD |
Especifica el temporizador utilizado para las marcas de tiempo del mensaje de seguimiento. A partir de Windows Vista, el valor predeterminado es 1. En los sistemas operativos anteriores a Windows Vista, el valor predeterminado es 2. 1 = Valor del contador de rendimiento (alta resolución) 2 = Temporizador del sistema 3 = reloj del ciclo de CPU |
EnableKernelFlags |
REG_BINARY |
Convierte la sesión del registrador global en una sesión de seguimiento del registrador de kernel nt y especifica los eventos incluidos en el seguimiento del kernel. Para obtener información, consulte Sesión de registrador global en tiempo de arranque. |
FileCounter |
REG_DWORD |
Almacena el número de archivos de registro de seguimiento de eventos generados por las sesiones del 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 |
Especifica el 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. El valor predeterminado es 0, lo que significa que no hay ningún máximo. |
FileName |
REG_SZ |
Ruta de acceso (opcional) y nombre de archivo del archivo de registro de seguimiento de eventos. El valor predeterminado es %SystemRoot%\System32\LogFiles\WMI\trace.log. |
FlushTimer |
REG_DWORD |
Especifica con qué frecuencia (en segundos) se vacían forzosamente los búferes de seguimiento. Este vaciado forzado se suma al vaciado automático que se produce cada vez que un búfer está lleno y cuando se detiene la sesión de seguimiento. El valor predeterminado es 0. De forma predeterminada, los búferes solo se vacían cuando están llenos. El tiempo de vaciado mínimo es de 1 segundo. |
LogFileMode |
REG_DWORD |
Especifica las opciones de sesión de registro. Solo se admite en Windows Vista y versiones posteriores de Windows. |
MaximumBuffers |
REG_DWORD |
Especifica el número máximo de búferes que se pueden asignar para la sesión. El valor predeterminado es 0x19 (25). |
MaximumFileSize |
REG_DWORD |
Especifica el tamaño máximo del archivo de registro de seguimiento de eventos. De manera predeterminada, no hay un tamaño máximo de archivo. |
MinimumBuffers |
REG_DWORD |
Especifica el número de búferes asignados cuando se inicia la sesión. El valor predeterminado es 0x3. |
Estado |
REG_DWORD |
Almacena el código de retorno del intento de iniciar una sesión de seguimiento del registrador global. Si no se pudo iniciar la sesión, el valor de esta entrada es un código de error win32. Si se inicia la sesión, el valor de esta entrada es ERROR_SUCCESS. |
Estas entradas del Registro que cree permanecen en el Registro y son efectivas hasta que las elimine o cambie sus valores. Por lo tanto, una vez ejecutada la sesión de registrador global, use el comando tracelog -remove GlobalLogger para establecer el valor de la entrada Start en 0 y eliminar las demás entradas del Registro del registrador global. De lo contrario, la sesión del registrador global se ejecuta cada vez que reinicia el equipo y el archivo de registro resultante puede crecer muy grande.
Constantes del modo de registro
En la tabla siguiente se muestran los valores válidos para la entrada del Registro LogFileMode en la subclave HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger . Esta entrada se usa para establecer opciones para una sesión de seguimiento del registrador global, incluidas las de sesiones de seguimiento en tiempo real, sesiones de seguimiento privadas, registro circular y almacenamiento en búfer (sin registro). Esta entrada del Registro solo se admite en Windows Vista y versiones posteriores de Windows.
Esta entrada del Registro corresponde al miembro LogFileMode de la estructura EVENT_TRACE_PROPERTIES. Sus valores corresponden a las constantes del modo de registro. La estructura de EVENT_TRACE_PROPERTIES y las constantes de modo de registro se describen en la documentación de Microsoft Windows SDK.
Esta tabla se muestra aquí para mostrar los valores hexadecimales de las constantes. Use estos valores o una suma de estos valores para representar la constante en la entrada del Registro LogFileMode .
Valor | Constante | Descripción |
---|---|---|
0x0 |
EVENT_TRACE_FILE_MODE_NONE |
No se crean archivos de registro de seguimiento de eventos. |
0x1 |
EVENT_TRACE_FILE_MODE_SEQUENTIAL |
Los archivos de registro de seguimiento de eventos son secuenciales. |
0x2 |
EVENT_TRACE_FILE_MODE_CIRCULAR |
Los archivos de registro de seguimiento de eventos son circulares. |
0x4 |
EVENT_TRACE_FILE_MODE_APPEND |
Anexar mensajes de seguimiento a un archivo de registro existente. Este modo solo es válido con archivos secuenciales. |
0x8 |
EVENT_TRACE_FILE_MODE_NEWFILE |
Cree un nuevo archivo de registro de seguimiento de eventos cada vez que el archivo existente alcance el valor de la entrada MaximumFileSize (consulte la tabla anterior). |
0x20 |
EVENT_TRACE_FILE_MODE_PREALLOCATE |
Reserva espacio para el archivo de registro de seguimiento de eventos. Válido solo con EVENT_TRACE_FILE_MODE_SEQUENTIAL o EVENT_TRACE_FILE_MODE_CIRCULAR y no válido con EVENT_TRACE_FILE_MODE_NEWFILE. |
0x40 |
EVENT_TRACE_NONSTOPPABLE_MODE |
Una llamada a StopTrace no detiene la sesión de seguimiento. Esta característica impide que los usuarios detengan las sesiones de seguimiento que el sistema requiere para el diagnóstico y la optimización. |
0x100 |
EVENT_TRACE_REAL_TIME_MODE |
Especifica una sesión de seguimiento en tiempo real. |
0x200 |
EVENT_TRACE_DELAY_OPEN_FILE_MODE |
Solo para uso interno. |
0x400 |
EVENT_TRACE_BUFFERING_MODE |
Los eventos se conservan en los búferes. Nunca se escriben en un archivo de registro ni se entregan a un consumidor de seguimiento. |
0x800 |
EVENT_TRACE_PRIVATE_LOGGER_MODE |
Especifica una sesión de seguimiento privada. Esta marca no es válida para una sesión de seguimiento del registrador global. |
0x1000 |
EVENT_TRACE_ADD_HEADER_MODE |
Solo para uso interno. |
0x2000 |
EVENT_TRACE_USE_KBYTES_FOR_SIZE |
Interprete el valor de MaximumFileSize en KB, en lugar de MB. |
0x4000 |
EVENT_TRACE_USE_GLOBAL_SEQUENCE |
Genera números de secuencia globales para los mensajes de seguimiento. Estos números son únicos para todas las sesiones de seguimiento del equipo. De forma predeterminada, los mensajes de seguimiento no tienen ningún número de secuencia. |
0x8000 |
EVENT_TRACE_USE_LOCAL_SEQUENCE |
Genera números de secuencia local para los mensajes de seguimiento. Estos números son únicos dentro de la sesión de seguimiento. De forma predeterminada, los mensajes de seguimiento no tienen ningún número de secuencia. |
0x10000 |
EVENT_TRACE_RELOG_MODE |
Solo para uso interno. |
0x80000 |
EVENT_TRACE_KD_FILTER_MODE |
Redirige los mensajes de seguimiento al depurador de kernel y establece el tamaño del búfer de seguimiento en 3 KB, el tamaño máximo del búfer para el depurador. |
0x1000000 |
EVENT_TRACE_MODE_RESERVED |
No es válido para una sesión de seguimiento del registrador global. |
0x01000000 |
EVENT_TRACE_USE_PAGED_MEMORY |
Asigne búferes de sesión de seguimiento de la memoria paginable. De forma predeterminada, los búferes se asignan a partir de memoria no paginable. |