Premiers pas pour le développement de pilotes clients USB
Cette rubrique présente les concepts et les outils de développement de pilotes USB. Cette section s’adresse aux développeurs débutants en développement de pilotes qui souhaitent implémenter un pilote pour un périphérique USB pour lequel Microsoft ne fournit pas de pilote intégré. Ces pilotes sont appelés pilotes clients USB dans cette documentation. Les rubriques de cette section décrivent les concepts USB de haut niveau et fournissent des instructions détaillées sur la réalisation des tâches courantes d’un pilote client USB. Pour des informations détaillées sur ces concepts, consultez les spécifications USB à la section Documents USB.
Les développeurs de pilotes doivent avoir une expérience en codage dans le langage de programmation C++ et comprendre les concepts de pointeurs de fonction, fonctions de rappel et gestionnaires d’événements. Si vous écrivez un pilote basé sur le User-Mode Driver Framework, le développeur doit être familiarisé avec C++ et COM.
Parcours d’apprentissage pour les développeurs de pilotes clients USB
Lisez la Spécification USB 3.2.
- Découvrez la spécification de l’industrie et les différents composants (périphérique, contrôleur hôte et concentrateur) de l’architecture. Il est important de comprendre le modèle de flux de données, comment l’hôte et le périphérique communiquent entre eux et le format des demandes que le périphérique attend.
Obtenez un périphérique USB de test.
Ayez un périphérique USB et sa spécification matérielle. La spécification décrit les capacités du périphérique et les commandes du fabricant prises en charge. Utilisez la spécification pour déterminer les fonctionnalités du pilote de périphérique et les décisions de conception associées.
Munissez-vous du kit d’apprentissage OSR USB FX 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.
Munissez-vous de périphériques Microsoft USB Test Tool (MUTT). Le matériel MUTT peut être acheté chez JJG Technologies. Le périphérique n’a pas de firmware installé. Pour installer le firmware, téléchargez le package logiciel MUTT. Pour plus d’informations, consultez la documentation incluse dans le package.
Étudiez la disposition des périphériques USB et les descripteurs USB associés.
- Décrivez les capacités de votre périphérique en lisant le descripteur de configuration, les descripteurs d’interface pour chaque paramètre alternatif pris en charge et leurs descripteurs d’extrémité. En utilisant USBView, le développeur peut parcourir tous les contrôleurs USB et les périphériques USB qui y sont connectés et également inspecter la configuration du périphérique.
Choisissez un modèle de pilote pour développer un pilote client USB
- Déterminez si le pilote doit être un pilote personnalisé ou utiliser l’un des pilotes fournis par Microsoft en fonction de la conception du périphérique cible. Choisissez le meilleur modèle de pilote et décrivez les fonctionnalités prises en charge par chaque modèle.
Examinez la pile de pilotes USB fournie par Microsoft et les concepts de développement de pilotes.
- Pilotes côté hôte USB dans Windows.
- Concepts pour tous les développeurs de pilotes.
- Concepts pour tous les développeurs USB.
- Nœuds de périphériques et piles de périphériques.
- Developing Drivers with Windows Driver Foundation écrit par Penny Orwick et Guy Smith. Pour plus d’informations, consultez Développer des pilotes avec WDF.
- Exemples de pilotes USB.
- Comprenez les bases du fonctionnement des pilotes dans les systèmes d’exploitation Windows. Connaître les bases aidera à prendre des décisions de conception appropriées et à rationaliser le processus de développement.
- Différenciez les modèles d’architecture de pilotes en mode utilisateur et en mode noyau.
- Comprenez le chargement des pilotes et comment Windows organise les périphériques Plug and Play (PnP) dans un arbre de périphériques et des nœuds de périphériques. Le développeur doit également comprendre comment le gestionnaire PnP construit des piles de périphériques et où le pilote et ses objets périphériques sont placés dans la pile de périphériques.
Préparez l’environnement de développement et de débogage.
- Installez le dernier Windows Driver Kit (WDK).
- Installez Microsoft Visual Studio.
- Configurez pour le débogage.
- Assurez-vous que les en-têtes et bibliothèques nécessaires à un pilote client USB sont disponibles.
- Si vous écrivez un pilote en mode noyau, le débogage sur les ordinateurs hôte et cible sur un réseau Ethernet, un câble 1394, un câble de débogage USB 2.0 ou 3.0, ou un câble null-modem doit être configuré.
- Si vous écrivez un pilote en mode utilisateur, les débogueurs en mode utilisateur sont disponibles dans l’environnement Microsoft Visual Studio. Le développeur doit être familier avec comment attacher à un processus ou lancer un processus sous le débogueur.
Écrivez votre premier pilote.
- Comment écrire votre premier pilote client USB (KMDF).
- Comment écrire votre premier pilote client USB (UMDF).
- Écrivez, compilez et installez votre premier pilote client USB en utilisant les modèles USB inclus avec Visual Studio 2012. Un développeur doit être capable de décrire les objets pilote, périphérique et file d’attente du framework et comprendre comment le framework communique avec votre pilote.
Étendez votre pilote en envoyant une demande de transfert de contrôle USB.
- Envoyez des demandes de contrôle standard et des commandes du fabricant à votre périphérique. Pour plus d’informations, veuillez consulter la section Comment envoyer un transfert de contrôle USB.
Étendez votre pilote pour utiliser des objets cibles d’E/S USB WDF pour effectuer des transferts de données USB.
- Étendez votre pilote pour effectuer des tâches courantes comme décrit dans Tâches courantes pour les pilotes clients USB.
Ressources communautaires pour USB
Blog de l’équipe centrale Microsoft Windows USB
Consultez les articles écrits par l’équipe USB de Microsoft. 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. Une ressource utile pour les développeurs de pilotes clients USB et les concepteurs de matériel USB pour comprendre la mise en œuvre de la pile de pilotes, résoudre les problèmes courants et expliquer comment utiliser les outils pour recueillir des traces et des fichiers journaux.
-
Liste de discussion gérée par OSR Online pour les développeurs de pilotes en mode noyau.
Centre de développement Windows pour le développement de matériel
Windows Driver Kit, assurez-vous que votre produit est fiable et compatible avec Windows via le Windows Hardware Lab Kit, apprenez Exemples de pilotes Windows.