Primeiras etapas para o desenvolvimento de drivers cliente USB
Esta seção apresenta os conceitos e as ferramentas de desenvolvimento de drivers USB. A seção se aplica a desenvolvedores novos no desenvolvimento de drivers que desejam implementar um driver para um dispositivo USB para o qual a Microsoft não fornece um driver nativo. Esses drivers são chamados de driver cliente USB nesta documentação. Os tópicos desta seção descrevem conceitos de USB de alto nível e fornecem instruções passo a passo sobre como executar tarefas comuns de um driver cliente USB. Para obter informações detalhadas sobre esses conceitos, consulte as especificações USB na Documentação sobre USB.
Os desenvolvedores de drivers devem ter experiência em codificação na linguagem de programação C++ e entender os conceitos de ponteiros de função, funções de retorno de chamada e manipuladores de eventos. Se estiver criando um driver com base na estrutura de driver de usuário-modo, o desenvolvedor deverá estar familiarizado com C++ e COM.
Caminho de aprendizado para desenvolvedores de drivers cliente USB
Consulte a Especificação USB 3.2.
- Saiba mais sobre a especificação do setor e os diferentes componentes (dispositivo, controlador de host e hub) da arquitetura. É importante entender o modelo de fluxo de dados, como o host e o dispositivo se comunicam entre si e o formato das solicitações que o dispositivo espera.
Obtenha um dispositivo USB de teste.
Tenha um dispositivo USB e sua especificação de hardware. A especificação descreve os recursos do dispositivo e os comandos do fornecedor suportados. Use a especificação para determinar a funcionalidade do driver de dispositivo e as decisões de design relacionadas.
Tenha o Kit de desenvolvimento FX2 de USB OSR caso não tenha experiência no desenvolvimento de drivers USB. O kit é o mais adequado para estudar amostras USB incluídas neste conjunto de documentação.
Tenha um dispositivo MUTT (Microsoft USB Test Tool). O hardware MUTT pode ser adquirido na JJG Technologies. O dispositivo não tem o firmware instalado. Para instalar o firmware, baixe o pacote de software MUTT. Para obter mais informações, consulte a documentação incluída com o pacote.
Estude o layout do dispositivo USB e os descritores de USB relacionados.
- Descreva os recursos do dispositivo lendo o descritor de configuração, os descritores de interface para cada configuração alternativa suportada e seus descritores de ponto de extremidade. Usando o USBView, o desenvolvedor pode procurar todos os controladores USB e os dispositivos USB conectados a eles, além de inspecionar a configuração do dispositivo.
Escolha um modelo de driver desenvolvendo um driver client USB
- Determine se o driver deve ser um driver personalizado ou usar um dos drivers fornecidos pela Microsoft com base no design do dispositivo de destino. Escolha o melhor modelo de driver e descreva os recursos suportados por cada modelo.
Analise a pilha de drivers USB fornecida pela Microsoft e os conceitos de desenvolvimento de drivers.
- Drivers USB do lado do host no Windows.
- Conceitos para todos os desenvolvedores de drivers.
- Conceitos para todos os desenvolvedores de USB.
- Nós de dispositivo e pilhas de dispositivos.
- Como desenvolver drivers com o Windows Driver Foundation escrito por Penny Orwick e Guy Smith. Para obter mais informações, consulte Desenvolvendo drivers com WDF.
- Exemplos de drivers USB.
- Entenda os fundamentos de como os drivers funcionam nos sistemas operacionais Windows. Conhecer os fundamentos ajudará a tomar decisões de design apropriadas e agilizar o processo de desenvolvimento.
- Diferencie entre modelos de arquitetura de driver de modo de usuário e modo kernel.
- Entenda o carregamento do driver e como o Windows organiza dispositivos Plug and Play (PnP) em uma árvore de dispositivos e nós de dispositivo. O desenvolvedor também deve entender como o gerenciador PnP cria pilhas de dispositivos e onde o driver e seus objetos de dispositivo são colocados na pilha de dispositivos.
Preparar o ambiente de desenvolvimento e depuração.
- Instale o WDK (Windows Driver Kit) mais recente.
- Instale o Microsoft Visual Studio.
- Prepare-se para a depuração.
- Verifique se os cabeçalhos e as bibliotecas exigidos por um driver cliente USB estão disponíveis.
- Se estiver escrevendo um driver de modo kernel depurando em computadores host e de destino por meio de uma rede Ethernet, o cabo 1394, o cabo de depuração USB 2.0 ou 3.0 ou um cabo de modem nulo deverão ser configurados.
- Se estiver criando um driver de modo de usuário, os depuradores de modo de usuário estarão disponíveis no ambiente do Microsoft Visual Studio. O desenvolvedor deve estar familiarizado com como anexar a um processo ou iniciar um processo sob o depurador.
Escreva seu primeiro driver.
- Como escrever seu primeiro driver de cliente USB (KMDF).
- Como escrever seu primeiro driver de cliente USB (UMDF).
- Escreva, compile e instale seu primeiro driver cliente USB usando os modelos USB incluídos no Visual Studio 2012. O desenvolvedor deve ser capaz de descrever o driver da estrutura, o dispositivo e os objetos de fila e entender como a estrutura se comunica com o driver.
Estenda o driver enviando uma solicitação de transferência de controle USB.
- Envie solicitações de controle padrão e comandos do fornecedor para seu dispositivo. Para obter mais informações, consulte Como enviar uma transferência de controle USB.
Estenda seu driver para usar objetos de destino de E/S USB WDF para executar transferências de dados USB.
- Estenda seu driver para executar tarefas comuns, conforme descrito em Tarefas comuns para drivers cliente USB.
Recursos da comunidade para USB
Blog da equipe principal de USB do Microsoft Windows
Confira os posts escritos pela equipe de USB da Microsoft. 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 drivers cliente USB e designers de hardware USB entenderem a implementação da pilha de drivers, resolver problemas comuns e explicar como usar ferramentas para coletar rastreamentos e arquivos de log.
-
Lista de discussão gerenciada pelo OSR online para desenvolvedores de driver de modo kernel.
Centro de Desenvolvimento do Windows para Desenvolvimento de Hardware
Windows Driver Kit para garantir que o produto seja confiável e compatível com o Windows por meio do HLK (Hardware Lab Kit) do Windows, saiba mais sobre os exemplos de driver do Windows.