Écrire un pilote Windows universel (UMDF 2) basé sur un modèle
Cette rubrique explique comment écrire un pilote Windows universel à l’aide de UMDF (User-Mode Driver Framework) 2. Vous allez commencer par un modèle Microsoft Visual Studio, puis déployer et installer votre pilote sur un ordinateur distinct.
Pour commencer, vérifiez que vous disposez de la version la plus récente de Microsoft Visual Studio et du Kit de pilotes Windows (WDK). Pour obtenir des liens de téléchargement, consultez Télécharger le Kit de pilotes Windows (WDK).
Les outils de débogage pour Windows sont inclus lors de l’installation de WDK.
Créer et générer un pilote
Remarque
Lorsque vous créez un pilote KMDF ou UMDF, vous devez sélectionner un nom de pilote qui comporte 32 caractères ou moins. Cette limite de longueur est définie dans wdfglobals.h.
Ouvrez Visual Studio. Dans le menu Fichier , choisissez Nouveau > projet.
Dans la boîte de dialogue Créer un projet , sélectionnez C++ dans la liste déroulante gauche, choisissez Windows dans la liste déroulante du milieu, puis choisissez Pilote dans la liste déroulante de droite.
Sélectionnez Pilote en mode utilisateur (UMDF V2) dans la liste des types de projets. Cliquez sur Suivant.
Dans la boîte de dialogue Configurer votre nouveau projet, entrez « UmdfDriver » dans le champ Nom du projet.
Remarque
Lorsque vous créez un pilote KMDF ou UMDF, vous devez sélectionner un nom de pilote qui comporte 32 caractères ou moins. Cette limite de longueur est définie dans wdfglobals.h.
Dans le champ Emplacement , entrez le répertoire dans lequel vous souhaitez créer le projet.
Vérifiez placez la solution et le projet dans le même répertoire , puis sélectionnez Créer.
Visual Studio crée un projet et une solution. Ceux-ci sont visibles dans la fenêtre Explorateur de solutions. (Si le Explorateur de solutions fenêtre n’est pas visible, choisissez Explorateur de solutions dans le menu Affichage.) La solution a un projet de pilote nommé UmdfDriver. Pour afficher le code source du pilote, ouvrez l’un des fichiers sous Fichiers sources. Driver.c et Device.c sont de bons endroits pour démarrer.
Dans la fenêtre Explorateur de solutions, sélectionnez et maintenez enfoncée (ou cliquez avec le bouton droit) la solution « UmdfDriver » (1 sur 1 projet) et choisissez Configuration Manager. Choisissez une configuration et une plateforme pour le projet de pilote. Par exemple, choisissez Déboguer et x64.
Dans la fenêtre Explorateur de solutions, sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) UmdfDriver, puis choisissez Propriétés. Accédez aux paramètres généraux du > pilote des propriétés > de configuration et notez que la plateforme cible est par défaut universelle.
Pour générer votre pilote, choisissez Générer une solution dans le menu Générer . Microsoft Visual Studio affiche la progression de la génération dans la fenêtre Sortie . (Si le La fenêtre sortie n’est pas visible, choisissez Sortie dans le menu Affichage .)
Vérifiez que la sortie de build inclut :
> Driver is 'Universal'.
Lorsque vous avez vérifié que la solution a été générée avec succès, vous pouvez fermer Visual Studio.
Pour afficher le pilote généré, dans Explorateur de fichiers, accédez à votre dossier UmdfDriver, puis à x64\Debug\UmdfDriver. Le répertoire inclut les fichiers suivants :
- UmdfDriver.dll :- le fichier de pilote en mode utilisateur
- UmdfDriver.inf : fichier d’informations que Windows utilise lorsque vous installez le pilote
Déployer et installer le pilote Windows universel
En règle générale, lorsque vous testez et déboguez un pilote, le débogueur et le pilote s’exécutent sur des ordinateurs distincts. L’ordinateur qui exécute le débogueur est appelé l’ordinateur hôte, et l’ordinateur qui exécute le pilote est appelé l’ordinateur cible. L’ordinateur cible est également appelé l’ordinateur de test.
Jusqu’à présent, vous avez utilisé Visual Studio pour générer un pilote sur l’ordinateur hôte. Vous devez maintenant configurer un ordinateur cible. Suivez les instructions fournies dans Provisionner un ordinateur pour le déploiement et le test de pilotes (WDK 10). Vous serez ensuite prêt à déployer, installer, charger et déboguer votre pilote :
Sur l’ordinateur hôte, ouvrez votre solution dans Visual Studio. Vous pouvez double-cliquer sur le fichier solution, UmdfDriver.sln, dans votre dossier UmdfDriver.
Dans la fenêtre Explorateur de solutions, sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) UmdfDriver, puis choisissez Propriétés.
Dans la fenêtre Pages de propriétés UmdfDriver, accédez au déploiement du pilote d’installation > des propriétés > de configuration, comme illustré ici.
Vérifiez supprimer les versions précédentes du pilote avant le déploiement.
Pour le nom de l’appareil cible, sélectionnez le nom de l’ordinateur que vous avez configuré pour le test et le débogage.
Sélectionnez Mise à jour du pilote d’ID matériel, puis entrez l’ID matériel de votre pilote. Dans cet exercice, l’ID matériel est Root\UmdfDriver. Cliquez sur OK.
Notez dans cet exercice que l’ID matériel n’identifie pas de matériel réel. Il identifie un appareil imaginaire qui sera donné un emplacement dans l’arborescence de l’appareil en tant qu’enfant du nœud racine. Pour le matériel réel, ne sélectionnez pas la mise à jour du pilote d’ID de matériel ; sélectionnez Installer et Vérifier. Vous pouvez voir l’ID matériel dans le fichier d’informations (INF) de votre pilote. Dans la fenêtre Explorateur de solutions, accédez à Fichiers de pilotes UmdfDriver>, puis double-cliquez sur UmdfDriver.inf. L’ID matériel se trouve sous [Standard.NT$ARCH$].
[Standard.NT$ARCH$] %DeviceName%=MyDevice_Install,Root\UmdfDriver
Dans le menu Débogage , choisissez Démarrer le débogage, ou appuyez sur F5 sur le clavier.
Attendez que votre pilote ait été déployé, installé et chargé sur l’ordinateur cible. Cette opération peut prendre plusieurs minutes.
Utilisation de l’infrastructure de module de pilote (DMF)
L’infrastructure de module de pilote (DMF) est une extension de WDF qui permet des fonctionnalités supplémentaires pour un développeur de pilotes WDF. Il aide les développeurs à écrire n’importe quel type de pilote WDF mieux et plus rapidement.
DMF en tant que framework permet la création d’objets WDF appelés modules DMF. Le code de ces modules DMF peut être partagé entre différents pilotes. De plus, DMF regroupe une bibliothèque de modules DMF que nous avons développées pour nos pilotes et que nous pensons fournir de la valeur à d’autres développeurs de pilotes.
DMF ne remplace pas WDF. DMF est un deuxième framework utilisé avec WDF. Le développeur tirant parti de DMF utilise toujours WDF et toutes ses primitives pour écrire des pilotes de périphérique.
Pour plus d’informations, consultez Driver Module Framework (DMF).
Rubriques connexes
Développement, test et déploiement de pilotes