Visão geral de como desenvolver drivers de cliente Windows para dispositivos USB

Este artigo descreve o suporte ao USB (Barramento Serial Universal) no sistema operacional Windows, para que você possa desenvolver drivers de dispositivo USB interoperáveis com o Windows.

Dispositivos USB são periféricos, como por exemplo, dispositivos de mouse e teclados, que são conectados a um computador por meio de uma única porta. Um driver do cliente USB é o software instalado no computador que se comunica com o hardware para ativar o funcionamento do dispositivo. Se o dispositivo pertencer a uma classe de dispositivo compatível com a Microsoft, o Windows carregará um dos drivers USB fornecidos pela Microsoft (drivers nativos de classe) para o dispositivo. Caso contrário, um driver do cliente personalizado deve ser fornecido pelo fabricante do hardware ou por um fornecedor terceirizado. O usuário instala o driver do cliente para o dispositivo quando o dispositivo é detectado pela primeira vez pelo Windows. Após a instalação bem-sucedida, o Windows carrega o driver do cliente sempre que o dispositivo é anexado e o descarrega quando o dispositivo é desacoplado do computador host.

Você pode desenvolver um driver do cliente personalizado para um dispositivo USB usando o WDF (Windows Driver Frameworks) ou o WDM (Windows Driver Model). Em vez de se comunicar diretamente com o hardware, a maioria dos drivers do cliente envia suas solicitações para a pilha de driver USB fornecida pela Microsoft que faz chamadas de função HAL (camada de abstração de hardware) para enviar a solicitação do driver do cliente ao hardware. Os tópicos nesta seção descrevem as solicitações comuns que um driver do cliente pode enviar e as DDIs (interfaces de driver de dispositivo) que o driver do cliente deve chamar para criar essas solicitações.

Público de desenvolvedores

Um driver do cliente para um dispositivo USB é um driver WDF ou WDM que se comunica com o dispositivo por meio de DDIs expostas pela pilha de driver USB. Esta seção destina-se ao uso por programadores C/C++ que estão familiarizados com o WDM. Antes de usar esta seção, você deve se familiarizar com o desenvolvimento básico do driver. Para obter mais informações, consulte Introdução aos drivers no Windows. Para drivers WDF, o driver do cliente pode usar interfaces de KMDF (Kernel-Mode Driver Framework) ou de UMDF (User-Mode Driver Framework) projetadas especificamente para funcionar com destinos USB. Para obter mais informações sobre as interfaces específicas do USB, consulte Referência USB do WDF e Interfaces de destino de E/S USB do UMDF.

Ferramentas de desenvolvimento

O WDK (Kit de Driver do Windows) contém recursos necessários para o desenvolvimento de driver, como cabeçalhos, bibliotecas, ferramentas e exemplos.

Referência da programação do USB

Fornece especificações para solicitações de E/S, rotinas de suporte, estruturas e interfaces usadas por drivers de cliente USB. Essas rotinas e estruturas de dados relacionadas são definidas nos cabeçalhos do WDK.

Exemplos de drivers USB

Use esses exemplos para começar a programar o driver do cliente USB.

Você pode baixar as especificações oficiais do USB no site da Biblioteca de documentos do Barramento Serial Universal. Este site contém links para várias revisões das especificações do Barramento Serial Universal.

Seções de documentação

  • Introdução ao desenvolvimento do driver de cliente USB
    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. Escreva, compile e instale seus primeiros drivers USB de modo de usuário esqueleto e modo kernel usando os modelos USB incluídos no Microsoft Visual Studio.

  • Drivers USB do lado do host no Windows
    Fornece uma visão geral da arquitetura da pilha de driver USB.

  • Sobre URBs (Bloco de Solicitações USB)
    Saiba como um driver do cliente cria uma estrutura de dados de comprimento variável chamada URB (Bloco de Solicitação USB) para enviar solicitações à pilha de driver USB.

  • Descritores de USB
    Saiba como um driver do cliente cria uma estrutura de dados de comprimento variável chamada URB (Bloco de Solicitação USB) para enviar solicitações à pilha de driver USB.

  • Selecionar uma configuração USB em drivers USB
    A configuração do dispositivo refere-se às tarefas que o driver do cliente executa para selecionar uma configuração USB e uma interface alternativa em cada interface. A seção mostra as chamadas de método necessárias para selecionar uma configuração USB.

  • Enviar transferências de dados USB em drivers de cliente USB
    Descreve pipes USB, URBs para solicitações de E/S e como um driver do cliente pode usar as DDIs (interfaces de driver de dispositivo) para transferir dados de e para um dispositivo USB.

  • Implementar o gerenciamento de energia em drivers de cliente USB
    Use os recursos de gerenciamento de energia de dispositivos USB que estão em conformidade com a especificação USB (Barramento Serial Universal) com um conjunto rico e complexo de recursos de gerenciamento de energia.