Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico fornece informações para programadores de controladores de clientes sobre os recursos de rastreamento e registo para USB (Universal Serial Bus). Esta informação é fornecida para benefício daqueles que desenvolvem e testam 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 de USB.
Para interpretar os rastreamentos de eventos, também deve entender os drivers da parte do host do Windows USB no Windows, as Especificações oficiais do USB 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 aplicações em modo de utilizador e controladores de dispositivos em modo kernel. Além disso, o ETW oferece a capacidade de habilitar e desabilitar o registro em log dinamicamente, 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 usa buffers por processador que são gravados no 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 que o Windows oferece. O ETW também foi abstraído na tecnologia de rastreamento de software do pré-processador do Windows (WPP), que fornece um conjunto de macros fáceis de usar para rastrear mensagens estilo printf para depuração durante o desenvolvimento.
O ETW foi significativamente atualizado para o Windows Vista e Windows 7. Um dos novos recursos mais significativos é o modelo unificado de provedor de eventos e 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 registo ETW
USB é um dos meios mais prevalentes de conectar uma variedade cada vez maior de dispositivos periféricos para 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 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 corrigir problemas de dispositivos USB sem acesso direto ao sistema e/ou aos dispositivos, ou, em alguns casos, a um relatório de falha do sistema. Mesmo com acesso total ao hardware e um crash dump, 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 para USB ETW
ETW fornece um sistema de registo de eventos que a pilha de drivers USB pode explorar para ajudar na investigação, diagnóstico e depuração de problemas relacionados com o USB. O registo de eventos ETW da pilha de controladores USB suporta a maioria ou mesmo todos os recursos de depuração fornecidos pelo mecanismo de registo informal existente na pilha de controladores USB, sem nenhuma das suas limitações. Isto traduz-se em facilidade na depuração de problemas relacionados com o USB, o que deverá proporcionar uma estrutura de drivers USB mais robusta a longo prazo.
Adicionámos o registo de eventos ETW aos controladores de anfitrião USB e ao controlador de hub USB. A camada de driver do controlador host USB inclui o driver da porta do controlador host (usbport.sys) e os drivers de miniporta (usbehci.sys, usbohci.syse usbuhci.sys). A camada do driver do hub USB consiste no driver do hub USB (usbhub.sys).
Eventos do hub USB
Enquanto a coleção de eventos USB estiver ativada, um provedor de eventos de hub USB relata a adição e a remoção de hubs USB, os eventos sumários dos dispositivos de todos os hubs e as alterações de estado 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 recolha de eventos USB está ativada, o fornecedor de eventos da porta USB relata as E/S dos drivers cliente, a abertura e o fecho de pontos de extremidade do dispositivo, assim como as transições de estado da miniporta, como o início e a paragem da miniporta. E/S registada inclui solicitações para o estado das portas USB físicas. Transições de estado em portas USB físicas são um dos principais motores de atividade no núcleo da pilha de drivers USB.
Windows fornece uma pilha de controladores USB para suportar dispositivos USB 3.0. A pilha de drivers 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 host USB 3.0. A nova pilha de drivers suporta dispositivos SuperSpeed, alta velocidade, velocidade máxima e baixa velocidade. Por meio de rastreamento de eventos, a pilha de drivers USB 3.0 fornece uma visão detalhada da atividade do controlador anfitrião e de todos os dispositivos a ele conectados.
Eventos do USB Hub3
Enquanto a recolha de eventos USB está ativa, o fornecedor de eventos USB Hub3 relata a adição e remoção de hubs USB, os eventos resumo dos dispositivos de todos os hubs, as mudanças no estado das portas e os estados de energia dos dispositivos e hubs USB. As alterações de status da 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 principais. 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 dispositivos. Com a palavra-chave StateMachine ativada, o Hub3 relata a atividade interna da máquina de estados para objetos de dispositivo de software, hub e porta, proporcionando uma visão mais aprofundada da lógica do driver.
Eventos USB UCX
Enquanto a recolha de eventos USB está ativa, o fornecedor de eventos UCX USB relata operações de E/S dos controladores de cliente, bem como a abertura e o fechamento dos pontos de extremidade dos dispositivos e dos seus fluxos de dados. Com a palavra-chave StateMachine habilitada, o UCX relata a atividade interna da máquina de estados para o controlador de anfitrião e objetos de terminal, proporcionando uma visibilidade mais profunda sobre a lógica do driver.
Eventos USB xHCI
Enquanto a recolha de eventos USB está ativada, o fornecedor de eventos USB xHCI reporta as propriedades dos controladores xHCI do sistema e detalhes de baixo nível da operação xHCI. xHCI relata solicitações de comando enviadas e concluídas pelo hardware xHCI, incluindo códigos de conclusão específicos do xHCI.
Nesta secção
| Tópico | Descrição |
|---|---|
| Como capturar um rastreio de eventos USB com Logman | Este tópico fornece informações sobre como usar a ferramenta Logman para capturar um rastreamento de eventos ETW 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 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. |
| Rastros ETW de 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 Network Monitor Parser Language (NPL), que descrevem a estrutura dos rastreamentos de eventos ETW USB. Os analisadores também definem colunas e filtros específicos do USB. Esses analisadores fazem do Netmon a melhor ferramenta para analisar traços USB ETW. |
| Usando Xperf com USB ETW | Este tópico descreve como usar o Xperf com o Netmon para analisar dados de rastreamento USB. |
| USB ETW e Gestão 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 PowerCfg do Windows. |