Partager via


Options du Vérificateur de pilotes et classes de règles

Cette rubrique décrit les fonctionnalités optionnelles et les classes de règles du Vérificateur de pilotes. Veuillez consulter la section Paramètres standard pour la liste des options incluses lorsque vous utilisez les paramètres standard.

Remarque

Certains contrôles automatiques sont toujours effectués sur un pilote en cours de vérification, quelle que soit l’option sélectionnée. Si le pilote utilise la mémoire à un IRQL inapproprié, appelle ou libère de façon incorrecte les verrous tournants et les allocations de mémoire, change incorrectement de pile, ou libère la mémoire sans avoir d’abord supprimé les minuteries, le Vérificateur de pilotes détectera ce comportement. Lorsque le pilote est déchargé, le Vérificateur de pilotes vérifiera qu’il a correctement libéré ses ressources.

Activation des classes de règles avec /ruleclasses

À partir de Windows 10, version 17627 et ultérieures, vous pouvez activer des classes de règles avec la syntaxe suivante :

/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]

Notez que lors de l’activation de plusieurs classes (représentées par l’entier décimal positif ci-dessous), chaque entier doit être séparé par un espace.

Les descriptions de ces classes de règles se trouvent ci-dessous.

Classes de règles standard

Classe de règles ID décimal
Pool spécial 1
Forcer la vérification IRQL 2
Suivi du pool 4
Vérification des E/S 5
Détection de blocage 6
Vérification DMA 8
Vérifications de sécurité 9
Vérifications diverses 12
Vérification de la conformité DDI 18
Vérification WDF 34

Classes de règles supplémentaires

Ces classes de règles sont destinées aux tests de scénarios spécifiques. Les classes de règles marquées d’un (*) nécessitent la vérification E/S (5) qui sera automatiquement activée. Les indicateurs marqués de (**) prennent en charge la désactivation de règles individuelles.

Classe de règles ID décimal
Simulation aléatoire de faibles ressources 3
Forcer les demandes d’E/S en attente (*) 10
La journalisation IRP 11
Vérification MDL invariante pour stack (*) 14
Vérification MDL invariante pour le pilote (*) 15
Fuzzing différé de Power Framework 16
Vérification de l’interface port/miniport 17
Simulation systématique de ressources faibles 19
Vérification de conformité DDI (supplémentaire) 20
Fuzzing du délai de synchronisation du noyau 24
Vérification du commutateur de machine virtuelle 25
Vérifications de l’intégrité du code 26
Vérifications d’isolation du pilote (nécessite 36) 33
Vérification IRQL supplémentaire 35
Activer DIF 36

Descriptions des fonctionnalités optionnelles et des classes de règles

Pool spécial

Lorsque cette option est activée, 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, les sous-utilisations de mémoire et la mémoire accédée après sa libération.

Forcer la vérification IRQL

Lorsque cette option est activée, le Vérificateur de pilotes exerce une pression extrême sur la mémoire du 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.

Simulation de faibles ressources (appelée Simulation aléatoire de faibles ressources dans Windows 8.1)

Lorsque cette option est activée, le Vérificateur de pilotes échoue de manière aléatoire les demandes d’allocation de pool et d’autres demandes de ressources. En injectant ces défauts d’allocation dans le système, le Vérificateur de pilotes teste la capacité du pilote à gérer une situation de faible ressource.

Suivi du pool

Lorsque cette option est activée, le Vérificateur de pilotes vérifie si le pilote a libéré toutes ses allocations de mémoire lorsqu’il est déchargé. Cela permet de révéler des fuites de mémoire.

Vérification des E/S

Lorsque cette option est active, le Vérificateur de pilotes alloue les IRP du pilote à partir d’un pool spécial et surveille la gestion des E/S du pilote. Cela détecte une utilisation illégale ou incohérente des routines d’E/S.

Détection de blocage

Lorsque cette option est active, le Vérificateur de pilotes surveille l’utilisation des verrous tournants, mutex et mutex rapides par le pilote. Cela permet de détecter si le code du pilote pourrait provoquer un blocage à un moment donné.

Vérification améliorée des E/S

Lorsque cette option est active, le Vérificateur de pilotes surveille les appels de plusieurs routines du gestionnaire d’E/S et effectue des tests de résistance sur les IRP PnP, IRP d’alimentation et IRP WMI. Dans Windows 7 et les versions ultérieures du système d’exploitation Windows, toutes les fonctionnalités de la vérification améliorée des E/S sont incluses dans Vérification E/S et il n’est plus nécessaire de sélectionner cette option dans le Gestionnaire du Vérificateur de pilotes ou depuis la ligne de commande.

Vérification DMA

Lorsque cette option est active, le Vérificateur de pilotes surveille l’utilisation des routines DMA par le pilote. Cela permet de détecter une mauvaise utilisation des tampons DMA, des adaptateurs et des registres de mappage.

Vérifications de sécurité

(Windows Vista et versions ultérieures) Lorsque cette option est active, le Vérificateur de pilotes recherche des erreurs courantes pouvant entraîner des vulnérabilités de sécurité, telles qu’une référence à des adresses en mode utilisateur par des routines en mode noyau.

Vérifications diverses

(Windows Vista et versions ultérieures) Lorsque cette option est active, le Vérificateur de pilotes recherche les causes courantes de plantages de pilotes, telles que la mauvaise gestion de la mémoire libérée.

Forcer les demandes d’E/S en attente

(Windows Vista et versions ultérieures) Lorsque cette option est active, le Vérificateur de pilotes teste la réponse du pilote aux valeurs de retour STATUS_PENDING en retournant STATUS_PENDING pour des appels aléatoires à IoCallDriver.

Journalisation IRP

(Windows Server 2003 et versions ultérieures) Lorsque cette option est active, le Vérificateur de pilotes surveille l’utilisation des IRP par un pilote et crée un journal d’utilisation des IRP.

Vérification Storport

(Windows Vista et versions ultérieures) Lorsque cette option est active, le Vérificateur de pilotes surveille un pilote miniport Storport pour une mauvaise utilisation des routines exportées par Storport, des retards excessifs et une mauvaise gestion des requêtes Storport.

Fuzzing différé de Power Framework

(À partir de Windows 8) Lorsque cette option est active, le Vérificateur de pilotes randomise les plannings des threads pour aider à identifier les erreurs de concurrence dans les pilotes qui utilisent le framework de gestion d’alimentation (PoFx). Cette option n’est pas recommandée pour les pilotes qui n’utilisent pas directement le framework de gestion d’alimentation (PoFx).

Vérification de la conformité DDI

(À partir de Windows 8) Lorsque cette option est active, le Vérificateur de pilotes applique un ensemble de règles d’interface de pilotes de périphériques (DDI) qui vérifient l’interaction correcte entre un pilote et l’interface noyau du système d’exploitation.

Vérification MDL invariante pour stack

(À partir de Windows 8) L’option Vérification MDL invariante pour la pile surveille la manière dont le pilote gère les tampons MDL invariants à travers la pile de pilotes. Le Vérificateur de pilotes peut détecter une modification illégale des tampons MDL invariants. Pour utiliser cette option, la Vérification E/S doit être activée sur au moins un pilote.

Vérification MDL invariante pour le pilote

(À partir de Windows 8) L’option Vérification MDL invariante pour le pilote surveille la manière dont le pilote gère les tampons MDL invariants 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 E/S sur au moins un pilote.

Injection d’échec basée sur la pile

(Disponible uniquement avec Windows 8 et WDK 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 le Vérificateur de pilotes pour pénétrer les chemins de gestion des erreurs des pilotes.

Simulation systématique de ressources faibles

(À partir de Windows 8.1) L’option Simulation systématique de faibles ressources injecte des défaillances de ressources dans les pilotes en mode noyau.

Vérification NDIS/WIFI

(À partir de Windows 8.1) Lorsque cette option est active, le Vérificateur de pilotes applique un ensemble de règles NDIS et réseau sans fil (WIFI) qui vérifient l’interaction correcte entre un pilote miniport NDIS et le noyau du système d’exploitation.

Fuzzing du délai de synchronisation du noyau

(À partir de Windows 8.1) Cette option randomise les plannings de threads pour aider à détecter des bugs de concurrence dans les pilotes.

Vérification du commutateur de machine virtuelle

(À partir de Windows 8.1) Cette option surveille les pilotes de filtre (extensions de commutateur extensible) qui s’exécutent à l’intérieur du Commutateur extensible Hyper-V.

Vérification de l’interface Port/Miniport

La vérification de l’interface Port/Miniport permet au Vérificateur de pilotes d’inspecter l’interface DDI entre PortCls.sys et ses pilotes miniports audio, ainsi qu’entre ks.sys et ses pilotes miniports AVStream. Voir Règles pour les pilotes AVStream et Règles pour les pilotes audio.

Vérification de l’intégrité du code

Lors de l’utilisation de la sécurité basée sur la virtualisation pour isoler l’intégrité du code, la seule manière dont la mémoire noyau peut devenir exécutable est via une vérification de l’intégrité du code. Cela signifie que les pages de mémoire du noyau ne peuvent jamais être à la fois écrites et exécutables (W+X) et que le code exécutable ne peut pas être modifié directement. Les vérifications de l’intégrité du code garantissent la compatibilité de ces règles d’intégrité du code et détectent les violations.

Vérification par WDF

La vérification WDF vérifie si un pilote en mode noyau suit correctement les exigences du Kernel-Mode Driver Framework (KMDF).

Vérification IRQL supplémentaire

La vérification IRQL supplémentaire complète les règles de conformité DDI IRQL pour PASSIVE_LEVEL. Elle se compose de deux règles :

  • La règle IrqlIoRtlZwPassive spécifie que le pilote appelle les DDI répertoriés dans la règle uniquement lorsqu’il s’exécute à IRQL = PASSIVE_LEVEL.
  • La règle IrqlNtifsApcPassive spécifie que le pilote appelle les DDI répertoriés dans la règle uniquement lorsqu’il s’exécute à IRQL = PASSIVE_LEVEL ou à IRQL <= APC_LEVEL.

Vérifications d’isolement du pilote

Les vérifications d’isolement du pilote sont essentielles pour valider les exigences d’isolement du package de pilotes en temps réel dans Windows. Pour plus d’informations, consultez Premiers pas dans le développement de pilotes Windows. Les vérifications surveillent les lectures et écritures du registre qui ne sont pas autorisées pour les packages de pilotes isolés.

Paramètres standard

Options incluses dans les paramètres standard

Pool spécial

Forcer la vérification IRQL

Suivi du pool

Vérification des E/S

Détection de blocage

Vérification améliorée des E/S (Dans Windows 7 et versions ultérieures, cette option est automatiquement activée lorsque vous sélectionnez Vérification E/S)

Vérification DMA

Vérifications de sécurité

Contrôles divers (Windows Vista et les versions ultérieures)

Vérification de conformité DDI (À partir de Windows 8)

Options du Vérificateur de pilotes nécessitant la Vérification E/S

Il existe quatre options qui nécessitent que vous activiez d’abord la Vérification E/S. Si la Vérification E/S n’est pas activée, ces options ne sont pas activées.