Partager via


Journalisation IRP

La fonctionnalité de journalisation IRP du vérificateur de pilotes surveille l’utilisation des irps par un pilote et enregistre l’utilisation des IRP. Cet enregistrement est stocké sous forme d’informations WMI.

Le Kit de pilotes Windows (WDK) inclut l’outil DC2WMIParser (dc2wmiparser.exe) qui peut convertir cet enregistrement WMI en fichier texte.

Cette option de vérificateur de pilote est disponible uniquement dans Windows Server 2003 et versions ultérieures.

Enregistrement WMI

L’enregistrement WMI n’inclut pas plus de vingt IRPs pour chaque appareil. Une fois le vingt-et-unième IRP enregistré, le premier enregistrement IRP est remplacé. Ainsi, si l’enregistrement répertorie vingt IRP, ce sont toujours les vingt plus récents, mais il n’y a aucun moyen de savoir lequel d’entre eux est le plus récent.

Étant donné que l’enregistrement WMI est stocké en mémoire, il est effacé lors du redémarrage de l’ordinateur. Par conséquent, utilisez DC2WMIParser pour enregistrer ces informations dans un fichier.

Si vous utilisez l’option /t , DC2WMIParser s’exécute en continu pendant la durée spécifiée. Dans ce cas, l’enregistrement peut inclure plus de vingt IRP par appareil (jusqu’à vingt IRPs par période d’échantillonnage).

Activation de cette option

Vous pouvez activer la fonctionnalité de journalisation IRP pour un ou plusieurs pilotes à l’aide du Gestionnaire du vérificateur de pilotes ou de la ligne de commande Verifier.exe.

Pour activer la fonctionnalité de journalisation IRP, vous devez également activer la vérification des E/S.

  • Sur la ligne de commande

    Sur la ligne de commande, l’option De journalisation IRP est représentée par 0x400 (Bit 10).

    Pour activer la journalisation IRP, utilisez une valeur d’indicateur 0x410 ou ajoutez 0x410 à la valeur de l’indicateur. Cette valeur active la vérification des E/ S (0x10) et la journalisation IRP (0x400). Par exemple :

    verifier /flags 0x410 /driver MyDriver.sys
    

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

    Sur Windows Vista et les versions ultérieures de Windows, vous pouvez également activer et désactiver la journalisation IRP sans redémarrer l’ordinateur en ajoutant le paramètre /volatile à la commande. Par exemple :

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

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

  • Utilisation du Gestionnaire du vérificateur de pilotes

    1. Démarrez le Gestionnaire du vérificateur de pilotes. Tapez 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 Journalisation (case activée) IRP et Vérification des E/S.

DC2WMIParser

DC2WMIParser est un outil qui collecte les enregistrements IRP WMI créés par driver Verifier et convertit ce journal en fichier texte.

La syntaxe DC2WMIParser est la suivante :

dc2wmiparser [/f File] [/t Time]

Les paramètres ont la signification suivante :

Fichier /f
Spécifie le chemin complet et le nom de fichier du fichier journal à écrire. Les chemins d’accès relatifs sont pris par rapport au répertoire actif. Si cette valeur est omise, le nom de fichier dc2verifier.act dans le répertoire actif est utilisé.

/tHeure
Spécifie la durée, en minutes, pendant laquelle DC2WMIParser continuera à s’exécuter. Si l’heure est égale à zéro, DC2WMIParser enregistre toutes les informations IRP WMI qui ont déjà été stockées par le vérificateur de pilote, puis se ferme. Si time est défini sur une valeur positive, DC2WMIParser continue à s’exécuter pendant la durée spécifiée, en stockant les nouvelles informations à mesure qu’elles arrivent. La valeur par défaut est zéro.

Format des fichiers journaux DC2WMIParser

Le fichier généré par DC2WMIParser est un fichier texte ASCII.

La première ligne de ce fichier contient un nombre décimal qui représente le nombre d’appareils connectés dans le fichier.

Après la première ligne, le fichier est divisé en sections ; chaque section décrit un appareil.

Pour chaque appareil, le format est le suivant :

  • Sur une seule ligne : Nom de l’appareil.

  • Sur une seule ligne : Nombre décimal spécifiant le nombre de types d’appareils et de fonctions ciblés sur cet appareil.

  • Sur une ligne pour chaque type d’appareil et fonction : Trois nombres hexadécimaux, séparés par des virgules. Ils représentent le type d’appareil, ainsi que les fonctions les plus basses et les plus élevées enregistrées dans cet enregistrement.

  • Dans un groupe de lignes pour chaque type d’appareil et fonction :

    • Ligne unique avec un nombre décimal spécifiant le nombre d’IOCTL pour le type d’appareil actuel.
    • Une ligne pour chaque IOCTL. Chacune de ces lignes contient six nombres hexadécimaux séparés par des virgules. Ils spécifient le type d’appareil, la fonction, la méthode, l’accès, la longueur de la mémoire tampon d’entrée et la longueur de la mémoire tampon de sortie.

Voici un exemple de fichier journal DC2WMIParser. Dans un fichier réel, il n’y aura pas d’espaces, de commentaires ou de lignes vides, mais ceux-ci ont été ajoutés à cet exemple pour le rendre plus clair.

2           There are two devices described by this log file.

The first device begins here:

  DP(1)0x7e00-0x21dbda400+3   Device name of the first device
  2                           Number of device type IOCTLs targeted at this device

    7,12,12                     First targeted device: device type 7, low function 12, high function 12
    2d,420,420                  Second targeted device: device type 2d, low function 420, high function 420

    1                           Number of IOCTLs for first targeted  device (type 7)
      7,12,0,0,90,0               Device type 7, function 12, method 0, access 0, inbuflen 90, outbuflen 0
    1                           Number of IOCTLs for second targeted device (type 2d)
      2d,420,0,0,c,0              Device type 2d, function 420, method 0, access 0, inbuflen c, outbuflen 0

The second device begins here:

  DP(1)0x7e00-0x21dbda400+2   Device name of the second device
  2                           Number of device type IOCTLs targeted at this device

    7,12,12                     First targeted device: device type 7, low function 12, high function 12
    2d,420,420                  Second targeted device: device type 2d, low function 420, high function 420


    1                           Number of IOCTLs for first targeted  device (type 7)
      7,12,0,0,90,0               Device type 7, function 12, method 0, access 0, inbuflen 90, outbuflen 0
    1                           Number of IOCTLs for second targeted device (type 2d)
      2d,420,0,0,c,0              Device type 2d, function 420, method 0, access 0, inbuflen c, outbuflen 0