Propriétés du vérificateur de pilotes pour les projets de package de pilotes
Driver Verifier 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 à des fins de 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 avec le débogage Windows.
Définition des propriétés du vérificateur de pilotes pour les projets de package 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 pilote dans 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, Installer le pilote, puis 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 ou les pilotes à vérifier sur l’ordinateur de test et sélectionner les options du vérificateur de pilotes à utiliser.
Configuration du projet et plateforme
La liste de configuration et la liste des plateformes vous permettent d’appliquer différents paramètres de déploiement pour différentes configurations de projet et combinaisons de plateformes. 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 version.
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 Driver Verifier pour l’ensemble de pilotes sur la pile d’un appareil particulier.
Vérifier les pilotes
Spécifie le ou les pilotes à vérifier sur l’ordinateur de test.
Tous les pilotes
Spécifie que Driver Verifier vérifie tous les pilotes installés sur l’ordinateur de test à distance.
Sortie du projet
Spécifie que Driver Verifier vérifie le projet de pilote installé sur l’ordinateur de test à distance. Il s'agit de l'option par défaut.
Liste des pilotes
Spécifie le pilote ou la liste des pilotes que le vérificateur de pilotes vérifie sur l’ordinateur de test distant. Par exemple, vous pouvez répertorier tous les pilotes associés à un appareil 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, Driver Verifier applique un ensemble de règles d’interface de pilote de périphérique (DDI) qui case activée pour l’interaction appropriée entre un pilote et l’interface du noyau du système d’exploitation.
-
Lorsque cette option est active, driver Verifier surveille l’utilisation par le pilote des verrous de rotation, des mutex et des mutex rapides. Cela détecte si le code du pilote est susceptible de provoquer un blocage à un moment donné.
-
Lorsque cette option est active, driver verifier surveille l’utilisation par le pilote des routines d’accès direct à la mémoire (DMA). Cela détecte une utilisation incorrecte des mémoires tampons, des adaptateurs et des registres de carte DMA.
-
Lorsque cette option est active, driver Verifier exerce une pression mémoire extrême sur le pilote en invalidant le code paginable. Si le pilote tente d’accéder à la mémoire paginée à un IRQL incorrect ou en tenant un verrou de rotation, 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’E/S et effectue des tests de contrainte des IIP Plug-and-Play (PnP), des IRP d’alimentation et des IIP WMI.
-
Lorsque cette option est active, Driver Verifier recherche les causes courantes des blocages 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 lors du déchargement. Cela révèle des fuites de mémoire.
-
Lorsque cette option est active, Driver Verifier recherche les erreurs courantes qui peuvent entraîner des vulnérabilités de sécurité, telles qu’une référence aux adresses en mode utilisateur par des routines en mode noyau.
-
Lorsque cette option est active, driver verifier 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-exécutions de mémoire et la mémoire accessible après sa libération.
Paramètres spécifiques au scénario de vérificateur de pilote
Simulation de ressources faibles
Lorsque cette option est active, Driver Verifier échoue de manière aléatoire aux demandes d’allocation de pool et autres demandes de ressources. En injectant ces erreurs d’allocation dans le système, Driver Verifier 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, Driver Verifier teste la réponse du pilote à STATUS_PENDING valeurs de retour en retournant STATUS_PENDING pour les appels aléatoires à IoCallDriver.
-
Lorsque cette option est active, driver Verifier surveille l’utilisation par un pilote des IRPs et crée un journal de l’utilisation d’IRP.
Vérification MDL invariante pour stack (Windows 8)
L’option Invariant MDL Checking for Stack surveille la façon dont le pilote gère les mémoires tampons MDL invariantes sur la pile de pilotes. Le vérificateur de pilotes peut détecter la modification illégale de 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 Invariant MDL Checking for Driver surveille la façon dont le pilote gère les mémoires tampons MDL invariantes sur une base par pilote. Cette option détecte la modification illégale des tampons MDL invariants. Pour utiliser cette option, vous devez activer la vérification des E/S sur au moins un pilote.
Fuzzing différé de Power Framework (Windows 8)
Lorsque cette option est active, Driver Verifier aléatoire les planifications de thread pour aider à éliminer les erreurs d’accès concurrentiel dans le pilote.
Injection de défaillance basée sur la pile (Windows 8)
L’option Stack Based Failure Injection injecte les échecs de ressources dans les pilotes en mode noyau. Cette option utilise un pilote spécial, KmAutoFail.sys, conjointement avec Driver Verifier pour pénétrer les chemins de gestion des erreurs du pilote.
Note Vous ne pouvez pas combiner l’injection d’échec basée sur la pile avec la simulation de ressources faibles.
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 stack
- Vérification MDL invariante pour le pilote