Partager via


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

Cet article décrit la prise en charge de l’Universal Serial Bus (USB) dans le système d’exploitation Windows, afin que vous puissiez développer des pilotes de périphériques USB compatibles avec Windows.

Les périphériques USB sont des périphériques externes, tels que des souris et des claviers, qui sont connectés à un ordinateur via un port unique. Un pilote client USB est le logiciel installé sur l’ordinateur qui communique avec le matériel pour faire fonctionner le périphérique. Si le périphérique appartient à une classe de périphériques prise en charge par Microsoft, Windows charge l’un des pilotes USB fournis par Microsoft (pilotes de classe intégrés) pour le périphérique. 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 le périphérique lorsque celui-ci est détecté pour la première fois par Windows. Après une installation réussie, Windows charge le pilote client chaque fois que le périphérique est connecté et décharge le pilote lorsque le périphérique est déconnecté de l’ordinateur hôte.

Vous pouvez développer un pilote client personnalisé pour un périphérique USB en utilisant le Windows Driver Frameworks (WDF) ou le Windows Driver Model (WDM). Au lieu de communiquer directement avec le matériel, la plupart des pilotes clients envoient leurs demandes à la pile de pilotes USB fournie par Microsoft, qui effectue des appels de fonction de la 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 typiques 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.

Public de développeurs

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

Outils de développement

Le Windows Driver Kit (WDK) contient les ressources nécessaires au développement de pilotes, telles que les en-têtes, les bibliothèques, les outils et les exemples.

Référence de programmation USB

Donne les spécifications pour les requêtes d’E/S, les routines de support, 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 du WDK.

Exemples de pilotes USB

Utilisez ces exemples pour commencer à programmer un pilote client USB.

Vous pouvez télécharger les spécifications officielles de l’USB depuis le site web de la Bibliothèque de documents Universal Serial Bus. Ce site contient des liens vers diverses révisions des spécifications de l’Universal Serial Bus.

Sections de documentation

  • Bien démarrer le 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 périphérique. Rédigez, compilez et installez vos premiers pilotes USB en mode utilisateur et en mode noyau en utilisant les modèles USB inclus dans Microsoft Visual Studio.

  • Pilotes côté hôte USB dans Windows
    Fournit un aperçu de l’architecture de la pile de pilotes USB.

  • À propos des requêtes de blocs USB (URBs)
    Apprenez comment un pilote client construit une structure de données à longueur variable appelée USB Request Block (URB) pour soumettre des requêtes à la pile de pilotes USB.

  • Descripteurs USB
    Apprenez comment un pilote client construit une structure de données à longueur variable appelée USB Request Block (URB) pour soumettre des requêtes à la pile de pilotes USB.

  • Sélection d’une configuration USB dans les pilotes USB
    La configuration de périphérique fait référence aux tâches que le pilote client effectue pour sélectionner une configuration USB et une interface alternative dans chaque interface. Cette section montre les appels de méthode nécessaires pour sélectionner une configuration USB.

  • Envoi de transferts de données USB dans les pilotes clients USB
    Décrit les canaux USB, les URBs pour les requêtes d’E/S, et comment 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 Universal Serial Bus (USB), qui disposent d’un ensemble riche et complexe de fonctionnalités de gestion de l’alimentation.