Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment écrire un pilote Windows universel à l’aide de User-Mode Driver Framework (UMDF) 2. Vous commencez par un modèle Microsoft Visual Studio, puis déployez et installez votre pilote sur un ordinateur distinct.
Prerequisites
Suivez les étapes pour installer le kit de pilotes Windows (WDK). Les outils de débogage pour Windows sont inclus à l'installation du WDK.
Installez Visual Studio 2022. Lorsque vous installez Visual Studio 2022, sélectionnez la charge de travail Développement Desktop avec C++, puis, sous Composants individuels, ajoutez :
- Bibliothèques avec atténuations Spectre MSVC v143 - VS 2022 C++ ARM64/ARM64EC (dernière version)
- Bibliothèques avec atténuations Spectre MSVC v143 – VS 2022 C++ x64/x86 (dernière version)
- C++ ATL pour la dernière version de Build Tools v143 avec atténuations Spectre (ARM64/ARM64EC)
- C++ ATL pour la dernière version de Build Tools v143 avec atténuations Spectre (x86 & x64)
- C++ MFC pour la dernière version de Build Tools v143 avec atténuations Spectre (ARM64/ARM64EC)
- C++ MFC pour la dernière version de Build Tools v143 avec atténuations Spectre (x86 & x64)
- Kit de pilotes Windows
Créez et construisez un pilote
Note
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 au milieu de la liste déroulante, 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.
Conseil / Astuce
Si vous ne trouvez pas de modèles de projet de pilote dans Visual Studio, l’extension WDK Visual Studio n’a pas été correctement installée. Pour résoudre ce problème, lancez visual Studio Installer, sélectionnez Modifier, ajoutez Kits de pilotes Windows sous l’onglet composant individuel, puis sélectionnez Modifier.
Dans la boîte de dialogue Configurer votre nouveau projet , entrez « UmdfDriver » dans le champ Nom du projet .
Note
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. Vous pouvez les voir dans la fenêtre de l’Explorateur de solutions. (Si la fenêtre explorateur de solutions n’est pas visible, choisissez l’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 la solution (ou cliquez avec le bouton droit) « UmdfDriver » (1 sur 1 projet) et choisissez Configuration Manager. Choisissez une configuration et une plateforme pour le projet de pilote. Par exemple, choisissez Debug et x64.
Dans la fenêtre Explorateur de solutions , sélectionnez et maintenez la touche enfoncée (ou cliquez avec le bouton droit) sur UmdfDriver, puis choisissez Propriétés. Accédez aux Propriétés de Configuration > Paramètres du Pilote > Général et notez que la Plateforme Cible est par défaut Universal.
Pour construire votre pilote, choisissez Build Solution dans le menu Build. Microsoft Visual Studio affiche la progression de la compilation dans la fenêtre Sortie. (Si 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 vérifiez 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 l’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
- Fichier d’informations UmdfDriver.inf 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é 'ordinateur hôte, et l’ordinateur qui exécute le pilote est appelé ordinateur cible. L’ordinateur cible est également appelé ordinateur de test.
Important
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 dans Configurer un ordinateur pour déployer et tester des pilotes (WDK 10). Ensuite, vous êtes 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 la touche enfoncée (ou cliquez avec le bouton droit) sur UmdfDriver, puis choisissez Propriétés.
Dans la fenêtre Pages de propriétés UmdfDriver, accédez à Propriétés de configuration > Installation du pilote > Déploiement, comme illustré ici.
Cochez Supprimer les versions précédentes du pilote avant le déploiement.
Pour Nom de l’appareil cible, sélectionnez le nom de l’ordinateur que vous avez configuré pour les tests et le débogage.
Sélectionnez Mise à jour du pilote via l’ID matériel, et entrez l’ID matériel pour votre pilote. Dans cet exercice, l’ID matériel est Root\UmdfDriver. Cliquez sur OK.
Note
Dans cet exercice, l’ID matériel n’identifie pas un élément matériel réel. Il identifie un appareil imaginaire qui est donné un emplacement dans l’arborescence d’appareils 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 ; Au lieu de cela, sélectionnez Installer et Vérifier. Vous pouvez voir l’ID matériel dans le fichier d’informations (INF) du 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\UmdfDriverDans le menu Débogage , choisissez Démarrer le débogage, ou appuyez sur F5 sur le clavier.
Attendez que votre pilote soit déployé, installé et chargé sur l’ordinateur cible. Cela peut prendre plusieurs minutes.
Utilisation du cadre 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. En outre, DMF regroupe une bibliothèque de modules DMF que nous avons développées pour nos pilotes et nous sentons 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 utilisant 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).