Barramento Serial Universal (USB)
O Universal Serial Bus (USB) fornece uma interface serial Plug and Play expansível que garante uma conexão padrão e de baixo custo para dispositivos periféricos. Os dispositivos USB incluem teclados, mouses, joysticks, impressoras, scanners, dispositivos de armazenamento, modems, câmeras de videoconferência e muito mais.
O USB-IF é um Grupo de Interesse Especial (SIGs) que mantém a Especificação Oficial USB, especificações de teste e ferramentas.
Os sistemas operacionais Windows incluem suporte nativo para controladores de host USB, hubs e dispositivos e sistemas que estão em conformidade com a especificação oficial do USB. O Windows também fornece interfaces de programação que você pode usar para desenvolver drivers de dispositivo e aplicativos que se comunicam com um dispositivo USB.
USB no Windows
Suporte do Windows para conectores USB Type-C: para OEMs que desejam criar um sistema Windows com conectores USB Type-C.
Universal Serial Bus 4 (USB4™): fornece OEMs, IHVs e fornecedores de silício que criam sistemas Windows que dão suporte a USB4 informações sobre o gerenciador de conexões USB4, facilitando a depuração e os procedimentos de ativação.
Perguntas frequentes sobre USB: perguntas frequentes de desenvolvedores de driver sobre a pilha USB e os recursos compatíveis com USB.
Descritores do sistema operacional da Microsoft para dispositivos USB: O Windows define os descritores do sistema operacional MS que permitem uma melhor enumeração quando conectado ao sistema que executa o sistema operacional Windows.
Ferramentas de desenvolvimento
Exemplos de USB
Criar um driver ou aplicativo USB para Windows
Apresenta o desenvolvimento de drivers USB. Fornece informações sobre como escolher o modelo mais apropriado para fornecer um driver USB para o seu dispositivo.
Escrever um driver de cliente USB (KMDF, UMDF)
Esta seção inclui tutoriais sobre como escrever seus primeiros drivers USB no modo de usuário e no modo kernel usando os modelos USB incluídos no Microsoft Visual Studio.
- Introdução ao desenvolvimento do driver de cliente USB
- Referência de programação do driver de dispositivo USB
Escrever um driver de controlador de host USB
Se você estiver desenvolvendo um controlador de host xHCI que não esteja em conformidade com a especificação ou desenvolvendo um hardware não xHCI personalizado (como um controlador de host virtual), poderá escrever um driver de controlador de host que se comunique com o UCX. Por exemplo, considere um dock sem fio que dá suporte a dispositivos USB. O PC se comunica com dispositivos USB por meio do dock sem fio usando USB sobre TCP como transporte.
Desenvolver drivers do Windows para controladores de host USB
Referência do controlador de host USB (UCX)
Escrever um driver de controlador de função para um dispositivo USB
Você pode desenvolver um driver de controlador que lida com todas as transferências de dados USB e comandos enviados pelo host para o dispositivo. Esse driver se comunica com a UFX (extensão do controlador de função USB) fornecida pela Microsoft.
Desenvolvendo drivers do Windows para controladores de função USB
Referência de extensão de classe de função USB (UFX)
Escrever um driver de conector USB Tipo C
O Windows 10 apresenta suporte para o novo conector USB: USB Type-C. Você pode escrever um driver para o conector que se comunica com o módulo de extensão de classe fornecido pela Microsoft: UcmCx para lidar com cenários relacionados a conectores Type-C, como quais portas dão suporte a Type-C, quais portas dão suporte ao fornecimento de energia.
Desenvolvendo drivers do Windows para conectores USB Type-C
Referência de extensão de classe do gerenciador de conectores USB (UcmCx)
Escrever um driver de controlador de função dupla USB
Os controladores USB Dual Role agora são suportados no Windows 10. O Windows inclui drivers de cliente in-box para controladores ChipIdea e Synopsis. Para outros controladores, a Microsoft fornece um conjunto de interfaces de programação que permitem que a extensão de classe de função dupla (UrsCx) e seu driver cliente se comuniquem entre si para lidar com a funcionalidade de alternância de função de um controlador de função dupla.
Para obter mais informações sobre esse recurso, consulte:
Arquitetura de pilha de driver de função dupla USB
Referência de programação do driver do controlador de função dupla USB
Escrever um driver USB para dispositivos emulados
Você pode desenvolver um driver de controlador de host USB (Universal Serial Bus) emulado e um dispositivo USB virtual conectado. Ambos os componentes são combinados em um único driver KMDF que se comunica com a UdeCx (extensão de classe de emulação de dispositivo USB) fornecida pela Microsoft.
Desenvolvendo drivers do Windows para dispositivos USB emulados (UDE)
Referência de programação do driver do controlador de host USB emulado
Extensão WDF para desenvolvimento de drivers USB
- Referência de extensão de classe do gerenciador de conectores USB (UcmCx)
- Referência do controlador de host USB (UCX)
- Referência de extensão de classe de função USB (UFX)
Escrever um aplicativo UWP
Fale com dispositivos USB, do início ao fim: fornece instruções passo a passo sobre como implementar recursos USB em um aplicativo UWP. Para escrever esse aplicativo para um dispositivo USB, você precisa do Visual Studio e do SDK (Software Development Kit) do Microsoft Windows.
Windows.Devices.Usb: referência de programação de namespace UWP.
Escrever um aplicativo da área de trabalho do Windows
Escrever um aplicativo WinUSB: descreve como um aplicativo pode chamar funções WinUSB para se comunicar com um dispositivo USB.
Funções do WinUSB
Cenários comuns de programação: lista de tarefas comuns que um driver ou um aplicativo executa para se comunicar com um dispositivo USB. Obtenha informações rápidas sobre as interfaces de programação necessárias para cada tarefa.
Testando dispositivos USB com o Windows
Visão geral dos dispositivos MUTT (Microsoft USB Test Tool)
Obtenha informações sobre as ferramentas que você pode usar para testar seu hardware ou software USB, capturar rastreamentos de operações e outros eventos do sistema e observar como a pilha de driver USB responde a uma solicitação enviada por um driver cliente ou um aplicativo.
Leia uma visão geral dos testes no Kit de Certificação de Hardware que permitem que fornecedores de hardware e fabricantes de dispositivos preparem seus dispositivos USB e controladores de host para o envio da Certificação de Hardware do Windows.
Barramento Serial Universal 4 (USB4™)
Universal Serial Bus 4 (USB4™): fornece OEMs, IHVs e fornecedores de silício que criam sistemas Windows que dão suporte a USB4 informações sobre o gerenciador de conexões USB4, facilitando a depuração e os procedimentos de ativação.
Introdução ao gerenciador de conexões USB4 no Windows: o gerenciador de conexões em um domínio USB4 é responsável pela enumeração, configuração e gerenciamento do domínio USB4.
Detalhes do design do Universal Serial Bus 4 (USB4™) e requisitos gerais: Requisitos de design e experiência do usuário de alto nível.
Teste necessário do USB4™ (Universal Serial Bus 4): os requisitos do HLK não foram projetados para fornecer cobertura completa de teste funcional de ponta a ponta para o conjunto de recursos USB4. Recomendamos que você execute uma validação completa de cenários de uso importantes.
Outros recursos para USB
Especificação oficial do USB: fornece detalhes técnicos completos para o protocolo USB.
Blog da equipe do Microsoft Windows USB Core: confira as postagens escritas pela equipe do Microsoft USB. O blog se concentra na pilha de drivers USB do Windows que funciona com vários controladores de host USB e hubs USB encontrados no Windows PC. Um recurso útil para desenvolvedores de driver cliente USB e designers de hardware USB entenderem a implementação da pilha de driver, resolverem problemas comuns e explicarem como usar ferramentas para coletar rastreamentos e arquivos de log.
Listas Online do OSR - ntdev: lista de discussão gerenciada pelo OSR Online para desenvolvedores de driver no modo kernel.
Centro de Desenvolvimento de Hardware do Windows: recursos diversos com base em perguntas frequentes de desenvolvedores que são novos no desenvolvimento de dispositivos USB e drivers que funcionam com sistemas operacionais Windows.
Hardware USB para aprendizado
Dispositivos MUTT: Os dispositivos MUTT e SuperMUTT e o pacote de software que os acompanha são integrados ao conjunto HCK de testes USB. Eles fornecem testes automatizados que podem ser usados durante o ciclo de desenvolvimento de controladores, dispositivos e sistemas USB, especialmente testes de estresse.
Kit de aprendizagem OSR USB FX2: Se você é novo no desenvolvimento de drivers USB. O kit é o mais adequado para estudar amostras USB incluídas neste conjunto de documentação. Você pode obter o kit de aprendizagem na OSR Online Store.
Saiba mais sobre os drivers USB fornecidos pela Microsoft
Drivers do lado do dispositivo USB no Windows: descreve a arquitetura da pilha de funções USB.
Drivers do lado do host USB no Windows: fornece uma visão geral da arquitetura de pilha de driver USB (Universal Serial Bus). A Microsoft fornece uma pilha principal de drivers que interoperam com dispositivos conectados a controladores EHCI e xHCI.
Drivers de classe de dispositivo USB-IF: lista os drivers fornecidos pela Microsoft para as classes de dispositivo USB com suporte. O Windows fornece drivers de classe de dispositivo in-box para muitas classes de dispositivo aprovadas por USB-IF, áudio, armazenamento em massa e assim por diante.
Driver de função genérica USB – WinUSB: WinUSB é um driver genérico para dispositivos USB incluído em todas as versões do Windows desde o Windows Vista. Windows fornece Winusb.sys que podem ser carregados como um driver de função para um dispositivo personalizado e uma função de um dispositivo composto.
Driver pai genérico USB para dispositivos compostos – Usbccgp: driver pai para dispositivos USB com várias funções. O Usbccgp cria PDOs (objetos de dispositivo físico) para cada uma dessas funções. Esses PDOs individuais gerenciam seus respectivos drivers de função USB, que podem ser o driver Winusb.sys ou um driver de classe de dispositivo USB.