Visão geral do desenvolvimento de drivers do Windows para controladores de função USB

Este artigo descreve o suporte no sistema operacional Windows para desenvolver um driver de controlador de função USB (Barramento Serial Universal) que se comunica com a extensão do controlador de função USB (UFX) fornecida pela Microsoft.

Ferramentas de desenvolvimento e binários fornecidos pela Microsoft

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

Baixar kits e ferramentas para Windows

O Windows fornece drivers de controlador de função USB de caixa de entrada, como UfxSynopsys.sys para o hardware do controlador do IP do Synopsys. Eles geralmente exigem alterações no nível da plataforma e validação que normalmente são executadas por parceiros de hardware ou OEMs ao criar uma plataforma. Esse processo de apresentação pode incluir a integração com a ACPI para notificar os drivers do sistema de eventos de anexação/desanexação USB e executar validação adicional usando testes HLK fornecidos pela Microsoft. Para escrever seu próprio driver de controlador, você precisa:

  • UFX (Ufx01000.sys) carregado como o FDO. Esse driver está incluído no Windows.
  • Link para a biblioteca stub (Ufx01000.lib). A biblioteca stub está no WDK. A biblioteca converte chamadas feitas pelo driver do controlador de funções e as passa para a UFX.
  • Inclua Ufxclient.h fornecido no WDK.

Para enviar solicitações do modo de usuário, você precisa:

  • GenericUSBFn.sys carregado como o driver de classe de função USB. Esse driver está incluído no Windows.
  • Inclua Genericusbfnioctl.h fornecido no WDK.

Para enviar solicitações do driver de classe USB, você precisa:

  • UFX (Ufx01000.sys) carregado como o FDO. Esse driver está incluído no Windows.
  • Inclua Usbfnioctl.h fornecido no WDK.

Para escrever um driver de filtro que lida com o carregamento por meio de carregadores proprietários, você precisa:

  • UfxChipidea.sys ou Ufxsynopsys.sys carregado como o driver cliente para a UFX.
  • Inclua Ufxproprietarycharger.h fornecido no WDK.

Arquitetura do UFX

Familiarize-se com a pilha de driver USB fornecida pela Microsoft:

Drivers do lado do dispositivo USB no Windows

Familiarize-se com objetos e identificadores UFX

O UFX estende a funcionalidade do objeto WDF para definir seus próprios objetos UCX específicos de USB. Para obter mais detalhes sobre objetos WDF, consulte Introdução aos objetos framework.

Para solicitações de enfileiramento, o UFX usa objetos específicos de USB. Para obter mais informações, objetos e identificadores UFX usados por um driver de cliente de função USB.

Gravando um driver de cliente do controlador de funções

Entenda o comportamento do UFX, como ele interage com o driver do cliente e os recursos que o driver cliente deve implementar.

Tarefas para um driver de cliente do controlador de funções

Seções de referência de programação

Referência de programação do driver de classe de função USB para UFX

Referência de programação do driver de cliente do controlador de função USB

Driver de filtro USB para dar suporte a carregadores proprietários