Partilhar via


Visão geral do rastreamento de eventos USB para Windows

Este tópico fornece informações para desenvolvedores de drivers cliente sobre os recursos de rastreamento e registro em log do USB (Universal Serial Bus). Essas informações são fornecidas para o benefício daqueles que desenvolvem e depuram dispositivos USB. Ele inclui informações sobre como instalar as ferramentas, criar arquivos de rastreamento e analisar os eventos em um arquivo de rastreamento USB. O tópico pressupõe que você tenha uma compreensão abrangente do ecossistema USB e do hardware necessários para usar com êxito os recursos de rastreamento e registro em log USB.

Para interpretar os rastreamentos de eventos, você também deve entender os drivers do lado do host USB do Windows no Windows, as especificações USB oficiais e as especificações de classe de dispositivo USB.

Sobre o rastreamento de eventos para Windows

O Rastreamento de Eventos para Windows (ETW) é um recurso de rastreamento de alta velocidade de uso geral fornecido pelo sistema operacional. Ele usa um mecanismo de buffer e registro que é implementado no kernel para fornecer um mecanismo de rastreamento para eventos que são gerados por aplicativos de modo de usuário e drivers de dispositivo de modo kernel. Além disso, o ETW fornece a capacidade de habilitar e desabilitar dinamicamente o registro em log, o que facilita a execução de rastreamento detalhado em ambientes de produção sem exigir reinicializações ou reinicializações de aplicativos. O mecanismo de registro em log usa buffers por processador que são gravados em disco por um thread de gravador assíncrono. Esse buffer permite que aplicativos de servidor de grande escala gravem eventos com o mínimo de perturbação.

O ETW foi introduzido no Windows 2000. Desde então, vários componentes principais do sistema operacional e do servidor adotaram o ETW para instrumentar suas atividades. O ETW é agora uma das principais tecnologias de instrumentação em plataformas Windows. Um número crescente de aplicativos de terceiros usa o ETW para instrumentação e alguns aproveitam os eventos fornecidos pelo Windows. O ETW também foi abstraído na tecnologia de rastreamento de software de pré-processador do Windows (WPP), que fornece um conjunto de macros fáceis de usar para rastrear mensagens no estilo printf para depuração durante o desenvolvimento.

O ETW foi significativamente atualizado para Windows Vista e Windows 7. Um dos novos recursos mais significativos é o modelo de provedor de eventos unificado e as APIs. Em resumo, as novas APIs unificadas combinam rastreamentos de log e gravação no Visualizador de Eventos em um mecanismo consistente e fácil de usar para provedores de eventos. Ao mesmo tempo, vários novos recursos foram adicionados ao ETW para melhorar as experiências do desenvolvedor e do usuário final.

Para obter mais informações sobre ETW e WPP, consulte Rastreamento de eventos e Rastreamento de eventos para Windows (ETW).

Suporte USB para registro ETW

USB é um dos meios mais prevalentes de conectar uma variedade cada vez maior de dispositivos periféricos a PCs. Há uma base instalada muito grande de PCs host USB e dispositivos periféricos USB, e os fornecedores de sistemas, fornecedores de dispositivos e usuários finais esperam e exigem que os dispositivos USB operem perfeitamente no nível do sistema e do dispositivo.

A grande base instalada e a proliferação de dispositivos USB revelaram problemas de compatibilidade entre a pilha de software USB do Windows, o controlador de host USB e os dispositivos USB. Esses problemas de compatibilidade causam problemas para os clientes, como falhas de operação do dispositivo, travamentos do sistema e falhas do sistema.

Tem sido difícil ou impossível investigar e depurar problemas de dispositivos USB sem acesso direto ao sistema e/ou dispositivos, ou, em alguns casos, um despejo de falha do sistema. Mesmo com acesso total ao hardware e um despejo de falha, extrair as informações relevantes tem sido uma técnica demorada que é conhecida apenas por alguns desenvolvedores de drivers USB principais. Você pode depurar problemas USB usando analisadores de hardware ou software, mas eles são muito caros e estão disponíveis para apenas uma pequena porcentagem de profissionais.

Suporte a USB ETW

O ETW fornece um mecanismo de registro de eventos que a pilha de drivers USB pode explorar para ajudar na investigação, diagnóstico e depuração de problemas relacionados ao USB. Pilha de driver USB O registro de eventos ETW suporta a maioria ou todos os recursos de depuração fornecidos pelo mecanismo de log ad hoc existente na pilha de drivers USB, sem nenhuma de suas limitações. Isso se traduz em facilidade de depuração de problemas relacionados ao USB, o que deve fornecer uma pilha de drivers USB mais robusta a longo prazo.

Adicionamos o registro ETW aos drivers do controlador de host USB e ao driver do hub USB. A camada de driver do controlador de host USB inclui o driver de porta do controlador de host (usbport.sys) e os drivers de miniporta (usbehci.sys, usbohci.sys e usbuhci.sys). A camada de driver de hub USB consiste no driver de hub USB (usbhub.sys).

  • Eventos do Hub USB

    Enquanto a coleta de eventos USB está habilitada, o provedor de eventos do hub USB relata a adição e remoção de hubs USB, os eventos de resumo do dispositivo de todos os hubs e as alterações de status da porta. Você pode usar esses eventos para determinar a causa raiz da maioria das falhas de enumeração de dispositivo.

  • Eventos da porta USB

    Enquanto a coleta de eventos USB está habilitada, o provedor de eventos da porta USB relata a E/S dos drivers do cliente, a abertura e o fechamento dos pontos de extremidade do dispositivo e as transições de estado da miniporta, como início e parada da miniporta. A E/S registrada inclui solicitações para o estado das portas USB físicas. As transições de estado em portas USB físicas são um dos principais iniciadores de atividade na pilha de drivers USB principal.

O Windows fornece uma pilha de drivers USB para oferecer suporte a dispositivos USB 3.0. A pilha de drivers USB 3.0 fornecida pela Microsoft consiste em três drivers: Usbxhci.sys, Ucx01000.sys e Usbhub3.sys. Todos os três drivers trabalham juntos para adicionar suporte nativo ao Windows para a maioria dos controladores host USB 3.0. A nova pilha de drivers suporta dispositivos SuperSpeed, de alta velocidade, velocidade máxima e baixa velocidade. Por meio de rastreamentos de eventos, a pilha de drivers USB 3.0 fornece uma visão da atividade refinada do controlador host e de todos os dispositivos conectados a ele.

  • Eventos USB Hub3

    Enquanto a coleta de eventos USB está habilitada, o provedor de eventos USB Hub3 relata a adição e remoção de hubs USB, os eventos de resumo do dispositivo de todos os hubs, alterações de status de porta e estados de energia de dispositivos e hubs USB. As alterações de status de porta são transições de estado em portas USB físicas e são um dos principais iniciadores de atividade na pilha de drivers USB principal. O Hub3 relata os estágios do processo de enumeração, que apontam para a causa raiz da maioria das falhas de enumeração de dispositivo. Com a palavra-chave StateMachine habilitada, o Hub3 relata a atividade interna da máquina de estado para objetos de dispositivo, hub e porta de software, que fornecem visibilidade mais profunda da lógica do driver.

  • Eventos USB UCX

    Enquanto a coleta de eventos USB está ativada, o provedor de eventos USB UCX relata E/S de drivers de cliente e abertura e fechamento de pontos de extremidade de dispositivo e fluxos de ponto de extremidade. Com a palavra-chave StateMachine habilitada, o UCX relata a atividade interna da máquina de estado para objetos de host e endpoint controller, que fornecem visibilidade mais profunda da lógica do driver.

  • Eventos USB xHCI

    Enquanto a coleta de eventos USB está ativada, o provedor de eventos xHCI USB relata as propriedades dos controladores xHCI do sistema e detalhes de baixo nível da operação xHCI. O xHCI relata solicitações de comando enviadas e concluídas pelo hardware xHCI, incluindo códigos de conclusão específicos do xHCI.

Nesta seção

Tópico Descrição
Como capturar um rastreamento de evento USB com o Logman Este tópico fornece informações sobre como usar a ferramenta Logman para capturar um rastreamento de eventos ETW USB. Logman é uma ferramenta de rastreamento que é incorporada ao Windows. Você pode usar o Logman para capturar eventos em um arquivo de log de rastreamento de eventos.
Usando GUIDs de ID de atividade em rastreamentos ETW USB Este tópico fornece informações sobre GUIDs de ID de atividade, como adicionar esses GUIDs nos provedores de rastreamento de eventos e exibi-los no Netmon.
Rastreamentos ETW USB no Netmon Você pode exibir rastreamentos de eventos ETW USB usando o Microsoft Network Monitor, também conhecido como Netmon. O Netmon não analisa o rastreamento automaticamente. Requer analisadores USB ETW. Os analisadores ETW USB são arquivos de texto, escritos em NPL (Network Monitor Parser Language), que descrevem a estrutura dos rastreamentos de eventos ETW USB. Os analisadores também definem colunas e filtros específicos para USB. Esses analisadores fazem do Netmon a melhor ferramenta para analisar traços ETW USB.
Usando Xperf com USB ETW Este tópico descreve como usar o Xperf com Netmon para analisar dados de rastreamento USB.
USB ETW e gerenciamento de energia Este tópico fornece uma breve visão geral sobre como usar o ETW para examinar o estado de suspensão seletiva USB e identificar problemas de eficiência energética do sistema usando o utilitário Windows PowerCfg.