Vue d’ensemble du développement de pilotes Windows pour les contrôleurs de fonction USB

Cet article décrit la prise en charge dans le système d’exploitation Windows pour le développement d’un pilote de contrôleur de fonction USB (Universal Serial Bus) qui communique avec l’extension de contrôleur de fonction USB (UFX) fournie par Microsoft.

Outils de développement et fichiers binaires fournis par Microsoft

Le Kit de pilotes Windows (WDK) contient des ressources requises pour le développement de pilotes, telles que des en-têtes, des bibliothèques, des outils et des exemples.

Télécharger des kits et des outils pour Windows

Windows fournit des pilotes de contrôleur de fonction USB de boîte de réception tels que UfxSynopsys.sys pour le matériel de contrôleur de Synopsys IP. Elles nécessitent généralement des modifications et une validation au niveau de la plateforme qui sont généralement effectuées par des partenaires matériels ou des fabricants OEM lors de l’affichage d’une plateforme. Ce processus d’affichage peut inclure l’intégration à ACPI pour notifier les pilotes système des événements d’attachement/de détachement USB, et l’exécution d’une validation supplémentaire à l’aide de tests HLK fournis par Microsoft. Pour écrire votre propre pilote de contrôleur, vous avez besoin des éléments suivants :

  • UFX (Ufx01000.sys) chargé en tant que FDO. Ce pilote est inclus dans Windows.
  • Lien vers la bibliothèque stub (Ufx01000.lib). La bibliothèque stub se trouve dans le WDK. La bibliothèque traduit les appels effectués par le pilote du contrôleur de fonction et les transmet à UFX.
  • Incluez Ufxclient.h fourni dans le WDK.

Pour envoyer des demandes à partir du mode utilisateur, vous avez besoin des éléments suivants :

  • GenericUSBFn.sys chargé en tant que pilote de classe de fonction USB. Ce pilote est inclus dans Windows.
  • Incluez Genericusbfnioctl.h fourni dans le WDK.

Pour envoyer des requêtes à partir de votre pilote de classe USB, vous avez besoin des éléments suivants :

  • UFX (Ufx01000.sys) chargé en tant que FDO. Ce pilote est inclus dans Windows.
  • Incluez Usbfnioctl.h fourni dans le WDK.

Pour écrire un pilote de filtre qui gère la charge via des chargeurs propriétaires, vous avez besoin des éléments suivants :

  • UfxChipidea.sys ou Ufxsynopsys.sys chargé en tant que pilote client sur UFX.
  • Incluez Ufxproprietarycharger.h fourni dans wdK.

Architecture d’UFX

Familiarisez-vous avec la pile de pilotes USB fournie par Microsoft :

Pilotes côté périphérique USB dans Windows

Familiarisez-vous avec les objets et les handles UFX

UFX étend la fonctionnalité d’objet WDF pour définir ses propres objets UCX spécifiques à USB. Pour plus d’informations sur les objets WDF, consultez Présentation des objets framework.

Pour les demandes de mise en file d’attente, UFX utilise des objets spécifiques à USB. Pour plus d’informations, consultez objets et descripteurs UFX utilisés par un pilote client de fonction USB.

Écriture d’un pilote client de contrôleur de fonction

Comprendre le comportement d’UFX, comment il interagit avec le pilote client et les fonctionnalités que le pilote client est censé implémenter.

Tâches pour un pilote client de contrôleur de fonction

Sections de référence de programmation

Référence du pilote de classe de fonction USB vers la programmation UFX

Informations de référence sur la programmation du pilote client du contrôleur de fonction USB

Pilote de filtre USB pour la prise en charge des chargeurs propriétaires