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

Cette fonctionnalité est disponible uniquement dans Windows XP et les versions ultérieures du système d’exploitation Windows.

Dans Windows 7 et versions ultérieures du système d’exploitation Windows, la vérification améliorée des E/S est automatiquement activée lorsque vous sélectionnez Vérification d’E/S. Il n’est pas disponible ou nécessaire pour le sélectionner en tant qu’option distincte.

Lorsque la vérification d’E/S améliorée est activée, le vérificateur de pilotes surveille les appels de plusieurs routines du Gestionnaire d’E/S et effectue des tests de contrainte des IRP PnP, des IRP d’alimentation et des fournisseurs d’intégration WMI.

Dans Windows Vista et Windows XP, la vérification améliorée des E/S est activée indépendamment de la vérification des E/S, mais la sélection des deux options fournit un test plus complet des méthodes d’interface d’E/S dans un pilote.

Fonctionnalités de la vérification améliorée des E/S

Le vérificateur de pilotes ajoute les vérifications suivantes lorsque vous activez la vérification améliorée des E/S.

  • Surveille tous les irps pour vous assurer que le pilote retourne STATUS_PENDING si et seulement s’il a appelé IoMarkIrpPending.

  • Surveille l’utilisation d’IoDeleteDevice pour vérifier que le pilote ne supprime plus le même appareil qu’une fois et pour détecter le détachement et la suppression inappropriés d’objets d’appareil.

  • Vérifie que le pilote décompresse correctement tous les appels IoSkipCurrentIrpStackLocation.

Les nouveaux stress et tests sont les suivants :

  • Brouiller l’ordre des appareils énumérés pour s’assurer que les pilotes Plug-and-Play (PnP) ne font pas d’hypothèses sur l’ordre de démarrage de l’appareil.

  • Ajustement de l’état de PnP et de Power IRPs lorsqu’ils se terminent pour intercepter les pilotes qui retournent un état incorrect à partir de leurs routines de distribution.

  • Envoi de faux RUNTIME d’intégration power pour tester les bogues de chemin d’accès au code du pilote.

  • Envoi de faux runtimes d’intégration WMI pour tester les bogues de chemin d’accès au code du pilote.

  • Insertion d’un faux filtre dans chaque pile WDM.

Affichage des erreurs de vérification d’E/S améliorées

Les erreurs de pilote interceptées par la vérification d’E/S améliorée s’affichent de la même manière que celles interceptées par la vérification d’E/S de niveau 2.

Sur l’écran bleu, ces erreurs sont notées par le message IO SYSTEM VERIFICATION ERROR et la chaîne WDM DRIVER ERROR XXX, où XXX est un code d’erreur d’E/S.

Dans un fichier de vidage sur incident, ces erreurs sont notées par le message BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION), ainsi que le code d’erreur d’E/S. Dans ce cas, le code d’erreur d’E/S apparaît comme le premier paramètre de la vérification des bogues 0xC9.

Dans un débogueur de noyau (KD ou WinDbg), ces erreurs sont notées par le message WDM DRIVER ERROR et une chaîne de texte descriptive. Lorsque le débogueur du noyau est actif, il est possible d’ignorer les erreurs de niveau 2 et de reprendre l’opération système. (Cela n’est pas possible avec d’autres vérifications de bogues.)

L’écran bleu, le fichier de vidage sur incident et le débogueur du noyau affichent également des informations supplémentaires. Pour obtenir une description complète de tous les messages d’erreur de niveau d’E/S 2, consultez vérification des bogues 0xC9.

Activation de cette option

Vous pouvez activer la fonctionnalité de vérification d’E/S améliorée pour un ou plusieurs pilotes à l’aide du Gestionnaire du vérificateur de pilotes ou de la ligne de commande Verifier.exe. Pour plus d’informations, consultez Sélection des options du vérificateur de pilote.

Remarque Dans Windows 7 et versions ultérieures du système d’exploitation Windows, la vérification améliorée des E/S est automatiquement activée lorsque vous sélectionnez Vérification des E/S. Il n’est pas disponible ou nécessaire pour le sélectionner en tant qu’option distincte.

  • Sur la ligne de commande

    Sur la ligne de commande, l’option Vérification d’E/S améliorée est représentée par Bit 6 (0x40). Pour activer la vérification améliorée des E/S, utilisez une valeur d’indicateur de 0x40 ou ajoutez 0x40 à la valeur de l’indicateur. Par exemple :

    verifier /flags 0x40 /driver MyDriver.sys
    

    La fonctionnalité sera active après le démarrage suivant.

    Sur Windows Vista et les versions ultérieures de Windows, vous pouvez également activer et désactiver la vérification améliorée des E/S sans redémarrer l’ordinateur en ajoutant le paramètre /volatile à la commande. Par exemple :

    verifier /volatile /flags 0x40 /adddriver MyDriver.sys
    

    Ce paramètre est effectif immédiatement, mais est perdu lorsque vous arrêtez ou redémarrez l’ordinateur. Pour plus d’informations, consultez Utilisation des paramètres volatiles.

  • Utilisation du Gestionnaire du vérificateur de pilotes

    1. Démarrez le Gestionnaire du vérificateur de pilote. Tapez Le vérificateur dans une fenêtre d’invite de commandes.
    2. Sélectionnez Créer des paramètres personnalisés (pour les développeurs de code), puis cliquez sur Suivant.
    3. Sélectionnez Sélectionner des paramètres individuels dans une liste complète.
    4. Sélectionnez (vérifier) Vérification améliorée des E/S.

    La fonctionnalité vérification DMA est également incluse dans les paramètres standard. Pour utiliser cette fonctionnalité, dans le Gestionnaire du vérificateur de pilotes, cliquez sur Créer des paramètres standard.