Utilisation de Visual Studio ou MSBuild pour créer un pilote
Cette rubrique offre des instructions sur la façon de créer un pilote en utilisant l’environnement de développement Visual Studio, ou à partir de la ligne de commande en utilisant la fenêtre de commandes Visual Studio et le moteur de construction Microsoft (MSBuild).
Pour développer des pilotes pour Windows, vous devrez installer le SDK et le WDK dans Visual Studio et configurer les paramètres du pilote. Assurez-vous que les versions du SDK et du WDK sur votre ordinateur correspondent.
Générer un pilote en utilisant Visual Studio
Vous générez un pilote de la même manière que vous générez n’importe quel projet ou solution dans Visual Studio. Lorsque vous créez un nouveau projet de pilote à l’aide d’un modèle de pilote, le modèle définit une configuration de projet par défaut (active) et une configuration de génération de solution par défaut (active).
Pour des informations sur la gestion et la modification des configurations de génération, veuillez consulter la rubrique Génération dans Visual Studio.
Paramètres du pilote KMDF
Pour configurer les paramètres du pilote dans VS 2022, faites un clic droit sur le projet de pilote, sélectionnez Propriétés, et rendez-vous dans Propriétés ->Configuration Properties ->Driver Settings.
Version cible du système d’exploitation
La Version cible du système d’exploitation fait référence à la version de Windows pour laquelle le pilote est développé. Définissez la version cible du système d’exploitation sur la version la plus basse prise en charge par votre pilote. Par exemple, un pilote pour Windows 10 doit prendre en charge Windows 10 et toutes les versions ultérieures.
Suivez les instructions fournies par ces rubriques pour vous assurer que votre package de pilote est correctement écrit pour prendre en charge plusieurs versions de Windows.
- Écriture de pilotes pour différentes versions de Windows
- Prise en charge de plusieurs versions du système d’exploitation
Plateforme cible
Il existe 3 classifications pour la plateforme cible Windows, Pilotes universels, Pilotes de bureau et Pilotes Windows.
Les Pilotes universels doivent :
- Ne pas utiliser de co-installateurs.
- Être conforme aux principes de conception DCH. Voir Principes de conception DCH et bonnes pratiques.
- Passer
InfVerif /u
Les Pilotes de bureau doivent :
- Répondre à toutes les exigences des pilotes universels.
- Être conforme aux exigences du Programme de compatibilité matérielle Windows (WHCP).
- Passer
InfVerif /h
. Pour plus d’informations, voir InfVerif /h.
Les pilotes répondant aux critères du pilote de bureau sont certifiés Windows Logo et peuvent être ajoutés au programme Windows Update.
Les Pilotes Windows doivent :
- Répondre à toutes les exigences des pilotes de bureau.
- Être entièrement conforme aux exigences de l’isolation des packages de pilotes.
- Passer
InfVerif /w
- Les pilotes Windows sont la sélection de plate-forme cible la plus restrictive et répondent à toutes les exigences de fiabilité et de maintenance.
Le tableau suivant résume les classifications des pilotes.
Fonctionnalité | Pilotes universels | Pilotes de bureau | Pilotes Windows |
---|---|---|---|
Switch Infverif | InfVerif /u |
InfVerif /h |
InfVerif /w |
Exigence WHCP actuelle | Non | Oui | Non |
Prend en charge toutes les variantes du système d’exploitation Windows | Non | Non | Oui |
Prise en charge de X64/ARM64 | Oui | Oui | Oui |
Conformité APIVALIDATOR requise | Non | Non | Oui |
Prise en charge du système d’exploitation de bureau (Version cible du système d’exploitation) | Oui | Oui | Oui |
Prise en charge des échantillons de pilotes GitHub | Oui | Oui | Non |
Configuration du pilote
Lors de la génération de pilotes, assurez-vous que l’architecture de la plateforme et NT_TARGET_VERSION sont correctement définies dans Visual Studio avec WDK ou EWDK. La configuration de build de solution par défaut pour le développement est Déboguer et Win64.
- Sélectionnez et maintenez (ou faites un clic droit) sur la solution dans Explorateur de solutions et sélectionnez Gestionnaire de configuration.
- Dans le Gestionnaire de configuration, sélectionnez la Configuration de solution active (par exemple, Déboguer ou Release) et la Plateforme de solution active (par exemple, Win64) correspondant au type de build qui vous intéresse.
- Sélectionnez et maintenez (ou faites un clic droit) sur le projet et sélectionnez Propriétés. Rendez-vous dans Paramètres du pilote ->Général, et définissez Version cible du système d’exploitation et Plateforme cible.
- Configurez les propriétés du projet pour votre pilote ou package de pilotes. Vous pouvez définir des propriétés pour le déploiement, la signature du pilote ou d’autres tâches. Pour plus d’informations, veuillez consulter Configuration des propriétés de projet pour votre pilote et package de pilotes.
Pour générer un pilote
- Ouvrez le projet ou la solution de pilote dans Visual Studio.
- Dans le menu Build, sélectionnez Générer Solution (Ctrl+Shift+B).
- Consultez les erreurs de compilation éventuelles dans la fenêtre de sortie de la build.
Génération d’un pilote à l’aide de la ligne de commande (MSBuild)
Vous pouvez construire un pilote à partir de la ligne de commande en utilisant la fenêtre de commande Visual Studio et le moteur de build Microsoft (MSBuild).
Pour générer un pilote à l’aide de la fenêtre d’invite de commandes Visual Studio
Ouvrez une Fenêtre de commande développeur pour VS2022.
À partir de cette fenêtre, vous pouvez utiliser MSBuild.exe pour construire n’importe quel projet Visual Studio en spécifiant le fichier de projet (.vcxproj) ou de solutions (.sln).
Rendez-vous dans le répertoire du projet et entrez la commande MSBuild pour votre cible.
Par exemple, pour effectuer une construction propre d’un projet de pilote Visual Studio appelé MyDriver.vcxproj en utilisant la plateforme et la configuration par défaut, rendez-vous dans le répertoire du projet et entrez la commande MSBuild suivante :
msbuild /t:clean /t:build .\MyDriver.vcxproj
Pour spécifier une configuration et une plateforme spécifiques, utilisez :
msbuild /t:clean /t:build ProjectFile /p:Configuration=<Debug|Release> /p:Platform=architecture /p:TargetPlatformVersion=a.b.c.d /p:TargetVersion=OS
La commande suivante génère un pilote pour la configuration « Déboguer », la plateforme « Win32 », et pour Windows 10.
msbuild /t:clean /t:build .\MyDriver.vcxproj /p:Configuration="Debug" /p:Platform=Win32 /p:TargetVersion="Windows10" /p:TargetPlatformVersion="10.0.10010.0"
Le paramètre TargetPlatformVersion est facultatif et spécifie la version du kit à utiliser pour la génération. La valeur par défaut est la dernière version du kit.
Configuration des propriétés du projet pour votre pilote et package de pilotes
Utilisez les pages de propriétés pour configurer et définir des options pour votre pilote et package de pilotes. Vous pouvez choisir de configurer votre pilote de sorte qu’il soit automatiquement signé lors de la génération de votre solution, ou automatiquement déployé sur un ordinateur de test distant.
Vous pouvez définir des propriétés pour un pilote individuel ou pour un package de pilotes entier. La section suivante montre certaines des propriétés disponibles que vous pouvez configurer spécifiquement pour les pilotes et les packages de pilotes.
Propriétés du projet de pilote
Propriétés de configuration du modèle de pilote pour les projets de pilote
Propriétés de signature pour les fichiers de pilote individuels - Signature d’un pilote
Propriétés de préprocesseur Manifeste de Compteurs pour les projets de pilote
Propriétés du compilateur de messages pour les projets de pilote
Propriétés du package de pilotes
Propriétés de déploiement pour les projets de package de pilotes
Propriétés de signature pour les packages de pilotes - Signature d’un pilote
Propriétés de vérification des pilotes pour les projets de package de pilotes
Propriétés de vérification KMDF pour les projets de package de pilotes
Propriétés de vérification UMDF pour les projets de package de pilotes
Propriétés Inf2Cat pour les projets de package de pilotes et Inf2Cat
Intégration de l’outil de ligne de commande WDK dans le projet
Le WDK fournit un certain nombre d’outils en ligne de commande, tels que Stampinf et Préprocesseur WPP (Tracé WPP), qui sont couramment inclus dans le processus de génération. Ces outils ne sont pas distribués avec Visual Studio. Pour combiner ces outils avec l’environnement de construction Visual Studio, ils sont enveloppés en tant que tâches WDK pour MSBuild. Si vous utilisez l’un des modèles de pilote ou si vous avez un pilote existant que vous avez converti, ces pages de propriétés peuvent déjà exister pour votre projet. Sinon, les pages de propriétés sont automatiquement ajoutées à votre projet au fur et à mesure que vous ajoutez les types de fichiers associés au projet ou à la solution (par exemple, fichiers .mc ou .man pour le compilateur de messages). Pour plus d’informations, veuillez consulter la section WDK et l’environnement de génération Visual Studio.
Conseil de dépannage pour la construction d’un pilote
Pour aider à résoudre les problèmes de build, vous pouvez augmenter la verbosité de la sortie de build dans Visual Studio :
- Sélectionnez Outils ->Options.
- Sélectionnez le dossier Projets et solutions et sélectionnez Générer et Exécuter.
- Modifiez les options pour la Verbosité de la sortie de build du projet MSBuild et Verbosité du fichier journal de build du projet MSBuild. Par défaut, ceux-ci sont définis sur Minimal.
Mise à jour des pilotes Windows 8
Vous pouvez convertir des projets et des solutions que vous avez créés avec WDK 8 ou Windows Driver Kit (WDK) 8.1 pour les faire fonctionner avec Windows Driver Kit (WDK) 10 et Visual Studio. Avant d’ouvrir les projets ou solutions, exécutez l’Outil de mise à niveau de projet. L’outil de mise à niveau de projet convertit les projets et solutions afin qu’ils puissent être générés à l’aide de WDK 10.
À partir de Windows Driver Kit (WDK) 8, MSBuild a remplacé l’utilitaire Windows Build Utility (Build.exe). Le WDK utilise le même compilateur et les mêmes outils de construction que vous utilisez pour générer des projets Visual Studio. Les projets de pilotes qui ont été générés avec des versions précédentes du WDK doivent être convertis pour fonctionner dans l’environnement Visual Studio. Vous pouvez exécuter un utilitaire de conversion à partir de la ligne de commande, ou vous pouvez convertir un pilote existant en créant un nouveau projet Visual Studio à partir de sources existantes. Pour plus d’informations, veuillez consulter la rubrique Création d’un pilote à partir de fichiers source existants et WDK et l’environnement de build Visual Studio.
Rubriques connexes
- Génération dans Visual Studio
- Construction de pilotes pour différentes versions de Windows
- Utilisation de la bibliothèque C Runtime Microsoft avec les pilotes en mode utilisateur et les applications de bureau
- ProjectUpgradeTool
- MSBuild
- Création d’un pilote à partir de fichiers sources existants
- WDK et l’environnement de construction Visual Studio
- Signature d’un pilote
- Déploiement d’un pilote sur un ordinateur test
- InfVerif /h