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, opcionalmente, rastrear binários para todos os provedores habilitados para a sessão. O acompanhamento se aplica retroativamente aos 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 configurado permitido pelo sistema operacional. Para obter mais informações, consulte os valores TraceProviderBinaryTracking e TraceMaxLoggersQuery da enumeração TRACE_INFO_CLASS , bem como Recuperando 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 o código para desenvolvedores nativos, .NET e 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 de anexação de 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 em 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 condições específicas em uma sessão de agente. Para obter mais informações, consulte:
- TdhAggregatePayloadFilters
- TdhCleanupPayloadEventFilterDescriptor
- TdhCreatePayloadFilter
- TdhDeletePayloadFilter
Além disso, consulte a documentação amplamente revisada para a função EnableTraceEx2 e as estruturas de ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR 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 ID de evento e filtros de 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 do 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, consultam configurações de sessão de rastreamento de eventos e processam um arquivo de rastreamento relogged. Para obter mais informações, consulte:
- EventSetInformation
- TdhCloseDecodingHandle
- TdhGetDecodingParameter
- TdhGetWppProperty
- TdhGetWppMessage
- TdhLoadManifestFromBinary
- TdhOpenDecodingHandle
- TdhSetDecodingParameter
- TraceQueryInformation
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 filters do tipo complexo ProviderType ). Em seguida, os controladores podem usar a função TdhEnumerateProviderFilters para determinar a definição de 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 os eventos de aparecerem 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 registro em 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 manifestos 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:
- EnableTraceEx2
- EventWriteEx
- TdhEnumerateProviderFilters
- TdhFormatProperty
- TdhLoadManifest
- TdhUnloadManifest
- TraceSetInformation
As seguintes estruturas foram adicionadas nesta versão:
- CLASSIC_EVENT_ID
- ENABLE_TRACE_PARAMETERS
- EVENT_EXTENDED_ITEM_STACK_TRACE32
- EVENT_EXTENDED_ITEM_STACK_TRACE64
- EVENT_FILTER_HEADER
- PROVIDER_FILTER_INFO
As seguintes enumerações foram adicionadas nesta versão:
As seguintes classes MOF foram adicionadas nesta versão: