Compartir a través de


Comprobador de controladores: Novedades

El Comprobador de controladores está disponible en todas las versiones de Windows a partir de Windows 2000. Cada versión presenta nuevas características y comprueba si encuentra errores en los controladores de Windows. En esta sección se resumen los cambios y se proporcionan vínculos a documentación relacionada.

Comprobador de controladores en Windows 11 (actualizado: 30 de septiembre de 2021)

A partir de Windows 11, muchas marcas ahora están habilitadas sin reiniciar con una sintaxis de comando diferente a la sintaxis volátil. Consulte Sintaxis de comandos del comprobador de controladores para obtener más información sobre la nueva sintaxis.

Comprobador de controladores en Windows 10 (actualizado: 8 de mayo de 2018)

Importante

Para obtener información sobre cómo habilitar el comprobador de WDF en Windows 10, versión 1803 o versiones más recientes, consulte Uso del comprobador de KMDF.

  • Todavía puede habilitar la comprobación de WDF como parte de las marcas del Comprobador de /standard controladores. Para obtener más información, consulte Sintaxis de comandos del comprobador de controladores .
  • Este cambio le afectará si está habilitando DV con sintaxis /flags 0x209BB , ya que la comprobación de WDF ya no se habilitará automáticamente.

A partir de Windows 10, el comprobador de controladores incluye nuevas reglas de validación de controladores para las siguientes tecnologías:

Comprobador de controladores en Windows 8-1 (actualizado: 17 de junio de 2013)

A partir de Windows 8.1, el comprobador de controladores presenta cuatro nuevas opciones para detectar errores.

Comprobador de controladores en Windows 8 (actualizado: 20 de octubre de 2012)

A partir de Windows 8, el Comprobador de controladores presenta cinco nuevas opciones para detectar errores.

  • La opción Retraso de retraso de Power Framework inserta retrasos de ejecución aleatorios para ayudar a detectar errores de simultaneidad en los controladores que usan el marco de administración de energía (PoFx). Los retrasos de ejecución tienen límites de tiempo superior. Esta opción no se recomienda para los controladores que no utilicen directamente el marco de administración de energía (PoFx).
  • La opción de comprobación de cumplimiento de DDI aplica las mismas reglas de uso de la interfaz de controlador de dispositivo (DDI) que usa el comprobador de controladores estáticos para comprobar que el controlador realiza llamadas de función en el IRQL necesario para la función. La comprobación de cumplimiento de DDI se ejecuta como parte de las opciones estándar del Comprobador de controladores.
  • La opción Comprobación de MDL invariable para pila supervisa cómo controla el controlador los búferes MDL invariables en la pila de controladores.
  • La opción Comprobación de MDL invariable para controlador supervisa cómo el controlador controla los búferes MDL invariables por controlador.
  • La opción Inserción de errores basada en pila inserta errores de asignación de recursos en controladores de modo kernel.

Al compilar, implementar y probar el controlador mediante Visual Studio 2012 y WDK para Windows 8, también puede configurar el Comprobador de controladores para que se ejecute en un equipo de prueba al implementar el controlador para realizar pruebas.

Comprobador de controladores en Windows 7 (actualizado: 22 de octubre de 2012)

Para Windows 7, el Comprobador de controladores se ha mejorado con nuevas pruebas y características que permiten al Comprobador de controladores exponer más clases de errores de controladores típicos.

  • Referencias incorrectas a identificadores de usuario de controladores de kernel
  • Mejoras en la comprobación de E/S
  • Mejoras especiales de simulación de grupo, seguimiento de grupos y recursos bajos
  • Uso incorrecto de mecanismos de sincronización
  • Referencias de objeto incorrectas
  • Cargos de cuota de grupo de la rutina DPC
  • Bloqueos o retrasos del apagado del sistema
  • Solicitudes de E/S pendientes de fuerza mejoradas

En Windows 7, el Comprobador de controladores proporciona comprobaciones de bloqueos de número en cola, estas comprobaciones se asemejan a las proporcionadas para los bloqueos de número en versiones anteriores de Windows. Estas comprobaciones incluyen lo siguiente:

  • Comprobar que una operación que debe elevar el valor de nivel de solicitud de interrupción (IRQL), como KeAcquireInStackQueuedSpinLock, no reduce realmente el valor irQL.

  • Comprobar que una operación que debe reducir el valor IRQL, como KeReleaseInStackQueuedSpinLock, no genera realmente el valor IRQL.

  • Recorte del conjunto de trabajo del proceso del sistema si la opción Forzar comprobación irQL está habilitada, cuando se genera irQL a DISPATCH_LEVEL o superior, en un intento de exponer posibles referencias a la memoria paginable mientras el controlador se ejecuta en IRQL con privilegios elevados.

  • Predicción de posibles interbloqueos cuando está habilitada la opción Detección de interbloqueos.

  • Intentando usar la misma estructura de datos KSPIN_LOCK tanto como un bloqueo de número y como un bloqueo de número en cola de pila cuando la opción Detección de interbloqueos está habilitada.

  • La comprobación de valores de puntero obviamente incorrectos, como una dirección virtual en modo de usuario que se usa como una dirección de bloqueo de número.

  • Registro de transiciones irQL en el registro irQL del comprobador de controladores. Esta información aparece cuando se usa la extensión !verifier 8 de los depuradores de Windows. Consulte !comprobador.

Información adicional de depuración

En Windows 7, el Comprobador de controladores proporciona la siguiente información adicional que resulta útil para la depuración:

Hay un registro con seguimientos de pila en orden cronológico para las llamadas recientes a KeEnterCriticalRegion y KeLeaveCriticalRegion desde controladores comprobados. El contenido del registro se muestra mediante la extensión !comprobador 0x200 depurador de los depuradores de Windows. Esta información puede ser útil para comprender los escenarios en los que un subproceso se ejecuta inesperadamente en una región crítica o está intentando dejar una región crítica que ya ha dejado.

Puede mostrar información adicional en el registro de solicitudes de E/ S forzadas pendientes mediante la extensión !comprobador 0x40 depurador. En versiones anteriores de Windows, el registro contenía solo un seguimiento de pila para cada IRP que el comprobador de controladores obligó a estar pendiente. Este era el seguimiento de la pila desde el momento en que se llamó a IoCompleteRequest por primera vez para el IRP pendiente forzado. Windows 7 tiene al menos dos entradas de registro, posiblemente más de dos, para cada IRP pendiente forzado:

  • Seguimiento de pila en el momento en que el Comprobador de controladores ha seleccionado el IRP que se va a forzar pendiente. El comprobador de controladores elige algunos de los IRP que se van a forzar cuando uno de los controladores comprobados llama a IoCallDriver.
  • Seguimientos de pila para cada llamada ioCompleteRequest para el IRP pendiente forzado antes de que la finalización llegue al controlador comprobado. Puede existir más de una llamada a IoCompleteRequest para el mismo IRP porque uno de los controladores puede detener temporalmente la finalización de su rutina de finalización y, a continuación, reanudarla llamando a IoCompleteRequest de nuevo.

Hay seguimientos de pila más válidos en el registro de transición de IRQL. Este registro se muestra mediante !comprobador 8. En versiones de Windows anteriores a Windows 7, el Comprobador de controladores podría haber intentado registrar algunos de estos seguimientos de pila en IRQL con privilegios elevados y no pudo capturar el seguimiento de la pila debido al alto valor de IRQL. En Windows 7, el Comprobador de controladores intenta capturar estos seguimientos de pila:

  • Antes de generar irQL, por ejemplo, cuando un controlador comprobado llama a KeAcquireSpinLock.
  • Una vez que se reduce irQL, cuando un controlador comprobado llama a KeReleaseSpinLock.

De este modo, el Comprobador de controladores puede capturar más de estos seguimientos de la pila de transición de IRQL.

!analyze puede evaluar los problemas expuestos por las comprobaciones de comprobador de E/S mejoradas (que forman parte del comprobador de E/S en Windows 7). En versiones anteriores de Windows, el informe de errores del comprobador de E/S mejorado consistía en mostrar una descripción del defecto del controlador detectado por el Comprobador de controladores seguido de una interrupción en el depurador. La ejecución de !analyze después de este tipo de interrupción no da lugar a una evaluación de prioridades significativa para muchos de estos saltos porque !analyze no puede usar la información del texto de descripción del error que aparece en el depurador. En Windows 7, el comprobador de controladores guarda en memoria la información significativa sobre estos defectos del controlador. !analyze puede encontrar esta información y realizar una evaluación automática mucho más significativa para muchos de estos saltos.

Comprobador de controladores en Windows Vista (actualizado: 9 de febrero de 2009)

Para Windows Vista, el Comprobador de controladores se ha mejorado con nuevas pruebas y características.

  • Habilitar el comprobador de controladores y cambiar la configuración sin reiniciar
  • Simulación mejorada de recursos bajos
  • Forzar solicitudes de E/S pendientes
  • Comprobaciones de seguridad
  • Comprobación de E/S más exhaustiva
  • Comprobación mejorada de IRQL
  • Comprobaciones varias
  • Seguimiento de páginas de memoria bloqueada
  • Comprobaciones automáticas adicionales

Comprobador de controladores en Windows XP (actualizado: 4 de diciembre de 2001)

El Comprobador de controladores es una herramienta para supervisar controladores y controladores gráficos en modo kernel de Windows. Microsoft recomienda encarecidamente a los fabricantes de hardware probar sus controladores con comprobador de controladores para asegurarse de que los controladores no realizan llamadas de función ilegales o causan daños en el sistema. El Comprobador de controladores se ha mejorado con nuevas pruebas y características para Microsoft Windows XP.

Los controladores enviados a WHQL para pruebas deben pasar el Comprobador de controladores. Las nuevas características del Comprobador de controladores de Windows XP incluyen:

  • Driver Verifier Manager, una nueva interfaz gráfica de usuario (GUI) para verifier.exe
  • Nueva comprobación automática para la conmutación de pila de supervisión
  • Nuevas opciones del comprobador de controladores para la comprobación de DMA (también conocida como verificación HAL), detección de interbloqueo y comprobación SCSI
  • Cambios de verificación de E/S que combinan pruebas de "nivel 1" y "nivel 2", pruebas opcionales de comprobación de E/S mejoradas
  • Nuevas extensiones del depurador !interbloqueo y !dma
  • Nuevas comprobaciones de errores: 0xE6 (DRIVER_VERIFIER_DMA_VIOLATION) y 0xF1 (SCSI_VERIFIER_DETECTED_VIOLATION)
  • Códigos secundarios adicionales para los códigos de comprobación de errores existentes 0xC4 y 0xC9

Entre las características del Comprobador de controladores también se incluyen las siguientes:

  • Nuevas opciones de línea de comandos del comprobador La utilidad verifier.exe tiene un nuevo parámetro VolatileDriverList, que se puede usar con la palabra clave /adddriver para especificar una lista de controladores que se van a agregar a la configuración volátil. VolatileDriverList se puede usar con la palabra clave /removedriver para especificar una lista de controladores que se van a quitar.

  • Nuevas extensiones !comprobador Las nuevas extensiones !comprobador muestran información adicional de registro cuando la supervisión de recursos bajos o IRQL genera y activa bloqueos. La ayuda en línea también está disponible.

    • Las marcas establecidas con 0x4 hace que la pantalla incluya un registro de errores insertado por el comprobador de controladores durante la simulación de recursos bajos.
    • Las marcas establecidas con 0x8 hacen que la pantalla incluya un registro de los cambios IRQL más recientes realizados por los controladores que se están comprobando.
    • Si Flags es igual exactamente 0x4 o 0x8, el parámetro Quantity especifica el número de registros o entradas de registro que se van a incluir en la presentación.
    • El parámetro ? muestra un breve texto de ayuda
  • La Ayuda en línea para driver Verifier Manager Online Help for Driver Verifier Manager se puede mostrar de cualquiera de las siguientes maneras:

    • Seleccione y mantenga presionado (o haga clic con el botón derecho) un elemento en la ventana Administrador de comprobadores de controladores y elija ¿Qué es esto? en el menú emergente.
    • Seleccione el signo de interrogación (?) en la esquina superior derecha de la ventana y, a continuación, seleccione un elemento en la ventana Administrador de comprobadores de controladores.