Constantes do modo de registro
As constantes a seguir representam os modos de log possíveis para uma sessão de rastreamento de eventos.
As constantes são usadas nos membros LogFileMode de EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIES e TRACE_LOGFILE_HEADER das estruturas. Essas constantes são definidas no arquivo de cabeçalho Evntrace.h.
Modo | Descrição |
---|---|
EVENT_TRACE_FILE_MODE_NONE (0x00000000) | O mesmo que EVENT_TRACE_FILE_MODE_SEQUENTIAL, sem especificação de tamanho máximo de ficheiro. |
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) | Grava eventos num ficheiro de log sequencialmente, parando quando o ficheiro atinge o seu tamanho máximo. Não utilizar 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 utilize com EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILEou 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. Utilize apenas se especificar hora do sistema para a resolução do relógio; caso contrário, ProcessTrace retornará eventos com carimbos de tempo incorretos. Ao usar EVENT_TRACE_FILE_MODE_APPEND, os valores para BufferSize, NumberOfProcessorse ClockType devem ser fornecidos explicitamente e devem ser os mesmos no registrador e no arquivo que está sendo acrescentado. Não utilize com EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILEou EVENT_TRACE_PRIVATE_LOGGER_MODE. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) | Alterna automaticamente para um novo arquivo de log quando o arquivo atinge o tamanho máximo. O MaximumFileSize membro 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). Cada vez 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. Esta opção não é permitida para sessões privadas de rastreamento de eventos e não deve ser usada para sessões de log do kernel NT. Não utilize com EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND ou EVENT_TRACE_FILE_MODE_SEQUENTIAL. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) | Reserva EVENT_TRACE_PROPERTIES.MaximumFileSize bytes de espaço em disco para o ficheiro de log com antecedência. O arquivo ocupa todo o espaço durante o registro, para arquivos de log circulares e sequenciais. Quando você interrompe a sessão, o arquivo de log é reduzido para o tamanho necessário. Você deve definir EVENT_TRACE_PROPERTIES.TamanhoMáximoDeArquivo. Não é possível usar o modo para sessões de rastreamento de eventos privados. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) | A sessão de registo não pode ser interrompida. Este modo só é suportado pelo Autologger.Esta opção é suportada no Windows Vista e posterior. . |
EVENT_TRACE_SECURE_MODE (0X00000080) | Restringe quem pode registrar eventos na sessão àqueles com permissão TRACELOG_LOG_EVENT. Esta opção é suportada no Windows Vista e versões posteriores. |
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, pois as chamadas para registrar eventos acabarão falhando quando os buffers ficarem cheios. Antes do Windows Vista, se os eventos não estivessem sendo consumidos, os eventos eram descartados. Não especifique mais de um consumidor em tempo real em um processo no Windows XP ou Windows Server 2003. Em vez disso, faça com que um thread consuma eventos e distribua os eventos para outros. Antes do Windows Vista: Você não deve usar o modo em tempo real porque a taxa de eventos suportada é muito menor do que a leitura do arquivo de log (os eventos podem ser descartados). Além disso, a ordem dos eventos não é garantida em computadores com vários processadores. O modo em tempo real é mais adequado para eventos do tipo 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. Note que, ao combinar este modo com outros modos de ficheiro de log, os buffers serão esvaziados uma vez por segundo, resultando na gravação de buffers parcialmente preenchidos no seu ficheiro de log. Por exemplo, se você usar buffers de 64k e sua taxa de registro for de 1 evento a cada segundo, o serviço gravará 64k/segundo em seu 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. Nota: No Windows Vista ou posterior, esse modo não é aplicável e não deve ser usado. |
EVENT_TRACE_BUFFERING_MODE (0x00000400) | Este modo grava eventos em um buffer de memória circular. Os eventos gravados além do tamanho total do buffer removem os eventos mais antigos que ainda permanecem no buffer. O tamanho deste buffer de memória é o produto de MinimumBuffers e BufferSize (consulte EVENT_TRACE_PROPERTIES). Como consequência desta fórmula, qualquer buffer que use 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. Este modo é particularmente útil para depurar drivers de dispositivo em conjunto com a capacidade de visualizar o conteúdo de buffers na memória, usando a extensão do depurador do kernel WMITrace. Não utilize com EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILEou 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 privada de rastreamento de eventos. Se o provedor estiver 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 dos arquivos de log como c:\mylogs\myprivatelog.etl, o ETW criará o arquivo de log como c:\mylogs\myprivatelog.etl_nnnn, onde nnnn é o identificador do processo. O identificador de processo não é anexado ao primeiro processo que registra o provedor, ele é anexado apenas aos processos subsequentes que registram o provedor. As sessões privadas de rastreamento de eventos têm as seguintes limitações:
Você pode usar esse modo em conjunto com o modo EVENT_TRACE_PRIVATE_IN_PROC. Antes do Windows 10, versão 1703: Somente LocalSystem, o administrador e os usuários do 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 EVENT_TRACE_PRIVATE_IN_PROC também seja especificado, caso em que 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 podiam criar uma sessão privada. Não utilizar 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) | Esta opção adiciona um cabeçalho ao arquivo de log. Nota: 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. Este modo aplica-se ao valor de registo MaxFileSize para uma sessão do AutoLogger e ao membro MaximumFileSize de EVENT_TRACE_PROPERTIES. Esta opção é suportada no Windows Vista e versões posteriores. |
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) | Utiliza números de sequência que são únicos em todas as sessões de rastreamento de eventos. Esse modo só se aplica a eventos registrados usando a função TraceMessage. Para mais informações, consulte TraceMessage para detalhes sobre o uso. EVENT_TRACE_USE_GLOBAL_SEQUENCE e EVENT_TRACE_USE_LOCAL_SEQUENCE são mutuamente exclusivos. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) | Usa números de sequência que são exclusivos apenas para uma sessão de rastreamento de evento individual. Esse modo só se aplica a eventos registrados usando a função TraceMessage. Para obter mais informações, consulte TraceMessage para obter detalhes sobre a utilização. EVENT_TRACE_USE_GLOBAL_SEQUENCE e EVENT_TRACE_USE_LOCAL_SEQUENCE excluem-se mutuamente. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_RELOG_MODE (0x00010000) | Registra o evento sem incluir EVENT_TRACE_HEADER.Nota: Este modo não deve ser utilizado. É reservado para uso interno. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) | Utilize 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 pode iniciar a sessão do registrador com esse GUID. Você pode criar até três sessões privadas internas por processo. Esta opção é suportada no Windows Vista e versões posteriores. |
EVENT_TRACE_MODE_RESERVED(0x00100000) | Esta opção é usada para sinalizar o rastreamento de heap e seção crítica. Esta opção é suportada no Windows Vista e versões posteriores. |
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) | Esta opção para de iniciar sessão no encerramento 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 no fato de o chamador ser proveniente da Sessão 0 ou não. Esta opção é suportada no Windows 8 e no Windows Server 2012. |
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) | Esta opção continua a registar eventos durante o encerramento 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 no fato de o chamador ser proveniente da Sessão 0 ou não. Esta opção é suportada 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ão paginada. Os buffers não paginados usam memória não paginada para espaço de buffer. Como os buffers não paginados nunca são transferidos para a memória secundária, uma sessão de log funciona bem. O uso de buffers pagináveis consome menos recursos. Provedores de modo kernel e registradores de sistema não podem registrar eventos em sessões que especificam esse modo de log. Este modo é ignorado se EVENT_TRACE_PRIVATE_LOGGER_MODE estiver definido. Não é possível usar esse modo com o NT Kernel Logger. Windows 2000: Este valor não é suportado. |
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) | Esta opção receberá eventos de SystemTraceProvider. Se o parâmetro StartTracePropertiesLogFileMode incluir esse sinalizador, o registrador será um registrador do sistema. Esta opção é suportada no Windows 8 e no Windows Server 2012. |
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) | Indica que uma sessão de log não deve ser afetada por falhas do 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 usar com EVENT_TRACE_PRIVATE_LOGGER_MODE. Esta opção é suportada no 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. O uso desse modo pode eliminar o problema de eventos que aparecem fora de ordem quando os eventos estão sendo publicados em diferentes processadores usando o tempo do sistema. Este modo também pode eliminar o problema com logs circulares que parecem perder eventos em computadores com múltiplos processadores. Se você não usar esse modo e usar a hora do sistema, os eventos podem 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 pode ser liberado para o disco antes daquele associado à CPU anterior. 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. Esta opção é suportada no Windows 7, Windows Server 2008 R2 e posterior. |
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) | Esta opção adiciona buffers de ETW aos dumps de triagem. Esta opção é suportada no Windows 8 e no Windows Server 2012. |