Compartilhar via


Constantes do modo de registro em log

As constantes a seguir representam os possíveis modos de registro em log para uma sessão de rastreamento de eventos.

As constantes são usadas nos membros LogFileMode das estruturas EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIES e TRACE_LOGFILE_HEADER . Essas constantes são definidas no arquivo de cabeçalho Evntrace.h .

Mode Descrição
EVENT_TRACE_FILE_MODE_NONE (0x00000000) O mesmo que EVENT_TRACE_FILE_MODE_SEQUENTIAL sem o tamanho máximo do arquivo especificado.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) Grava eventos em um arquivo de log sequencialmente; para quando o arquivo atinge seu tamanho máximo. Não use com EVENT_TRACE_FILE_MODE_CIRCULAR ou EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) Grava eventos em um arquivo de log. Depois que o arquivo atinge o tamanho máximo, os eventos mais antigos são substituídos por eventos de entrada. Observe que o conteúdo do arquivo de log circular pode aparecer fora de ordem em computadores com vários processadores.
Não use com EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE ou EVENT_TRACE_FILE_MODE_SEQUENTIAL.
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) Acrescenta eventos a um arquivo de log sequencial existente. Se o arquivo não existir, ele será criado. Use somente se você especificar a hora do sistema para a resolução do relógio; caso contrário, o ProcessTrace retornará eventos com carimbos de data/hora incorretos. Ao usar EVENT_TRACE_FILE_MODE_APPEND, os valores de BufferSize, NumberOfProcessors e ClockType devem ser fornecidos explicitamente e devem ser os mesmos no agente e no arquivo que está sendo acrescentado.
Não use com EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILE ou EVENT_TRACE_PRIVATE_LOGGER_MODE.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) Alterna automaticamente para um novo arquivo de log quando o arquivo atinge o tamanho máximo. O membro MaximumFileSize do EVENT_TRACE_PROPERTIES deve ser definido. O nome do arquivo especificado deve ser uma cadeia de caracteres formatada (por exemplo, a cadeia de caracteres contém um %d, como c:\test%d.etl). Sempre que um novo arquivo é criado, um contador é incrementado e seu valor é usado, a cadeia de caracteres formatada é atualizada e a cadeia de caracteres resultante é usada como o nome do arquivo.
Essa opção não é permitida para sessões de rastreamento de eventos privados e não deve ser usada para sessões de agente de kernel NT.
Não use com EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND ou EVENT_TRACE_FILE_MODE_SEQUENTIAL.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) Reserva EVENT_TRACE_PROPERTIES. MaximumFileSize bytes de espaço em disco para o arquivo de log com antecedência. O arquivo ocupa todo o espaço durante o registro em log, para arquivos de log circulares e sequenciais. Quando você interrompe a sessão, o arquivo de log é reduzido ao tamanho necessário. Você deve definir EVENT_TRACE_PROPERTIES. MaximumFileSize.
Não é possível usar o modo para sessões privadas de rastreamento de eventos.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) A sessão de registro em log não pode ser interrompida. Esse modo só tem suporte no Autologger. Essa opção tem suporte no Windows Vista e posterior.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Restringe quem pode registrar eventos na sessão para aqueles com permissão TRACELOG_LOG_EVENT . Essa opção tem suporte no Windows Vista e posterior.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) Entrega os eventos aos consumidores em tempo real. Os eventos são entregues quando os buffers são liberados, não no momento em que o provedor grava o evento. Você não deve habilitar o modo em tempo real se não houver consumidores para consumir os eventos porque as chamadas para eventos de log eventualmente falharão quando os buffers ficarem cheios. Antes do Windows Vista, se os eventos não estavam sendo consumidos, os eventos eram descartados. Não especifique mais de um consumidor em tempo real em um processo no Windows XP ou noWindows Server 2003. Em vez disso, fazer com que um thread consuma eventos e distribua os eventos para outras pessoas.
Antes do Windows Vista: Você não deve usar o modo em tempo real porque a taxa de eventos com suporte é muito menor do que a leitura do arquivo de log (eventos podem ser descartados). Além disso, a ordem de evento não é garantida em computadores com vários processadores. O modo em tempo real é mais adequado para eventos de tipo de notificação de baixo tráfego.

Você pode combinar esse modo com outros modos de arquivo de log; no entanto, não use esse modo com EVENT_TRACE_PRIVATE_LOGGER_MODE. Observe que, se você combinar esse modo com outros modos de arquivo de log, os buffers serão liberados uma vez a cada segundo, resultando em buffers parcialmente preenchidos sendo gravados no arquivo de log. Por exemplo, se você usar buffers de 64k e sua taxa de registro em log for de 1 evento a cada segundo, o serviço gravará 64k/segundo no arquivo de log.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) Esse modo é usado para atrasar a abertura do arquivo de log até que ocorra um evento.
Observação:
No Windows Vista ou posterior, esse modo não é aplicável e não deve ser usado.
EVENT_TRACE_BUFFERING_MODE (0x00000400) Esse modo grava eventos em um buffer de memória circular. Eventos gravados além do tamanho total do buffer removem os eventos mais antigos que ainda permanecem no buffer. O tamanho desse buffer de memória é o produto de MinimumBuffers e BufferSize (consulte EVENT_TRACE_PROPERTIES). Como consequência dessa fórmula, qualquer buffer que usa EVENT_TRACE_BUFFERING_MODE ignorará o valor MaximumBuffers .
Os eventos não são gravados em um arquivo de log ou entregues em tempo real e o ETW não libera os buffers. Para obter um instantâneo do buffer, chame a função FlushTrace.
Esse modo é particularmente útil para depurar drivers de dispositivo em conjunto com a capacidade de exibir o conteúdo de buffers na memória com a extensão do depurador de kernel WMITrace .
Não use com EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE ou EVENT_TRACE_REAL_TIME_MODE.
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) Cria uma sessão de rastreamento de eventos no modo de usuário que é executada no mesmo processo que seu provedor de rastreamento de eventos. A memória para buffers vem da memória do processo. Os processos que não exigem dados do kernel podem eliminar a sobrecarga associada às transições do modo kernel usando uma sessão de rastreamento de eventos privados.
Se o provedor for registrado por vários processos, o ETW acrescentará o identificador do processo ao nome do arquivo de log para criar um nome de arquivo de log exclusivo. Por exemplo, se o controlador especificar os nomes de arquivo de log como c:\mylogs\myprivatelog.etl, o ETW criará o arquivo de log como c:\mylogs\myprivatelog.etl_nnnn, em que nnnn é o identificador do processo. O identificador do processo não é acrescentado ao primeiro processo que registra o provedor, ele é acrescentado apenas aos processos subsequentes que registram o provedor.
As sessões de rastreamento de eventos privados têm as seguintes limitações:
  • Uma sessão privada pode registrar eventos somente para os threads do processo em que está em execução.
  • Pode haver até oito sessões privadas por processo.
  • As sessões privadas não podem ser usadas com entrega em tempo real.
  • Os eventos gerados por uma sessão privada não incluem tempo de execução para instruções de modo kernel versus modo de usuário ou detalhes em nível de thread do tempo de CPU usado.
Filtros de ID de processo e filtros de nome executáveis agora podem ser passados para APIs de controle de sessão quando agentes privados de todo o sistema são iniciados. Para obter os melhores resultados em cenários de processo cruzado, os mesmos filtros devem ser passados para todas as operações de controle durante a sessão, incluindo chamadas habilitadas/diásveis do provedor. Observe que os filtros têm o mesmo formato que os consumidos por EnableTraceEx2.
Você pode usar esse modo em conjunto com o modo EVENT_TRACE_PRIVATE_IN_PROC .
Antes do Windows 10, versão 1703: Somente o LocalSystem, o administrador e os usuários no grupo de administradores executados em um processo elevado podem criar uma sessão privada. Se você incluir o sinalizador EVENT_TRACE_PRIVATE_IN_PROC , qualquer usuário poderá criar uma sessão privada em processo. Além disso, em versões anteriores do Windows, só pode haver uma sessão privada por processo (a menos que o modo de EVENT_TRACE_PRIVATE_IN_PROC também seja especificado; nesse caso, você pode criar até três sessões privadas em processo).
Antes do Windows Vista: Os usuários do grupo Usuários do Log de Desempenho também podem criar uma sessão privada.

Não use com EVENT_TRACE_REAL_TIME_MODE.
Antes do Windows 7 e do Windows Server 2008 R2: Não use com EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) Essa opção adiciona um cabeçalho ao arquivo de log.
Observação:
No Windows Vista ou posterior, esse modo não é aplicável e não deve ser usado.
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) Use kilobytes como a unidade de medida para especificar o tamanho de um arquivo. A unidade de medida padrão é megabytes. Esse modo se aplica ao valor do Registro MaxFileSize para uma sessão autoLogger e o membro MaximumFileSize do EVENT_TRACE_PROPERTIES. Essa opção tem suporte no Windows Vista e posterior.
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) Usa números de sequência exclusivos entre sessões de rastreamento de eventos. Esse modo só se aplica a eventos registrados usando a função TraceMessage . Para obter mais informações, consulte TraceMessage para obter detalhes de uso.
EVENT_TRACE_USE_GLOBAL_SEQUENCE e EVENT_TRACE_USE_LOCAL_SEQUENCE são mutuamente exclusivos.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) Usa números de sequência que são exclusivos apenas para uma sessão de rastreamento de eventos individual. Esse modo só se aplica a eventos registrados usando a função TraceMessage . Para obter mais informações, consulte TraceMessage para obter detalhes de uso.
EVENT_TRACE_USE_GLOBAL_SEQUENCE e EVENT_TRACE_USE_LOCAL_SEQUENCE são mutuamente exclusivos.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_RELOG_MODE (0x00010000) Registra o evento sem incluir EVENT_TRACE_HEADER. Nota:
Esse modo não deve ser usado. Ele é reservado para uso interno.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) Use em conjunto com o modo EVENT_TRACE_PRIVATE_LOGGER_MODE para iniciar uma sessão privada. Esse modo impõe que somente o processo que registrou o GUID do provedor possa iniciar a sessão do agente com esse GUID.
Você pode criar até três sessões privadas em processo por processo.
Essa opção tem suporte no Windows Vista e posterior.
EVENT_TRACE_MODE_RESERVED(0x00100000) Essa opção é usada para sinalizar o heap e o rastreamento crítico da seção. Essa opção tem suporte no Windows Vista e posterior.
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) Essa opção interrompe o registro em log no desligamento híbrido. Se nenhum EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ou EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN for especificado, o ETW escolherá um padrão com base em se o chamador está vindo da Sessão 0 ou não. Essa opção tem suporte no Windows 8 e no Windows Server 2012.
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) Essa opção continua fazendo logon no desligamento híbrido. Se nenhum EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN ou EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN for especificado, o ETW escolherá um padrão com base em se o chamador está vindo da Sessão 0 ou não. Essa opção tem suporte no Windows 8 e no Windows Server 2012.
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) Usa memória paginada. Essa configuração é recomendada para que os eventos não usem a memória nãopagada. Buffers nãopagados usam memória nãopagada para espaço em buffer. Como os buffers nãopagados nunca são paginados, uma sessão de registro em log tem um bom desempenho. O uso de buffers pagináveis é menos intensivo em recursos.
Os provedores do modo kernel e os agentes do sistema não podem registrar eventos em sessões que especificam esse modo de registro em log.
Esse modo será ignorado se EVENT_TRACE_PRIVATE_LOGGER_MODE estiver definido.
Você não pode usar esse modo com o Agente do Kernel NT.
Windows 2000: Não há suporte para esse valor.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) Essa opção receberá eventos do SystemTraceProvider. Se o parâmetroPropriedades de StartTraceLogFileMode incluir esse sinalizador, o agente será um agente do sistema. Essa opção tem suporte no Windows 8 e no Windows Server 2012.
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) Indica que uma sessão de registro em log não deve ser afetada por falhas de EventWrite em outras sessões. Sem esse sinalizador, se um evento não puder ser publicado em uma das sessões para as quais um provedor está habilitado, o evento não será publicado em nenhuma das sessões. Quando esse sinalizador é definido, uma falha ao gravar um evento em uma sessão não fará com que a função EventWrite retorne um código de erro em outras sessões.
Não use com EVENT_TRACE_PRIVATE_LOGGER_MODE.
Essa opção é compatível com Windows 8.1, Windows Server 2012 R2 e posterior.
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) Grava eventos que foram registrados em processadores diferentes em um buffer comum. Usar esse modo pode eliminar o problema de eventos que aparecem fora de ordem quando os eventos estão sendo publicados em processadores diferentes usando o tempo do sistema. Esse modo também pode eliminar o problema com logs circulares que aparecem para remover eventos em vários computadores processadores.
Se você não usar esse modo e usar o tempo do sistema, os eventos poderão aparecer fora de ordem em vários computadores processadores. Isso ocorre porque os buffers ETW estão associados a um processador em vez de um thread. Como resultado, se um thread for alternado de uma CPU para outra, o buffer associado à última CPU poderá ser liberado para o disco antes do associado à antiga CPU.
Se você espera um grande volume de eventos (por exemplo, mais de 1.000 eventos por segundo), não deve usar esse modo.
Observe que o número do processador não está incluído no evento.
Essa opção tem suporte no Windows 7, Windows Server 2008 R2 e posterior.
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) Essa opção adiciona buffers ETW a despejos de triagem. Essa opção tem suporte no Windows 8 e no Windows Server 2012.