Registro de IRP

La característica De registro IRP del Comprobador de controladores supervisa el uso de irP de un controlador y hace un registro del uso de IRP. Este registro se almacena como información de WMI.

El Kit de controladores de Windows (WDK) incluye la herramienta DC2WMIParser (dc2wmiparser.exe) que puede convertir este registro WMI en un archivo de texto.

Esta opción de comprobador de controladores solo está disponible en Windows Server 2003 y versiones posteriores.

Registro WMI

El registro WMI no incluirá más de veinte IRP para cada dispositivo. Una vez que se registra el PRIMER IRP, se reemplaza el primer registro IRP. Por lo tanto, si el registro enumera veinte IRP, estos siempre son los veinte más recientes, pero no hay forma de saber cuál de estos es el más reciente.

Puesto que el registro WMI se almacena en la memoria, se borrará cuando se reinicie el equipo. Por lo tanto, use DC2WMIParser para guardar esta información en un archivo.

Si usa la opción /t , DC2WMIParser se ejecutará continuamente durante la duración especificada. En esta situación, el registro puede incluir más de veinte IRP por dispositivo (hasta veinte IRP en cada período de muestreo).

Activación de esta opción

Puede activar la característica de registro irP para uno o varios controladores mediante el Administrador de comprobadores de controladores o la línea de comandos de Verifier.exe.

Para activar la característica de registro irP, también debe activar la verificación de E/S.

  • En la línea de comandos

    En la línea de comandos, la opción Registro irP se representa mediante 0x400 (bit 10).

    Para activar el registro irP, use un valor de marca de 0x410 o agregue 0x410 al valor de marca. Este valor activa la verificación de E/S (0x10) y el registro de IRP (0x400). Por ejemplo:

    verifier /flags 0x410 /driver MyDriver.sys
    

    La característica estará activa después del siguiente arranque.

    En Windows Vista y versiones posteriores de Windows, también puede activar y desactivar el registro irP sin reiniciar el equipo agregando el parámetro /volatile al comando. Por ejemplo:

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

    Esta configuración es efectiva inmediatamente, pero se pierde al apagar o reiniciar el equipo. Para obtener más información, consulte Uso de la configuración volátil.

  • Uso del Administrador de comprobadores de controladores

    1. Inicie el Administrador de comprobadores de controladores. Escriba Comprobador en una ventana del símbolo del sistema.
    2. Seleccione Crear configuración personalizada (para desarrolladores de código) y haga clic en Siguiente.
    3. Seleccione Seleccionar configuración individual en una lista completa.
    4. Seleccione (comprobar) Registro irP y comprobación de E/S.

DC2WMIParser

DC2WMIParser es una herramienta que recopila los registros IRP de WMI creados por el Comprobador de controladores y convierte este registro en un archivo de texto.

La sintaxis dc2WMIParser es la siguiente:

dc2wmiparser [/f File] [/t Time]

El significado de estos parámetros es el siguiente:

/fFile
Especifica la ruta de acceso completa y el nombre de archivo del archivo de registro que se va a escribir. Las rutas de acceso relativas se realizarán en relación con el directorio actual. Si se omite, se usará el nombre de archivo dc2verifier.act en el directorio actual.

/tTime
Especifica el período de tiempo, en minutos, que DC2WMIParser seguirá ejecutándose. Si Time es igual a cero, DC2WMIParser registrará toda la información de IRP de WMI que ya ha almacenado el Comprobador de controladores y, a continuación, se cerrará. Si Time se establece en un valor positivo, DC2WMIParser seguirá ejecutándose durante el período de tiempo especificado, almacenando la nueva información a medida que llega. El valor predeterminado es cero.

Formato de los archivos de registro dc2WMIParser

El archivo generado por DC2WMIParser es un archivo de texto ASCII.

La primera línea de este archivo contiene un número decimal que representa el número de dispositivos registrados en el archivo.

Después de la primera línea, el archivo se divide en secciones; cada sección describe un dispositivo.

Para cada dispositivo, el formato es:

  • En una sola línea: Nombre del dispositivo.

  • En una sola línea: Número decimal que especifica cuántos tipos de dispositivo y funciones se destinan a este dispositivo.

  • En una línea para cada tipo de dispositivo y función: Tres números hexadecimales, separados por comas. Representan el tipo de dispositivo y las funciones más bajas y más altas que se registraron en este registro.

  • En un grupo de líneas para cada tipo de dispositivo y función:

    • Una sola línea con un número decimal que especifica el recuento de ITL para el tipo de dispositivo actual.
    • Una línea para cada IOCTL. Cada una de estas líneas contiene seis números hexadecimales separados por comas. Especifican el tipo de dispositivo, la función, el método, el acceso, la longitud del búfer de entrada y la longitud del búfer de salida.

Este es un archivo de registro DC2WMIParser de ejemplo. En un archivo real no habrá espacios, comentarios o líneas en blanco, pero se han agregado a este ejemplo para que quede más claro.

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