Compartilhar via


Visão geral do rastreamento de eventos USB para Windows

Este tópico fornece informações para desenvolvedores de driver cliente sobre os recursos de rastreamento e registro em log para o Barramento Serial Universal (USB). 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 ETW (Rastreamento de Eventos para Windows) é uma instalação de rastreamento de alta velocidade de uso geral fornecida pelo sistema operacional. Ele usa um mecanismo de buffer e registro em log implementado no kernel para fornecer um mecanismo de rastreamento para eventos gerados por aplicativos de modo de usuário e drivers de dispositivo no 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 a necessidade de reinicializações ou reinicializações de aplicativo. 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 em grande escala escrevam eventos com perturbação mínima.

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 nas plataformas Windows. Um número crescente de aplicativos de terceiros usa ETW para instrumentação e alguns aproveitam os eventos que o Windows fornece. O ETW também foi abstraído na tecnologia de rastreamento de software WPP (pré-processador do Windows), 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 e as APIs do provedor de eventos unificados. Em suma, 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 em log de ETW

O USB é um dos meios mais predominantes para conectar uma variedade cada vez maior de dispositivos periféricos a computadores. Há uma base instalada muito grande de computadores host USB e dispositivos periféricos USB, e fornecedores do sistema, 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 anfitrião USB, e os dispositivos USB. Esses problemas de compatibilidade causam problemas para clientes, como falhas de operação do dispositivo, travamentos do sistema e falhas no sistema.

Tem sido difícil ou impossível investigar e depurar problemas de dispositivo 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 a um despejo de memória, extrair as informações relevantes tem sido uma técnica de uso intensivo que é conhecida apenas por alguns desenvolvedores de driver USB principais. Você pode depurar problemas de 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 ETW USB

O ETW fornece um mecanismo de registro em log de eventos que a pilha de driver USB pode utilizar para ajudar a investigar, diagnosticar e depurar problemas relacionados ao USB. O registro em log de eventos ETW da pilha de driver USB suporta a maioria ou todos os recursos de depuração fornecidos pelo mecanismo de log ad hoc existente na pilha de driver USB, sem as limitações desse mecanismo. Isso resulta em facilidade para depurar problemas relacionados a USB, o que deverá fornecer uma pilha de driver USB mais robusta no longo prazo.

Adicionamos o registro em log 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 miniport (usbehci.sys, usbohci.syse usbuhci.sys). A camada de driver do hub USB é composta pelo driver do hub USB (usbhub.sys).

  • Eventos do Hub USB

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

  • Eventos de porta USB

    Enquanto a coleção de eventos USB está habilitada, o provedor de eventos de porta USB relata E/S de drivers de cliente, abertura e fechamento de pontos de extremidade do dispositivo e transições de estado do miniporto, como inicialização e parada do miniporto. O I/O registrado inclui solicitações sobre o estado físico das portas USB. As transições de estado em portas USB físicas são um dos principais iniciadores de atividade no núcleo da pilha de drivers USB.

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

  • Eventos do Hub3 USB

    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 dos dispositivos de todos os hubs, mudanças no status das portas e estados de energia dos dispositivos e hubs USB. As alterações de status de porta são transições de estado em portas físicas USB e são um dos principais iniciadores de atividade na pilha de drivers USB. O Hub3 relata os estágios do processo de enumeração, que apontam para a causa raiz da maioria das falhas de enumeração do dispositivo. Com a palavra-chave StateMachine habilitada, o Hub3 relata a atividade interna da máquina de estados para objetos de dispositivo de software, hub e porta, que proporcionam uma visibilidade mais profunda da lógica de funcionamento do driver.

  • Eventos de UCX USB

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

  • Eventos USB xHCI

    Enquanto a coleção de eventos USB está habilitada, o provedor de eventos USB xHCI relata as propriedades dos controladores xHCI do sistema e detalhes de baixo nível da operação xHCI. O xHCI reporta 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 eventos USB com o Logman Este tópico fornece informações sobre como usar a ferramenta Logman para capturar um rastreamento de eventos ETW de USB. O Logman é uma ferramenta de rastreamento integrada 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 de 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 de ETW USB no Netmon Você pode visualizar rastreamentos de eventos USB ETW usando o Microsoft Network Monitor, também conhecido como Netmon. O Netmon não analisa o rastreamento automaticamente. Ele requer analisadores de ETW USB. Os analisadores de USB ETW são arquivos de texto, escritos em NPL (Linguagem de Analisador de Monitor de Rede), que descrevem a estrutura de rastreamentos de eventos de USB ETW. Os analisadores também definem colunas e filtros específicos de USB. Esses analisadores tornam o Netmon a melhor ferramenta para analisar rastreamentos de ETW USB.
Usando o Xperf com o ETW USB Este tópico descreve como usar o Xperf com o 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.