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.
L’option de vérification des MDL invariants pour la pile de pilotes surveille la façon dont le pilote gère les mémoires tampons MDL invariants dans la pile de 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.
Note Cette option est disponible à partir de Windows 8.
L’option De vérification MDL invariante de la pile garantit que les pilotes respectent les règles pour les mémoires tampons MDL invariantes uniquement au moment où la requête quitte la pile des pilotes.
La première fois qu’un IRP avec MDL invariant est vu dans la routine IoCallDriver , une signature unique est calculée à partir du contenu de la mémoire tampon MDL invariante et stockée dans une base de données interne. Lors de l’achèvement de l’IRP dans la routine IoCompleteRequest , si l’IRP comporte toujours un MDL invariant pour lequel nous avons enregistré la signature, Driver Validater vérifie que la mémoire tampon n’a pas changé.
Une mémoire tampon invariante, pour la demande d’écriture, ne peut pas être modifiée tout au long de la durée de vie de l’IRP. Pour une demande de lecture, une mémoire tampon invariante ne peut pas être modifiée sur son chemin de répartition. Par conséquent, la comparaison de la signature de mémoire tampon est effectuée au dernier appel à IoCallDriver.
L’option Vérification de l’invariance du MDL dans la pile vérifie l’invariance du buffer MDL dans l’ensemble de la pile des pilotes, sans se soucier de ce qui arrive au buffer lorsqu’il passe par les pilotes individuels dans la pile. Cette option est globale et ne peut pas être appliquée de manière sélective par pilote. L’option de Vérification MDL Invariante pour la pile peut seulement intercepter la violation, sans être en mesure d’identifier le pilote qui a violé l’invariance de la mémoire tampon. Pour identifier le pilote défectueux, utilisez l’option Invariant MDL Checking for Driver , qui effectue la validation de l’invariance du contenu de la mémoire tampon sur chaque appel aux DDIS IoCallDriver et IoCompleteRequest .
Activation de cette option
Vous pouvez activer la vérification MDL invariante pour la pile pour un ou plusieurs pilotes à l’aide du gestionnaire du vérificateur de pilotes ou de la ligne de commande Verifier.exe. Vous devez redémarrer l’ordinateur pour activer ou désactiver l’option Invariant MDL Checking for Stack. Pour plus d’informations, consultez Sélection des options du vérificateur de pilote.
Pour activer l’option de vérification de l'invariance MDL pour la pile, vous devez également activer la vérification des E/S.
Sur la ligne de commande
Sur la ligne de commande, la vérification MDL invariante de la pile est représentée par 0x00002000 (Bit 13). Pour activer la vérification MDL invariante pour la pile, utilisez une valeur d’indicateur de 0x00002010 ou ajoutez 0x00002010 à la valeur d’indicateur. Cette valeur active la vérification des E/S (0x10) et la vérification MDL invariante pour la pile (0x00002000). Par exemple:
verifier /flags 0x00002010 /driver MyDriver.sysLa fonctionnalité sera active après le démarrage suivant.
Utilisation du Gestionnaire du Vérificateur de Pilotes
- Démarrez le Gestionnaire du Vérificateur de pilotes. Tapez Verifier dans une fenêtre de l'invite de commandes.
- Sélectionnez Créer des paramètres personnalisés (pour les développeurs de code), puis cliquez sur Suivant.
- Sélectionnez Sélectionner des paramètres individuels dans une liste complète.
- Sélectionnez (vérifier) Vérification des E/S et Vérification MDL invariante pour la pile.
- Redémarrez l'ordinateur.