Visão geral do desenvolvimento de drivers de cliente windows para dispositivos USB

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

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

Você pode desenvolver um driver de cliente personalizado para um dispositivo USB usando o WDF ( Windows Driver Frameworks ) ou o WDM ( Modelo de Driver do Windows ). Em vez de se comunicar diretamente com o hardware, a maioria dos drivers 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 cliente para o hardware. Os tópicos nesta seção descrevem as solicitações típicas que um driver cliente pode enviar e as DDIs (interfaces de driver do dispositivo) que o driver cliente deve chamar para criar essas solicitações.

Público de desenvolvedores

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

Ferramentas de desenvolvimento

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

Referência de programação 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 driver USB

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

Você pode baixar as especificações usb oficiais do 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 do driver USB. Fornece informações sobre como escolher o modelo mais apropriado para fornecer um driver USB para seu dispositivo. Escreva, compile e instale seus primeiros drivers USB no modo de usuário e kernel usando os modelos USB incluídos no Microsoft Visual Studio.

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

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

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

  • Selecionando uma configuração USB em drivers USB
    A configuração do dispositivo refere-se às tarefas que o driver 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.

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

  • Implementando o gerenciamento de energia em drivers de cliente USB
    Use as habilidades de gerenciamento de energia de dispositivos USB que estão em conformidade com a especificação do Barramento Serial Universal (USB) têm um conjunto avançado e complexo de recursos de gerenciamento de energia.