Vérificateur de pilote statique

Static Driver Verificationr (également appelé « StaticDV » ou « SDV ») est un outil de vérification statique qui analyse systématiquement le code source des pilotes en mode noyau Windows. SDV est un outil de compilation de temps capable de détecter les défauts et les problèmes de conception dans un pilote. En fonction d’un ensemble de règles d’interface et d’un modèle du système d’exploitation, SDV détermine si le pilote interagit correctement avec le noyau du système d’exploitation Windows.

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.

Installation du vérificateur de pilote statique

Static Driver Verifier est disponible dans le cadre du Kit de pilotes Windows (WDK) à la fois dans l’expérience WDK complète et dans le WDK d’entreprise autonome. En outre, les packages redistribuables Visual C++ pour Visual Studio sont requis pour que SDV s’exécute. Consultez ce qui suit :

Pour les versions de SDV disponibles dans wdK pour Windows 10, version 1809 ou antérieure, les packages redistribuables Visual C++ pour Visual Studio 2012 doivent être installés au lieu des packages 2017.

Intégration Visual Studio

Static Driver Verifier est intégré à Visual Studio. Vous pouvez exécuter une analyse statique sur votre projet de pilote Visual Studio. Vous pouvez lancer, configurer et contrôler le vérificateur de pilote statique à partir du menu Pilote dans Visual Studio.

Documentation du vérificateur de pilote statique

  • Problèmes connus du vérificateur de pilote statique : répertorie les derniers problèmes connus pour le vérificateur de pilotes statiques
  • Utilisation du vérificateur de pilotes statiques pour rechercher des défauts dans les pilotes : vous indique ce dont vous avez besoin pour commencer à analyser votre code de pilote dans l’environnement Visual Studio.
  • Commandes du vérificateur de pilote statique (MSBuild) : répertorie les commandes MSBuild à utiliser pour exécuter SDV dans une fenêtre d’invite de commandes Visual Studio.
  • Présentation du vérificateur de pilote statique : fournit une vue d’ensemble de l’outil d’analyse statique.
  • Utilisation du vérificateur de pilote statique : fournit les détails sur l’utilisation et la configuration de l’outil d’analyse statique.
  • Rapport du vérificateur de pilote statique : décrit la visionneuse qui affiche la trace détaillée de l’analyse du code statique.
  • Règles du vérificateur de pilote statique : les règles définissent les exigences d’interaction appropriée entre un modèle de pilote et l’interface du noyau du système d’exploitation.
  • Référence du vérificateur de pilote statique : fournit des informations de référence sur les types de rôles de fonction, les fichiers de configuration SDV, les erreurs et les messages d’avertissement.

Recherche de bogues dans le code du pilote Windows

Microsoft utilise SDV pour tester les pilotes en mode noyau inclus dans le système d’exploitation Microsoft Windows et pour tester les exemples de pilotes dans wdK. En utilisant les règles de conformité DDI pour des modèles de pilotes spécifiques, SDV peut vérifier le comportement correct du pilote. Par exemple, SDV peut vérifier que le pilote :

  • Appelle des fonctions au niveau du runtime d’intégration (IRQL) correct
  • Acquiert et libère des verrous dans la séquence correcte
  • Utilise correctement des fonctions qui gèrent les paquets de requête d’E/S (IRP)

SDV examine tous les chemins possibles via le code du pilote. Il est conçu pour trouver des erreurs graves dans des chemins obscurs qui sont peu susceptibles d’être rencontrés même dans des tests approfondis.

Ressources supplémentaires

Pour plus d’informations sur les pilotes que SDV peut vérifier, consultez Pilotes pris en charge

Pour plus d’informations et des conseils sur l’utilisation du vérificateur de pilote statique, consultez les rubriques suivantes :