Commandes du vérificateur de pilote statique (MSBuild)
Vous pouvez exécuter static Driver Verifier (SDV) dans une fenêtre d’invite de commandes Visual Studio, soit via l’installation du Kit de pilotes Windows (WDK) ou l’exécution du Kit de pilotes Windows d’entreprise (EWDK). Accédez au répertoire dans lequel le fichier projet du pilote ou le fichier projet de la bibliothèque est stocké. Les paramètres peuvent apparaître dans n’importe quel ordre sur la ligne de commande.
Important
SDV n’est plus pris en charge et SDV n’est plus disponible dans les versions wdK ou EWDK de Windows 24H2. Il n’est pas disponible dans les kits WDK plus récents que la build 26017 et n’est pas inclus dans windows 24H2 RTM WDK.
SDV peut toujours être utilisé en téléchargeant windows 11, version 22H2 EWDK (publiée le 24 octobre 2023) avec Visual Studio Build Tools 17.1.5 à partir du téléchargement du Kit de pilotes Windows (WDK). Seule l’utilisation du kit WDK Entreprise pour exécuter SDV est recommandée. L’utilisation de versions antérieures de WDK standard conjointement avec les versions récentes de Visual Studio n’est pas recommandée, car cela entraînera probablement des échecs d’analyse.
À l’avenir, CodeQL sera l’outil d’analyse statique principal pour les pilotes. CodeQL fournit un langage de requête puissant qui traite le code comme une base de données à interroger, ce qui facilite l’écriture de requêtes pour des comportements, des modèles spécifiques, etc.
Pour plus d’informations sur l’utilisation de CodeQL, consultez CodeQL et le test du logo Static Tools.
msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform
Vous devez sélectionner une configuration release (par exemple, /p :Configuration="Windows 7 Release »). Pour obtenir la liste des configurations de mise en production prises en charge, consultez Génération d’un pilote. La plateforme peut être Win32 (pour x86) ou x64 (par exemple, /p :Platform=Win32).
Remarque
Veillez à vérifier le plan de gestion de l’alimentation de votre ordinateur pour vous assurer que l’ordinateur n’entre pas dans un état de veille pendant l’analyse.
Paramètres
/scan
Analyse le code source du pilote pour les déclarations de type de rôle de fonction. Pour plus d’informations sur la façon de déclarer les fonctions de rappel fournies par le pilote et les routines de répartition, consultez Utilisation des déclarations de type de rôle de fonction. Pendant cette analyse, SDV tente de détecter les points d’entrée du pilote qu’il doit vérifier. Il enregistre les résultats de l’analyse dans Sdv-map.h, un fichier qu’il crée dans le répertoire du projet du pilote.
Pour plus d’informations, consultez Préparation de votre code source.
/check :Rule | ,...
Démarre une vérification avec la ou les règles spécifiées. Vous pouvez spécifier plusieurs règles en séparant chaque règle par une virgule. Exécutez la commande /check : et spécifiez le fichier projet Visual Studio du pilote (*.vcxproj).
La règle est le nom d’une règle ou d’un modèle de nom de règle qui inclut des caractères génériques (*) pour représenter un ou plusieurs caractères. Lorsqu’il est utilisé seul, le caractère générique (*) représente toutes les règles.
/check :RuleList.sdv
Démarre une vérification avec les règles dans le fichier de liste de règles spécifié. Vous ne pouvez répertorier qu’un seul fichier avec ce paramètre. Dans le fichier de liste de règles, chaque ligne peut être le nom d’une règle ou il peut s’agir d’un caractère générique (*), qui représente toutes les règles SDV. Exécutez la commande /check :RuleList.sdv et spécifiez le fichier projet Visual Studio du pilote (*.vcxproj).
RuleList.sdv est le chemin d’accès complet et le nom de fichier d’un fichier de liste de règles. Le fichier doit avoir l’extension de nom de fichier .sdv . Sauf si le fichier se trouve dans le répertoire local, le chemin d’accès est requis. Si le chemin d’accès ou le nom de fichier inclut des espaces, vous devez placer RuleList.sdv entre guillemets.
Si vous spécifiez l’option /check : sans spécifier de règle, SDV s’exécute avec l’ensemble de règles par défaut pour le modèle de pilote.
/lib
Traite la bibliothèque dans le répertoire actif. SDV appelle MSBuild.exe pour compiler et générer la bibliothèque pour une utilisation externe, et génère les fichiers dont il a besoin pour inclure la bibliothèque dans la vérification du pilote.
Utilisez ce paramètre avant de vérifier les pilotes qui nécessitent la bibliothèque. Exécutez la commande msbuild /t :sdv /p :Inputs="/lib » et spécifiez le fichier projet Visual Studio (*.vcxproj) pour la bibliothèque.
Pour plus d’informations sur l’utilisation et l’effet du paramètre /lib, consultez Traitement de la bibliothèque dans le vérificateur de pilote statique.
/Vue
Ouvre le vérificateur de pilote statique. Exécutez les commandes /view et spécifiez le fichier projet Visual Studio du pilote (*.vcxproj).
Les résultats sont disponibles dès qu’une vérification est terminée et restent disponibles jusqu’à ce que vous utilisiez une commande /clean pour supprimer les fichiers SDV du répertoire du projet du pilote.
/propre
Supprime les fichiers SDV du répertoire. Étant donné que ces fichiers sont utilisés pour générer l’affichage du rapport du vérificateur de pilote statique, la commande /clean supprime également le rapport de la vérification.
Exécutez une commande /clean et spécifiez le fichier projet Visual Studio (*.vcxproj) pour le pilote ou la bibliothèque. La commande supprime les fichiers SDV uniquement pour le projet spécifié.
Exécutez une commande /clean pour un projet de pilote avant chaque vérification.
Exécutez une commande /clean pour une bibliothèque lorsque les fichiers de bibliothèque sont obsolètes, par exemple lorsque le code de la bibliothèque change.
Une commande /clean ne supprime pas le fichier Sdv-map.h, si l’indicateur approuvé est défini sur true dans le fichier Sdv-map.h (Approved=true). SDV peut ensuite utiliser ce fichier pour les vérifications ultérieures.
/?
Affiche l’utilisation des commandes SDV. Les commandes qui utilisent ce paramètre n’ont pas besoin d’être exécutées dans une fenêtre d’environnement de génération.
Commentaires
L’exécution de msbuild /t :/sdv p :/Inputs= / ? sans paramètres affiche l’utilisation des commandes SDV.
Une commande /clean supprime les fichiers utilisés par SDV pour créer l’affichage du rapport du vérificateur de pilote statique pour une vérification. Après avoir exécuté cette commande, l’affichage du rapport du vérificateur de pilote statique pour la vérification n’est plus disponible.
Exemples
Pour exécuter SDV à l’aide de toutes les règles sur les fichiers de pilote dans le répertoire local du projet mydriver :
msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32
Pour exécuter SDV à l’aide de la règle CancelSpinLock sur les fichiers du pilote dans le répertoire local :
msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32
Pour exécuter SDV à l’aide de la règle spécifiée dans le fichier de liste de règles Rules1.sdv dans le répertoire D :\SDV :
msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32
Pour réexécuter SDV, cette fois à l’aide de l’option /clean :
msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32
Pour afficher le vérificateur de pilote statique afin de pouvoir afficher les résultats de la vérification la plus récente du pilote dans le répertoire local :
msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32