Novidades no Rastreamento de Eventos

Esta seção descreve os novos recursos que foram adicionados ao Rastreamento de Eventos para Windows em cada versão.

Windows 10, versão 1709

O ETW agora pode acompanhar binários opcionalmente para todos os provedores habilitados para a sessão. O acompanhamento se aplica retroativamente para provedores que foram habilitados para a sessão antes da chamada, bem como para todos os provedores futuros habilitados para a sessão. Agora você também pode consultar o número máximo de agentes do sistema atualmente configurados permitido pelo sistema operacional. Para obter mais informações, consulte os valores TraceProviderBinaryTracking e TraceMaxLoggersQuery da enumeração TRACE_INFO_CLASS , bem como a recuperação de dados adicionais de rastreamento de eventos.

O ETW agora pode filtrar eventos com base no nome do evento. Você também pode determinar quais eventos obtêm suas pilhas capturadas. Para obter mais informações, consulte os valores EVENT_FILTER_TYPE_EVENT_NAME, EVENT_FILTER_TYPE_STACKWALK_NAME e EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW da estrutura EVENT_FILTER_DESCRIPTOR , bem como as estruturas EVENT_FILTER_EVENT_NAME e EVENT_FILTER_LEVEL_KW associadas.

Windows 10

O TraceLogging se baseia no ETW e fornece uma maneira simplificada de instrumentar código para desenvolvedores nativos, do .NET e do WinRT. O TraceLogging permite incluir dados estruturados com eventos, correlacionar eventos e não requer um arquivo XML de manifesto de instrumentação separado.

As características do provedor foram adicionadas como um método para anexar mais dados a um registro de provedor individual. Eles podem ser usados para provedores baseados em manifesto ou TraceLogging. Atualmente, isso inclui suporte para adicionar um Nome do Provedor e/ou um Grupo de Provedores a um registro de provedor individual. Os Grupos de Provedores são um novo recurso para permitir que vários provedores ETW sejam controlados na agregação pelo grupo ao qual pertencem.

O estado de captura periódica é uma maneira de permitir que as notificações de estado de captura sejam enviadas rotineiramente aos provedores. Quando isso estiver habilitado, as notificações serão enviadas apenas para registros de provedor que foram habilitados anteriormente para a sessão atual. Cada provedor pode definir sua própria resposta (se houver) para uma notificação. Para obter detalhes da implementação, consulte TRACE_PERIODIC_CAPTURE_STATE_INFO.

Windows 8.1 e Windows Server 2012 R2

Os recursos a seguir foram adicionados ao Rastreamento de Eventos no Windows 8.1 e Windows Server 2012 R2.

Funções que dão suporte ao uso de filtros de payload, escopo e caminhada de pilha de eventos usados pela função EnableTraceEx2 e as estruturas ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR para filtrar em condições específicas em uma sessão do agente. Para obter mais informações, consulte:

Além disso, consulte a documentação amplamente revisada para a função EnableTraceEx2 e as estruturas ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR que são usadas por esses recursos.

Uma estrutura que define um predicado de filtro de carga de evento que descreve como filtrar em um único campo em uma sessão de rastreamento usada pela nova função TdhCreatePayloadFilter e uma nova estrutura usada por filtros de ID de evento e caminhada de pilha. Para obter mais informações, consulte:

Funções que recuperam informações sobre eventos presentes no manifesto do provedor. Para obter mais informações, consulte:

Uma estrutura que define uma matriz de eventos em um manifesto de provedor usado pela nova função TdhEnumerateManifestProviderEvents . Para obter mais informações, consulte:

Windows 8 e Windows Server 2012

Os recursos a seguir foram adicionados ao Rastreamento de Eventos em Windows 8 e Windows Server 2012.

Funções que executam operações em um objeto de registro, fornecem análise de carga de evento, fornecem navegação do provedor de rastreamento, configurações de sessão de rastreamento de eventos de consulta e processam um arquivo de rastreamento relojoado. Para obter mais informações, consulte:

Interfaces que fornecem informações para o relogger no processo de rastreamento e quando os eventos são registrados, acesso a dados para um evento específico e acesso a recursos de relogger que permitem a manipulação de arquivos ETL (Log de Rastreamento de Eventos). Para obter mais informações, consulte:

Enumerações adicionais usadas pelas novas funções e interfaces. Para obter mais informações, consulte:

Windows 7 e Windows Server 2008 R2

Os seguintes recursos foram adicionados nesta versão:

  • A capacidade dos provedores de definir filtros no manifesto. No Windows Vista, os controladores podem passar dados de filtro para o provedor. No entanto, o layout dos dados de filtro não foi definido no manifesto, portanto, o provedor teria que usar outros meios para fornecer a definição de filtro aos controladores. Com essa versão, os provedores podem definir a definição de filtro no manifesto (consulte o atributo de filtros do tipo complexo ProviderType ). Em seguida, os controladores podem usar a função TdhEnumerateProviderFilters para determinar a definição do filtro. Os provedores que usam filtros devem usar a função EventWriteEx para gravar o evento.
  • A capacidade de usar um único buffer para coletar eventos gerados em vários processadores. O uso de um único buffer elimina que os eventos apareçam fora de ordem em computadores com vários processadores. Para obter detalhes, consulte o modo de registro em log EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING . Por padrão, o ETW usa buffers por processador.
  • A capacidade de capturar um rastreamento de pilha para eventos. Para habilitar o rastreamento de pilha para eventos de kernel, consulte a função TraceSetInformation . Para habilitar o rastreamento de pilha para eventos de usuário, consulte o sinalizador EVENT_ENABLE_PROPERTY_STACK_TRACE para o membro EnableProperty do ENABLE_TRACE_PARAMETERS.
  • A capacidade de especificar o modo de registro em log EVENT_TRACE_BUFFERING_MODE ou EVENT_TRACE_FILE_MODE_NEWFILE com o modo de registro em log EVENT_TRACE_PRIVATE_LOGGER_MODE (consulte Constantes de Modo de Log).
  • A capacidade de habilitar um provedor de forma síncrona. Por padrão, os provedores são habilitados de forma assíncrona. Para habilitar um provedor de forma síncrona, defina o parâmetro Timeout de EnableTraceEx2.
  • A capacidade do controlador de solicitar que o provedor registre seu estado. Para obter detalhes, consulte o sinalizador EVENT_CONTROL_CODE_CAPTURE_STATE para o parâmetro ControlCode de EnableTraceEx2.
  • A capacidade dos consumidores de formatar dados de evento usando a função TdhFormatProperty .
  • A capacidade de decodificar eventos manifestados em computadores que não contêm o provedor. Para obter detalhes, consulte a função TdhLoadManifest .

As seguintes funções foram adicionadas nesta versão:

As seguintes estruturas foram adicionadas nesta versão:

As seguintes enumerações foram adicionadas nesta versão:

As seguintes classes MOF foram adicionadas nesta versão: