Universal Serial Bus (USB)

Le bus série universel (USB) fournit une interface série Plug-and-Play extensible qui garantit une connexion standard et peu coûteuse pour les périphériques. Les périphériques USB incluent des claviers, des souris, des joysticks, des imprimantes, des scanneurs, des périphériques de stockage, des modems, des caméras de visioconférence et bien plus encore.

L’USB-IF est un groupe d’intérêt spécial (SIG) qui gère la spécification, les spécifications de test et les outils officiels de l’USB.

Les systèmes d’exploitation Windows incluent la prise en charge native des contrôleurs hôtes USB, des hubs et des appareils et systèmes conformes à la spécification USB officielle. Windows fournit également des interfaces de programmation que vous pouvez utiliser pour développer des pilotes de périphérique et desapplications qui communiquent avec un périphérique USB.

ICÔNE USB pour les générateurs d’appareilsicône USB pour les développeurs de pilotes icôneUSB pour les développeurs d’applications icône decertification USB HCK

USB dans Windows

Outils de développement

Exemples USB

Créer un pilote ou une application USB pour Windows

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.

Écrire un pilote client USB (KMDF, UMDF)

Cette section comprend des tutoriels sur l’écriture de vos premiers pilotes USB en mode utilisateur et en mode noyau à l’aide des modèles USB inclus avec Microsoft Visual Studio.

Écrire un pilote de contrôleur hôte USB

Si vous développez un contrôleur hôte xHCI qui n’est pas conforme à la spécification ou si vous développez un matériel non xHCI personnalisé (tel qu’un contrôleur hôte virtuel), vous pouvez écrire un pilote de contrôleur hôte qui communique avec UCX. Par exemple, considérez une station d’accueil sans fil qui prend en charge les périphériques USB. Le PC communique avec les périphériques USB via la station d’accueil sans fil en utilisant USB sur TCP comme transport.

Écrire un pilote de contrôleur de fonction pour un périphérique USB

Vous pouvez développer un pilote de contrôleur qui gère tous les transferts de données USB et les commandes envoyés par l’hôte à l’appareil. Ce pilote communique avec l’extension de contrôleur de fonction USB (UFX) fournie par Microsoft.

Développement de pilotes Windows pour les contrôleurs de fonction USB

Informations de référence sur l’extension de classe de fonction USB (UFX)

Écrire un pilote de connecteur USB Type-C

Windows 10 prend en charge le nouveau connecteur USB : USB Type-C. Vous pouvez écrire un pilote pour le connecteur qui communique avec le module d’extension de classe fourni par Microsoft : UcmCx pour gérer les scénarios liés aux connecteurs de type C, tels que les ports qui prennent en charge le type C et les ports qui prennent en charge la distribution d’alimentation.

Développement de pilotes Windows pour les connecteurs USB Type-C

Informations de référence sur l’extension de classe du gestionnaire de connecteurs USB (UcmCx)

Écrire un pilote de contrôleur à double rôle USB

Les contrôleurs à double rôle USB sont désormais pris en charge dans Windows 10. Windows inclut des pilotes clients in-box pour les contrôleurs ChipIdea et Synopsis. Pour les autres contrôleurs, Microsoft fournit un ensemble d’interfaces de programmation qui permettent à l’extension de classe à double rôle (UrsCx) et à son pilote client de communiquer entre eux pour gérer la fonctionnalité de basculement de rôle d’un contrôleur à double rôle.

Pour plus d’informations sur cette fonctionnalité, consultez :

Architecture de pile de pilotes à double rôle USB

Informations de référence sur la programmation du pilote de contrôleur double rôle USB

Écrire un pilote USB pour les appareils émulés

Vous pouvez développer un pilote de contrôleur hôte USB (Universal Serial Bus) émulé et un périphérique USB virtuel connecté. Les deux composants sont combinés en un seul pilote KMDF qui communique avec l’extension de classe d’émulation de périphérique USB fournie par Microsoft (UdeCx).

Développement de pilotes Windows pour les périphériques USB émulés (UDE)

Informations de référence sur la programmation du pilote de contrôleur hôte USB émulé

Extension WDF pour le développement de pilotes USB

Écrire une application UWP

  • Parlez aux périphériques USB, du début à la fin : fournit des instructions pas à pas sur l’implémentation de fonctionnalités USB dans une application UWP. Pour écrire une telle application pour un appareil USB, vous avez besoin de Visual Studio et du Kit de développement logiciel (SDK) Microsoft Windows.

  • Windows.Devices.Usb : référence de programmation de l’espace de noms UWP.

Écrire une application de bureau Windows

  • Écrire une application WinUSB : décrit comment une application peut appeler WinUSB Functions pour communiquer avec un périphérique USB.

  • Fonctions WinUSB

  • Scénarios de programmation courants : liste des tâches courantes qu’un pilote ou une application effectue pour communiquer avec un périphérique USB. Obtenez des informations rapides sur les interfaces de programmation dont vous avez besoin pour chaque tâche.

Test de périphériques USB avec Windows

Vue d’ensemble des appareils MUTT (Microsoft USB Test Tool)

Obtenez des informations sur les outils que vous pouvez utiliser pour tester votre matériel ou vos logiciels USB, capturer des traces d’opérations et d’autres événements système, et observer comment la pile de pilotes USB répond à une demande envoyée par un pilote client ou une application.

Lisez une vue d’ensemble des tests dans le Kit de certification matérielle qui permet aux fournisseurs de matériel et aux fabricants d’appareils de préparer leurs périphériques USB et contrôleurs hôtes pour la soumission de certification matérielle Windows.

Universal Serial Bus 4 (USB4™)

Autres ressources pour USB

  • Spécification USB officielle : fournit des détails techniques complets pour le protocole USB.

  • Blog de l’équipe Microsoft Windows USB Core : Consultez les billets écrits par l’équipe Microsoft USB. Le blog se concentre sur la pile de pilotes USB Windows qui fonctionne avec différents contrôleurs hôtes USB et hubs USB trouvés dans un PC Windows. Une ressource utile pour les développeurs de pilotes de client USB et les concepteurs de matériel USB afin de comprendre l’implémentation de la pile de pilotes, de résoudre les problèmes courants et d’expliquer comment utiliser des outils pour collecter des traces et des fichiers journaux.

  • Listes OSR Online - ntdev : liste de discussion gérée par OSR Online pour les développeurs de pilotes en mode noyau.

  • Centre de développement matériel Windows : ressources diverses basées sur les questions fréquemment posées par les développeurs qui débutent dans le développement de périphériques et de pilotes USB qui fonctionnent avec les systèmes d’exploitation Windows.

Matériel USB pour l’apprentissage

  • Appareils MUTT : les appareils MUTT et SuperMUTT, ainsi que le package logiciel associé, sont intégrés à la suite de tests USB HCK. Ils fournissent des tests automatisés qui peuvent être utilisés pendant le cycle de développement des contrôleurs, appareils et systèmes USB, en particulier les tests de contrainte.

  • Kit d’apprentissage OSR USB FX2 : si vous débutez dans le développement de pilotes USB. Le kit est le plus approprié pour étudier les échantillons USB inclus dans cet ensemble de documentation. Vous pouvez obtenir le kit d’apprentissage à partir d’OSR Online Store.

En savoir plus sur les pilotes USB fournis par Microsoft

  • Pilotes côté périphérique USB dans Windows : décrit l’architecture de la pile de fonctions USB.

  • Pilotes côté hôte USB dans Windows : fournit une vue d’ensemble de l’architecture de pile de pilotes USB (Universal Serial Bus). Microsoft fournit une pile de pilotes qui interagissent avec des appareils connectés à des contrôleurs EHCI et xHCI.

  • Pilotes de classe de périphérique USB-IF : répertorie les pilotes fournis par Microsoft pour les classes de périphériques USB prises en charge. Windows fournit des pilotes de classe d’appareil en boîte pour de nombreuses classes d’appareils approuvées PAR USB-IF, l’audio, le stockage de masse, etc.

  • Pilote de fonction générique USB – WinUSB : WinUSB est un pilote générique pour les périphériques USB inclus avec toutes les versions de Windows depuis Windows Vista. Windows fournit des Winusb.sys qui peuvent être chargés en tant que pilote de fonction pour un appareil personnalisé et une fonction d’un appareil composite.

  • Pilote parent générique USB pour les périphériques composites – Usbccgp : pilote parent pour les périphériques USB avec plusieurs fonctions. Usbccgp crée des objets d’appareil physiques (PDO) pour chacune de ces fonctions. Ces PDO individuels gèrent leurs pilotes de fonction USB respectifs, qui peuvent être le pilote Winusb.sys ou un pilote de classe de périphérique USB.