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.
Le vérificateur de pilote est un outil de vérification au moment de l’exécution qui augmente l’efficacité de vos tests de pilotes. Vous pouvez activer et configurer Driver Verifier pour qu’il s’exécute sur tous les ordinateurs de test lorsque vous déployez votre pilote pour le test.
Vous devez toujours configurer une connexion de débogage en mode noyau avec l’ordinateur de test lorsque vous activez Driver Verifier sur l’ordinateur de test distant. Pour plus d’informations sur la configuration d’un ordinateur cible et la configuration d’un câble de débogage, consultez Prise en main du débogage Windows.
Définition des propriétés du vérificateur de pilotes pour les projets de packages de pilotes
- Ouvrez les pages de propriétés de votre package de pilotes. Sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) le projet de package de pilotes dans l’Explorateur de solutions, puis sélectionnez Propriétés.
- Dans les pages de propriétés du package de pilotes, sélectionnez Propriétés de configuration, installez pilote, puis sélectionnez Vérification du pilote.
- Sélectionnez l’option Activer la vérification du pilote. Lorsque cette option est sélectionnée, vous pouvez sélectionner le pilote ou les pilotes à vérifier sur l’ordinateur de test et sélectionner les options du vérificateur de pilotes à utiliser.
Configuration et plateforme du projet
La liste de configuration et la liste de plateformes vous permettent d’appliquer différents paramètres de déploiement pour différentes combinaisons de configuration et de plateforme de projet. Par exemple, vous pouvez déployer un pilote sur un ordinateur de test à l’aide d’un ensemble d’options de déploiement pour les builds de débogage et sur un autre ordinateur de test à l’aide d’options de déploiement pour les builds de mise en production.
Activer le vérificateur de pilotes
Vous pouvez activer Driver Verifier sur l’ordinateur de test pour tous les pilotes de l’ordinateur, pour le projet de pilote uniquement ou pour une liste de pilotes spécifiés. Par exemple, vous pouvez activer le Vérificateur de pilotes pour l'ensemble des pilotes sur la stack pour un appareil donné.
Vérifier les pilotes
Spécifie le pilote ou les pilotes à vérifier sur l’ordinateur de test.
Tous les pilotes
Spécifie que le vérificateur de pilotes vérifie tous les pilotes installés sur l’ordinateur de test distant.
Sortie du projet
Spécifie que le vérificateur de pilotes vérifie que le projet de pilote installé sur l’ordinateur de test distant. Il s’agit de l’option par défaut.
Liste des pilotes
Spécifie le pilote ou la liste des pilotes vérifiés par le vérificateur de pilotes sur l’ordinateur de test distant. Par exemple, vous pouvez répertorier tous les pilotes associés à un périphérique particulier. Spécifiez les pilotes par nom binaire, par exemple, Driver.sys. Utilisez un point-virgule pour séparer une liste de pilotes. Les valeurs génériques, telles que n*.sys, ne sont pas prises en charge.
Indicateurs standard du vérificateur de pilotes
Vous pouvez configurer les options de vérificateur de pilotes suivantes sur l’ordinateur de test.
Vérification de conformité DDI (Windows 8)
Lorsque cette option est active, le vérificateur de pilotes applique un ensemble de règles DDI (Device Driver Interface) qui vérifient l’interaction appropriée entre un pilote et l’interface du noyau du système d’exploitation.
-
Lorsque cette option est active, le Vérificateur de pilotes surveille l’utilisation des verrous tournants, mutex et mutex rapides par le pilote. Cela détecte si le code du pilote peut provoquer un blocage à un moment donné.
-
Lorsque cette option est active, le vérificateur de pilotes surveille l’utilisation de routines d’accès direct à la mémoire (DMA) du pilote. Cela détecte une utilisation incorrecte des mémoires tampons, des adaptateurs et des registres cartographiques DMA.
-
Lorsque cette option est active, le vérificateur de pilotes place une pression de mémoire extrême sur le pilote en invalidant le code paginable. Si le pilote tente d’accéder à de la mémoire paginée à un IRQL incorrect ou tout en maintenant un verrou tournant, le Vérificateur de pilotes détecte ce comportement.
-
Lorsque cette option est active, le vérificateur de pilotes alloue les paquets de demande d’interruption (IRP) du pilote à partir d’un pool spécial et surveille la gestion des E/S du pilote. Cela détecte l’utilisation illégale ou incohérente des routines d’E/S. Le vérificateur de pilotes surveille également les appels de plusieurs routines du Gestionnaire d’I/O et effectue des tests de contrainte des IRP Plug-and-Play (PnP), des IRP d'alimentation et des IRP WMI.
-
Lorsque cette option est active, Driver Verifier recherche les causes courantes des incidents du pilote, telles que la mauvaise gestion de la mémoire libérée.
-
Lorsque cette option est active, Driver Verifier vérifie si le pilote a libéré toutes ses allocations de mémoire lorsqu’il est déchargé. Cela révèle des fuites de mémoire.
-
Lorsque cette option est active, Driver Verifier recherche des erreurs courantes pouvant entraîner des vulnérabilités de sécurité, telles qu’une référence aux adresses en mode utilisateur par routines en mode noyau.
-
Lorsque cette option est active, le vérificateur de pilotes alloue la plupart des demandes de mémoire du pilote à partir d’un pool spécial. Ce pool spécial est surveillé pour les dépassements de mémoire, les sous-utilisations de mémoire, et la mémoire qui est accédée après avoir été libérée.
Paramètres spécifiques du scénario du vérificateur de pilotes
Simulation de ressources faibles
Lorsque cette option est active, le vérificateur de pilotes échoue de façon aléatoire aux demandes d’allocation de pool et à d’autres demandes de ressources. En injectant ces erreurs d’allocation dans le système, le vérificateur de pilotes teste la capacité du pilote à faire face à une situation de faible ressource.
Forcer les demandes d’E/S en attente
Lorsque cette option est active, le vérificateur de pilotes teste la réponse du pilote aux valeurs de retour STATUS_PENDING en renvoyant STATUS_PENDING pour des appels choisis au hasard à IoCallDriver.
-
Lorsque cette option est active, le vérificateur de pilotes surveille l'utilisation des IRP par un pilote et crée un journal de l'utilisation des IRP.
Vérification MDL invariante pour la pile (Windows 8)
L’option De vérification MDL invariante pour la pile surveille la façon dont le pilote gère les mémoires tampons MDL invariantes dans la pile des pilotes. Le vérificateur de pilote peut détecter la modification illégale des mémoires tampons MDL invariantes. Pour utiliser cette option, la vérification des E/S doit être activée sur au moins un pilote.
Vérification MDL invariante pour le pilote (Windows 8)
L'option Vérification MDL invariante pour le pilote surveille la manière dont le pilote gère, individuellement, les mémoires tampons MDL invariantes. Cette option détecte la modification illégale des mémoires tampons MDL invariantes. Pour utiliser cette option, vous devez activer la vérification des E/S sur au moins un pilote.
Fuzzing de délai pour Power Framework (Windows 8)
Lorsque cette option est active, le Driver Verifier randomise les planifications de threads pour aider à identifier et corriger les erreurs d’accès concurrentiel dans le pilote.
Injection de défaillance basée sur la pile (Windows 8)
L’option Injection de défaillance basée sur la pile injecte des défaillances de ressources dans les pilotes en mode noyau. Cette option utilise un pilote spécial, KmAutoFail.sys, conjointement avec Driver Verifier pour explorer les chemins de gestion des erreurs du pilote.
Note Vous ne pouvez pas combiner l’injection d’échecs basée sur la pile avec la simulation de faibles ressources.
Options du vérificateur de pilotes qui nécessitent la vérification des E/S
Il existe quatre options qui vous obligent à activer d’abord la vérification des E/S. Si la vérification des E/S n’est pas activée, ces options ne sont pas activées.
- Forcer les demandes d’E/S en attente
- Journalisation IRP
- Vérification MDL invariante pour la pile
- Vérification MDL invariante pour le pilote