Constantes del modo de registro

Las constantes siguientes representan los posibles modos de registro para una sesión de seguimiento de eventos.

Las constantes se usan en los miembros LogFileMode de EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIES y estructuras de TRACE_LOGFILE_HEADER . Estas constantes se definen en el archivo de encabezado Evntrace.h .

Mode Descripción
EVENT_TRACE_FILE_MODE_NONE (0x00000000) Igual que EVENT_TRACE_FILE_MODE_SEQUENTIAL sin el tamaño máximo de archivo especificado.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) Escribe eventos en un archivo de registro secuencialmente; se detiene cuando el archivo alcanza su tamaño máximo. No use con EVENT_TRACE_FILE_MODE_CIRCULAR o EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) Escribe eventos en un archivo de registro. Una vez que el archivo alcanza el tamaño máximo, los eventos más antiguos se reemplazan por los eventos entrantes. Tenga en cuenta que el contenido del archivo de registro circular puede aparecer desordenados en equipos multiprocesador.
No use con EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE o EVENT_TRACE_FILE_MODE_SEQUENTIAL.
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) Anexa eventos a un archivo de registro secuencial existente. El archivo se creará si no existe. Use solo si especifica la hora del sistema para la resolución del reloj; de lo contrario, ProcessTrace devolverá eventos con marcas de tiempo incorrectas. Al usar EVENT_TRACE_FILE_MODE_APPEND, los valores de BufferSize, NumberOfProcessors y ClockType deben proporcionarse explícitamente y deben ser los mismos tanto en el registrador como en el archivo que se está anexando.
No use con EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILE o EVENT_TRACE_PRIVATE_LOGGER_MODE.
Windows 2000: Este valor no se admite.
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) Cambia automáticamente a un nuevo archivo de registro cuando el archivo alcanza el tamaño máximo. Se debe establecer el miembro MaximumFileSize de EVENT_TRACE_PROPERTIES . El nombre de archivo especificado debe ser una cadena con formato (por ejemplo, la cadena contiene un %d, como c:\test%d.etl). Cada vez que se crea un nuevo archivo, se incrementa un contador y se usa su valor, se actualiza la cadena con formato y la cadena resultante se usa como nombre de archivo.
Esta opción no está permitida para las sesiones de seguimiento de eventos privados y no debe usarse para las sesiones del registrador de kernel nt.
No use con EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND o EVENT_TRACE_FILE_MODE_SEQUENTIAL.
Windows 2000: Este valor no se admite.
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) Reserva EVENT_TRACE_PROPERTIES. MaximumFileSize bytes de espacio en disco para el archivo de registro de antemano. El archivo ocupa todo el espacio durante el registro, tanto para los archivos de registro circulares como secuenciales. Al detener la sesión, el archivo de registro se reduce al tamaño necesario. Debe establecer EVENT_TRACE_PROPERTIES. MaximumFileSize.
No se puede usar el modo para las sesiones de seguimiento de eventos privados.
Windows 2000: Este valor no se admite.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) No se puede detener la sesión de registro. Este modo solo es compatible con Autologger. Esta opción es compatible con Windows Vista y versiones posteriores.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Restringe quién puede registrar eventos en la sesión para aquellos con permiso TRACELOG_LOG_EVENT . Esta opción se admite en Windows Vista y versiones posteriores.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) Entrega los eventos a los consumidores en tiempo real. Los eventos se entregan cuando se vacían los búferes, no en el momento en que el proveedor escribe el evento. No debe habilitar el modo en tiempo real si no hay ningún consumidor para consumir los eventos porque las llamadas a eventos de registro producirán un error cuando los búferes se llenen. Antes de Windows Vista, si no se consumían los eventos, se descartaron los eventos. No especifique más de un consumidor en tiempo real en un proceso en Windows XP oWindows Server 2003. En su lugar, haga que un subproceso consuma eventos y distribuya los eventos a otros.
Antes de Windows Vista: No debe usar el modo en tiempo real porque la tasa de eventos admitida es mucho menor que la lectura del archivo de registro (es posible que se quiten los eventos). Además, no se garantiza el orden de los eventos en equipos con varios procesadores. El modo en tiempo real es más adecuado para eventos de tipo de notificación de poco tráfico.

Puede combinar este modo con otros modos de archivo de registro; sin embargo, no use este modo con EVENT_TRACE_PRIVATE_LOGGER_MODE. Tenga en cuenta que si combina este modo con otros modos de archivo de registro, los búferes se vaciarán una vez por segundo, lo que dará lugar a que se escriban parcialmente búferes en el archivo de registro. Por ejemplo, si usa 64 búferes y la velocidad de registro es de 1 evento cada segundo, el servicio escribirá 64 k/segundo en el archivo de registro.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) Este modo se usa para retrasar la apertura del archivo de registro hasta que se produzca un evento.
Nota:
En Windows Vista o posterior, este modo no es aplicable y no se debe usar.
EVENT_TRACE_BUFFERING_MODE (0x00000400) Este modo escribe eventos en un búfer de memoria circular. Los eventos escritos más allá del tamaño total del búfer expulsan los eventos más antiguos que aún permanecen en el búfer. El tamaño de este búfer de memoria es el producto de MinimumBuffers y BufferSize (consulte EVENT_TRACE_PROPERTIES). Como consecuencia de esta fórmula, cualquier búfer que use EVENT_TRACE_BUFFERING_MODE omitirá el valor MaximumBuffers .
Los eventos no se escriben en un archivo de registro ni se entregan en tiempo real y ETW no vacía los búferes. Para obtener una instantánea del búfer, llame a la función FlushTrace .
Este modo es especialmente útil para depurar controladores de dispositivos junto con la capacidad de ver el contenido de los búferes en memoria con la extensión del depurador de kernel WMITrace .
No use con EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE o EVENT_TRACE_REAL_TIME_MODE.
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) Crea una sesión de seguimiento de eventos en modo de usuario que se ejecuta en el mismo proceso que su proveedor de seguimiento de eventos. La memoria de los búferes procede de la memoria del proceso. Los procesos que no requieren datos del kernel pueden eliminar la sobrecarga asociada a las transiciones en modo kernel mediante una sesión de seguimiento de eventos privada.
Si el proveedor está registrado por varios procesos, ETW anexa el identificador de proceso al nombre del archivo de registro para crear un nombre de archivo de registro único. Por ejemplo, si el controlador especifica los nombres de archivo de registro como c:\mylogs\myprivatelog.etl, ETW crea el archivo de registro como c:\mylogs\myprivatelog.etl_nnnn, donde nnnn es el identificador de proceso. El identificador de proceso no se anexa al primer proceso que registra el proveedor; se anexa solo a los procesos posteriores que registran el proveedor.
Las sesiones de seguimiento de eventos privados tienen las siguientes limitaciones:
  • Una sesión privada solo puede registrar eventos para los subprocesos del proceso en el que se está ejecutando.
  • Puede haber hasta ocho sesiones privadas por proceso.
  • Las sesiones privadas no se pueden usar con la entrega en tiempo real.
  • Los eventos generados por una sesión privada no incluyen el tiempo de ejecución para el modo kernel frente a las instrucciones del modo de usuario o los detalles de nivel de subproceso del tiempo de CPU usado.
Ahora se pueden pasar filtros de identificador de proceso y filtros de nombre ejecutables a las API de control de sesión cuando se inician registradores privados de todo el sistema. Para obtener los mejores resultados en escenarios entre procesos, se deben pasar los mismos filtros a cada operación de control durante la sesión, incluidas las llamadas enable/diasble del proveedor. Tenga en cuenta que los filtros tienen el mismo formato que los consumidos por EnableTraceEx2.
Puede usar este modo junto con el modo EVENT_TRACE_PRIVATE_IN_PROC .
Antes de Windows 10, la versión 1703: Solo LocalSystem, el administrador y los usuarios del grupo de administradores que se ejecutan en un proceso con privilegios elevados pueden crear una sesión privada. Si incluye la marca EVENT_TRACE_PRIVATE_IN_PROC , cualquier usuario puede crear una sesión privada en proceso. Además, en versiones anteriores de Windows, solo puede haber una sesión privada por proceso (a menos que también se especifique el modo de EVENT_TRACE_PRIVATE_IN_PROC, en cuyo caso puede crear hasta tres sesiones privadas en proceso).
Antes de Windows Vista: Los usuarios del grupo Usuarios del registro de rendimiento también pueden crear una sesión privada.

No use con EVENT_TRACE_REAL_TIME_MODE.
Antes de Windows 7 y Windows Server 2008 R2: No use con EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) Esta opción agrega un encabezado al archivo de registro.
Nota:
En Windows Vista o posterior, este modo no es aplicable y no se debe usar.
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) Use kilobytes como unidad de medida para especificar el tamaño de un archivo. La unidad de medida predeterminada es megabytes. Este modo se aplica al valor del Registro MaxFileSize para una sesión de AutoLogger y al miembro MaximumFileSize de EVENT_TRACE_PROPERTIES. Esta opción se admite en Windows Vista y versiones posteriores.
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) Usa números de secuencia que son únicos en las sesiones de seguimiento de eventos. Este modo solo se aplica a los eventos registrados mediante la función TraceMessage . Para obtener más información, consulte TraceMessage para obtener detalles de uso.
EVENT_TRACE_USE_GLOBAL_SEQUENCE y EVENT_TRACE_USE_LOCAL_SEQUENCE son mutuamente excluyentes.
Windows 2000: Este valor no se admite.
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) Usa números de secuencia que son únicos solo para una sesión de seguimiento de eventos individual. Este modo solo se aplica a los eventos registrados mediante la función TraceMessage . Para obtener más información, consulte TraceMessage para obtener detalles de uso.
EVENT_TRACE_USE_GLOBAL_SEQUENCE y EVENT_TRACE_USE_LOCAL_SEQUENCE son mutuamente excluyentes.
Windows 2000: Este valor no se admite.
EVENT_TRACE_RELOG_MODE (0x00010000) Registra el evento sin incluir EVENT_TRACE_HEADER. Nota:
Este modo no debe usarse. Está reservado para uso interno.
Windows 2000: Este valor no se admite.
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) Use junto con el modo EVENT_TRACE_PRIVATE_LOGGER_MODE para iniciar una sesión privada. Este modo exige que solo el proceso que registró el GUID del proveedor pueda iniciar la sesión del registrador con ese GUID.
Puede crear hasta tres sesiones privadas en proceso por proceso.
Esta opción se admite en Windows Vista y versiones posteriores.
EVENT_TRACE_MODE_RESERVED(0x00100000) Esta opción se usa para indicar el montón y el seguimiento de secciones críticas. Esta opción se admite en Windows Vista y versiones posteriores.
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) Esta opción detiene el registro en el apagado híbrido. Si no se especifica ni EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ni EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN , ETW elegirá un valor predeterminado en función de si el autor de la llamada procede de la sesión 0 o no. Esta opción se admite en Windows 8 y Windows Server 2012.
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) Esta opción continúa registrando el apagado híbrido. Si no se especifica ni EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ni EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN , ETW elegirá un valor predeterminado en función de si el autor de la llamada procede de la sesión 0 o no. Esta opción se admite en Windows 8 y Windows Server 2012.
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) Usa memoria paginada. Esta configuración se recomienda para que los eventos no usen la memoria no paginada. Los búferes no paginados usan memoria no paginada para el espacio de búfer. Dado que los búferes no paginados nunca se paginan, una sesión de registro funciona bien. El uso de búferes paginables consume menos recursos.
Los proveedores de modo kernel y los registradores del sistema no pueden registrar eventos en sesiones que especifican este modo de registro.
Este modo se omite si se establece EVENT_TRACE_PRIVATE_LOGGER_MODE .
No puede usar este modo con el registrador de kernel NT.
Windows 2000: Este valor no se admite.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) Esta opción recibirá eventos de SystemTraceProvider. Si el parámetro StartTracePropertiesLogFileMode incluye esta marca, el registrador será un registrador del sistema. Esta opción se admite en Windows 8 y Windows Server 2012.
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) Indica que una sesión de registro no debe verse afectada por errores de EventWrite en otras sesiones. Sin esta marca, si un evento no se puede publicar en una de las sesiones en las que está habilitado un proveedor, el evento no se publicará en ninguna de las sesiones. Cuando se establece esta marca, un error al escribir un evento en una sesión no hará que la función EventWrite devuelva un código de error en otras sesiones.
No use con EVENT_TRACE_PRIVATE_LOGGER_MODE.
Esta opción se admite en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) Escribe eventos que se registraron en distintos procesadores en un búfer común. El uso de este modo puede eliminar el problema de los eventos que aparecen desordenados cuando los eventos se publican en distintos procesadores mediante la hora del sistema. Este modo también puede eliminar el problema con los registros circulares que parecen quitar eventos en varios equipos de procesador.
Si no usa este modo y usa la hora del sistema, los eventos pueden aparecer desordenados en varios equipos de procesador. Esto se debe a que los búferes ETW están asociados a un procesador en lugar de a un subproceso. Como resultado, si un subproceso cambia de una CPU a otra, el búfer asociado a la última CPU se puede vaciar en el disco antes del asociado a la CPU anterior.
Si espera un gran volumen de eventos (por ejemplo, más de 1000 eventos por segundo), no debe usar este modo.
Tenga en cuenta que el número de procesador no se incluye con el evento .
Esta opción se admite en Windows 7, Windows Server 2008 R2 y versiones posteriores.
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) Esta opción agrega búferes ETW a los volcados de evaluación de prioridades. Esta opción se admite en Windows 8 y Windows Server 2012.