Vue d’ensemble du développement de pilotes clients Windows pour les périphériques USB

Cet article décrit la prise en charge du bus série universel (USB) dans le système d’exploitation Windows, afin que vous puissiez développer des pilotes de périphériques USB interopérables avec Windows.

Les périphériques USB sont des périphériques, tels que des souris et des claviers, qui sont connectés à un ordinateur via un seul port. Un pilote client USB est le logiciel installé sur l’ordinateur qui communique avec le matériel pour que le périphérique fonctionne. Si l’appareil appartient à une classe de périphérique prise en charge par Microsoft, Windows charge l’un des pilotes USB fournis par Microsoft (pilotes de classe in-box) pour l’appareil. Sinon, un pilote client personnalisé doit être fourni par le fabricant du matériel ou un fournisseur tiers. L’utilisateur installe le pilote client pour l’appareil lorsque l’appareil est détecté pour la première fois par Windows. Une fois l’installation réussie, Windows charge le pilote client chaque fois que l’appareil est attaché et le décharge lorsque l’appareil est détaché de l’ordinateur hôte.

Vous pouvez développer un pilote client personnalisé pour un périphérique USB à l’aide de Windows Driver Frameworks (WDF) ou du modèle de pilote Windows (WDM). Au lieu de communiquer directement avec le matériel, la plupart des pilotes clients envoient leurs requêtes à la pile de pilotes USB fournie par Microsoft qui effectue des appels de fonction de couche d’abstraction matérielle (HAL) pour envoyer la demande du pilote client au matériel. Les rubriques de cette section décrivent les demandes classiques qu’un pilote client peut envoyer et les interfaces de pilote de périphérique (DDIs) que le pilote client doit appeler pour créer ces demandes.

Développeurs concernés

Un pilote client pour un périphérique USB est un pilote WDF ou WDM qui communique avec le périphérique via des DDIs exposées par la pile de pilotes USB. Cette section est destinée aux programmeurs C/C++ qui connaissent WDM. Avant d’utiliser cette section, vous devez comprendre le développement de pilote de base. Pour plus d’informations, consultez Prise en main avec les pilotes Windows. Pour les pilotes WDF, le pilote client peut utiliser des interfaces KMDF ( Kernel-Mode Driver Framework ) ou UMDF ( User-Mode Driver Framework ) conçues spécifiquement pour fonctionner avec des cibles USB. Pour plus d’informations sur les interfaces spécifiques à USB, consultez Référence USB WDF et Interfaces cibles d’E/S USB UMDF.

Outils de développement

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.

Informations de référence sur la programmation USB

Fournit des spécifications pour les demandes d’E/S, les routines de prise en charge, les structures et les interfaces utilisées par les pilotes clients USB. Ces routines et structures de données associées sont définies dans les en-têtes WDK.

Exemples de pilotes USB

Utilisez ces exemples pour bien démarrer avec la programmation du pilote client USB.

Vous pouvez télécharger les spécifications USB officielles à partir du site web de la bibliothèque de documents Universal Serial Bus . Ce site web contient des liens vers diverses révisions des spécifications du bus série universel.

Sections de documentation

  • Prise en main du développement de pilotes clients USB
    Vous présente le développement de pilotes USB. Fournit des informations sur le choix du modèle le plus approprié pour fournir un pilote USB pour votre appareil. Écrivez, générez et installez vos premiers pilotes USB squelettes en mode utilisateur et en mode noyau à l’aide des modèles USB inclus dans Microsoft Visual Studio.

  • Pilotes USB côté hôte dans Windows
    Fournit une vue d’ensemble de l’architecture de la pile de pilotes USB.

  • À propos des demandes de blocs USB (URB)
    Découvrez comment un pilote client crée une structure de données de longueur variable appelée bloc de requête USB (URB) pour envoyer des demandes à la pile de pilotes USB.

  • Descripteurs USB
    Découvrez comment un pilote client crée une structure de données de longueur variable appelée bloc de requête USB (URB) pour envoyer des demandes à la pile de pilotes USB.

  • Sélection d’une configuration USB dans les pilotes USB
    La configuration de l’appareil fait référence aux tâches effectuées par le pilote client pour sélectionner une configuration USB et une autre interface dans chaque interface. La section présente les appels de méthode requis pour sélectionner une configuration USB.

  • Envoi de transferts de données USB dans les pilotes clients USB
    Décrit les canaux USB, les URB pour les demandes d’E/S et la façon dont un pilote client peut utiliser les interfaces de pilote de périphérique (DDIs) pour transférer des données vers et depuis un périphérique USB.

  • Implémentation de la gestion de l’alimentation dans les pilotes clients USB
    Utilisez les capacités de gestion de l’alimentation des périphériques USB conformes à la spécification USB (Universal Serial Bus) qui disposent d’un ensemble riche et complexe de fonctionnalités de gestion de l’alimentation.