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 économique pour les périphériques 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 conférence vidéo, etc.
Usb-IF est un groupe d’intérêts spéciaux (SIG) qui gère la spécification USB officielle, les spécifications de test et les outils.
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 et applications de périphérique qui communiquent avec un périphérique USB.
USB dans Windows
Prise en charge de Windows pour les connecteurs USB Type-C : pour les oem qui souhaitent créer un système Windows avec des connecteurs USB Type-C.
Universal Serial Bus 4 (USB4™) : fournit des oem, des IHD et des fournisseurs de silicium qui mettent en place des systèmes Windows prenant en charge USB4 avec des informations sur le gestionnaire de connexions USB4, facilitant le débogage et les procédures de génération.
FAQ USB : Forum aux questions fréquemment posées par les développeurs de pilotes sur la pile USB et les fonctionnalités prises en charge dans USB.
Descripteurs de système d’exploitation Microsoft pour les périphériques USB : Windows définit les descripteurs du système d’exploitation MS qui permettent une meilleure énumération lorsqu’ils sont connectés au système d’exploitation Windows exécutant le système d’exploitation.
Outils de développement
Exemples USB
Créer un pilote USB ou une application 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 périphérique.
Écrire un pilote client USB (KMDF, UMDF)
Cette section comprend des didacticiels sur l’écriture de vos premiers pilotes USB en mode utilisateur et en mode noyau à l’aide des modèles USB inclus dans Microsoft Visual Studio.
- Bien démarrer le développement de pilotes clients USB
- Informations de référence sur la programmation du pilote de périphérique USB
É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 que 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 des périphériques USB via la station d’accueil sans fil à l’aide d’USB via TCP comme transport.
Développement de pilotes Windows pour les contrôleurs hôtes USB
Informations de référence sur le contrôleur hôte USB (UCX)
É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 fournie par Microsoft (UFX).
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 introduit la prise en charge du 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 Type-C tels que les ports qui prennent en charge type-C, les ports qui prennent en charge la distribution de l’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 connecteur USB (UcmCx)
Écrire un pilote de contrôleur double rôle USB
Les contrôleurs de rôle double 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 d’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é, voir :
Architecture de la pile des pilotes double rôle USB
Informations de référence sur la programmation du pilote du 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)
Référence de programmation du pilote du contrôleur d’hôte USB émulé
Extension WDF pour le développement de pilotes USB
- Informations de référence sur l’extension de classe du gestionnaire de connecteur USB (UcmCx)
- Informations de référence sur le contrôleur hôte USB (UCX)
- Informations de référence sur l’extension de classe de fonction USB (UFX)
Écrire une application UWP
Parlez aux périphériques USB, commencez à terminer : fournit des instructions pas à pas sur l’implémentation des 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 d’espace de noms UWP.
Écrire une application de bureau Windows
Écrire une application WinUSB : décrit comment une application peut appeler des fonctions WinUSB pour communiquer avec un périphérique USB.
Fonctions WinUSB
Scénarios de programmation courants : liste des tâches courantes effectuées par un pilote ou une application 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 des 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 logiciel 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 du Kit de certification matérielle qui permettent 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™)
Universal Serial Bus 4 (USB4™) : fournit des oem, des IHD et des fournisseurs de silicium qui mettent en place des systèmes Windows prenant en charge USB4 avec des informations sur le gestionnaire de connexions USB4, facilitant le débogage et les procédures de génération.
Présentation du gestionnaire de connexions USB4 dans Windows : le gestionnaire de connexions dans un domaine USB4 est responsable de l’énumération, de la configuration et de la gestion du domaine USB4.
Détails de la conception universal Serial Bus 4 (USB4™) et exigences générales : exigences générales en matière de conception et d’expérience utilisateur.
Test obligatoire du bus série universel 4 (USB4™) : les exigences HLK ne sont pas conçues pour fournir une couverture complète des tests fonctionnels de bout en bout pour l’ensemble de fonctionnalités USB4. Nous vous recommandons d'effectuer une validation approfondie des scénarios d'utilisation importants.
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 divers contrôleurs hôtes USB et concentrateurs USB trouvés dans les PC Windows. Ressource utile pour les développeurs de pilotes clients USB et les concepteurs de matériel USB pour comprendre l’implémentation de la pile des pilotes, résoudre les problèmes courants et 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.
Windows Centre de développement matériel : ressources diverses basées sur des questions fréquemment posées par les développeurs qui ne sont pas en train de développer des périphériques USB et des pilotes qui fonctionnent avec les systèmes d’exploitation Windows.
Matériel USB pour l’apprentissage
Appareils MUTT : les appareils MUTT et SuperMUTT et le package logiciel associé sont intégrés à la suite HCK de tests USB. Ils fournissent des tests automatisés qui peuvent être utilisés pendant le cycle de développement des contrôleurs USB, des appareils et des systèmes, en particulier les tests de contrainte.
Kit d’apprentissage OSR USB FX2 : si vous débutez dans le développement de pilotes USB. Ce kit est le plus adapté pour étudier les exemples USB inclus dans cette 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 principale de pilotes qui interagissent avec les appareils connectés aux 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 de périphérique in-box pour de nombreuses classes d’appareils approuvées USB-IF, audio, stockage de masse, et ainsi de suite.
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 Winusb.sys qui peut être chargé 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 physique (PDO) pour chacune de ces fonctions. Ces PPO 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.