Compartilhar via


Introdução ao WinUSB para desenvolvedores

Como desenvolvedor de driver, entender o WinUSB (Windows USB) pode simplificar significativamente o processo de desenvolvimento, especialmente quando você trabalha com dispositivos USB. O WinUSB é um driver genérico incluído no Windows. Ele permite que você se comunique com dispositivos USB sem a necessidade de gravar um driver personalizado. Usar esse driver pode economizar tempo, reduzir a complexidade e garantir a compatibilidade em diferentes versões do Windows.

Principais benefícios do uso do WinUSB

  • Desenvolvimento simplificado

    • Facilidade de uso: o WinUSB abstrai grande parte da complexidade envolvida na comunicação USB, o que facilita a interação com dispositivos USB.
    • Nenhum driver personalizado é necessário: para muitos dispositivos USB, o WinUSB pode ser usado diretamente, o que elimina a necessidade de gravar e manter um driver personalizado.
  • Compatibilidade entre plataformas

    • Interface padronizada: o WinUSB fornece uma interface padronizada para comunicação USB, que pode ajudar a garantir a compatibilidade entre diferentes versões do Windows.
  • Tempo e eficiência de custo

    • Tempo de desenvolvimento reduzido: o uso do WinUSB pode reduzir significativamente o tempo necessário para desenvolver e testar um driver USB.
    • Custos de manutenção mais baixos: como a Microsoft mantém o WinUSB, você pode contar com ele sendo atualizado e compatível, o que reduz os custos de manutenção de longo prazo.
  • Acesso a recursos USB

    • Funcionalidade USB completa: o WinUSB dá suporte a uma ampla gama de recursos USB, incluindo transferências em massa, transferências de controle, transferências de interrupção e transferências isocronas.

O que você pode fazer com o WinUSB

  • Comunicação do dispositivo

    • Transferência de dados: enviar e receber dados de e para um dispositivo USB usando transferências em massa, controle, interrupção ou isócronas.
    • Solicitações de controle: enviar solicitações de controle para configurar o dispositivo ou recuperar informações.
  • Configuração do dispositivo

    • Configuração de configuração: selecione configurações, interfaces e configurações alternativas para configurar o dispositivo USB.
    • Gerenciamento de ponto de extremidade: gerenciar pontos de extremidade para transferência de dados.
  • Enumeração do dispositivo

    • Identificação do dispositivo: enumerar e identificar dispositivos USB conectados ao sistema.
    • Recuperação do descritor: recuperar descritores de dispositivo, descritores de configuração, descritores de interface e descritores de ponto de extremidade.
  • Aplicativos personalizados

    • Aplicativos em Modo Usuário: desenvolva aplicativos em modo usuário que se comunicam com dispositivos USB usando a API do WinUSB.
    • Atualizações de firmware: implementar mecanismos de atualização de firmware para dispositivos USB.
  • Teste e depuração

    • Prototipagem: crie rapidamente protótipos de comunicação de dispositivos USB para testar a funcionalidade do hardware.
    • Depuração: use o WinUSB para depurar problemas de comunicação entre o host e o dispositivo USB.

Componentes do WinUSB

O WinUSB inclui:

  • Um driver de modo kernel (winusb.sys)
  • Uma biblioteca de vínculo dinâmico (winusb.dll) no modo de usuário que expõe as funções WinUSB descritas em winusb.h. Você pode usar essas funções para gerenciar dispositivos USB com software no modo de usuário.

Por padrão, winusb.sys é instalado na pilha do modo kernel do dispositivo como um driver de filtro superior. Os aplicativos se comunicam com o driver de função do UMDF (User-Mode Driver Framework) do dispositivo para emitir solicitações de leitura, escrita ou controle de E/S do dispositivo. Nessa configuração, winusb.sys serve como Plug and Play da pilha de dispositivos e proprietário de energia. Você também pode instalar winusb.sys como driver de função para um dispositivo USB.

Introdução ao WinUSB

Esta seção inclui informações sobre:

  • Selecionar o driver correto para um dispositivo
  • Usar o WinUSB para se comunicar com dispositivos USB
  • Instalando o winusb.sys como o driver de função para um dispositivo USB

Ele também inclui exemplos de código detalhados que mostram como aplicativos e dispositivos USB se comunicam.

Observação

O WinUSB dá suporte a transferências isócronas a partir do Windows 8.