Comprobador de controladores

El Comprobador de controladores supervisa los controladores del modo kernel de Windows y los controladores gráficos para detectar llamadas o acciones de función no válidas que podrían dañar el sistema. El Comprobador de controladores puede someter los controladores de Windows a una variedad de esfuerzos y pruebas para encontrar un comportamiento incorrecto. Puede configurar las pruebas que se van a ejecutar, lo que le permite someter a un controlador a cargas de esfuerzo pesadas o a pruebas más simplificadas. También puede ejecutar el Controlador de controladores en varios controladores simultáneamente o en un controlador a la vez.

Precaución

  • La ejecución del comprobador de controladores podría provocar que el equipo se bloquee.
  • Solo debe ejecutar Driver Verifier en equipos que esté usando para probar y depurar.
  • Debe estar en el grupo Administradores del equipo para usar el Comprobador de controladores.

¿Dónde puedo descargar Driver Verifier?

No es necesario descargar driver Verifier, ya que se incluye con la mayoría de las versiones de Windows en %WinDir%\system32\ como Verifier.exe. (El comprobador de controladores no se incluye con Windows 10 S, por lo que se recomienda probar el comportamiento del controlador en Windows 10 en su lugar). El comprobador de controladores no se distribuye por separado como un paquete de descarga.

Para obtener información sobre los cambios en el Comprobador de controladores para Windows 10 y versiones anteriores de Windows, vea Comprobador de controladores: Novedades.

Cuándo usar el comprobador de controladores

Ejecute Driver Verifier en todo el desarrollo y las pruebas del controlador. Más concretamente, use el Comprobador de controladores para los siguientes fines:

  • Para encontrar problemas al principio del ciclo de desarrollo, cuando son más fáciles y menos costosos de corregir.

  • Para solucionar problemas y depurar errores de prueba y bloqueos del equipo.

  • Para supervisar el comportamiento al implementar un controlador para realizar pruebas mediante WDK, Visual Studio y las pruebas del Kit de laboratorio de hardware de Windows (Windows HLK) o el Kit de certificación de hardware de Windows (para Windows 8.1). Para obtener más información sobre las pruebas de controladores, consulte Prueba de un controlador.

Inicio del comprobador de controladores

Solo debe ejecutar Driver Verifier en equipos de prueba o en equipos que está probando y depurando. Para obtener la mayor ventaja de Driver Verifier, debe usar un depurador de kernel y conectarse al equipo de prueba. Para obtener más información sobre las herramientas de depuración, vea Herramientas de depuración para Windows (WinDbg, KD, CDB, NTSD).

  1. Para iniciar una ventana del símbolo del sistema , seleccione Ejecutar como administrador y escriba comprobador para abrir el Administrador de comprobadores de controladores.

  2. Seleccione Crear configuración estándar (la tarea predeterminada) y seleccione Siguiente.

    También puede elegir Crear configuración personalizada para seleccionar entre opciones predefinidas o para seleccionar opciones individuales. Para obtener más información, vea Opciones del comprobador de controladores y clases de reglas y Seleccionar opciones del comprobador de controladores.

  3. En Seleccionar qué controladores comprobar, elija uno de los esquemas de selección descritos en la tabla siguiente.

    Opción Uso recomendado
    Selección automática de controladores sin firmar

    Resulta útil para las pruebas en equipos que ejecutan versiones de Windows que no requieren controladores firmados.

    Selección automática de controladores creados para versiones anteriores de Windows

    Resulta útil para probar la compatibilidad de controladores con versiones más recientes de Windows.

    Seleccione automáticamente todos los controladores instalados en este equipo.

    Proporciona cobertura máxima en términos del número de controladores que se prueban en un sistema. Esta opción es útil para escenarios de prueba en los que un controlador puede interactuar con otros dispositivos o controladores en un sistema.

    Esta opción también puede agotar los recursos disponibles para el grupo especial y algunos seguimientos de recursos. La prueba de todos los controladores también puede afectar negativamente al rendimiento del sistema.

    Selección de nombres de controladores de una lista

    En la mayoría de los casos, querrá especificar qué controladores se van a probar.

    La selección de todos los controladores de una pila de dispositivos permite que la opción Comprobación de E /S mejorada realice un seguimiento de objetos y compruebe el cumplimiento porque se pasa un paquete de solicitud de E/S (IRP) entre cada uno de los controladores de la pila, lo que permite proporcionar un mayor nivel de detalle cuando se detecta un error.

    Seleccione un solo controlador si está ejecutando un escenario de prueba que mide las métricas de rendimiento del sistema o del controlador, o si desea asignar el mayor número de recursos disponibles para detectar problemas de daños en la memoria o seguimiento de recursos (como interbloqueos o exclusión mutua). Las opciones de verificación de E / S y grupo especial son más eficaces cuando se usan en un controlador a la vez.

  4. Si eligió Seleccionar nombres de controladores de una lista, seleccione Siguiente y, a continuación, seleccione uno o varios controladores específicos.

  5. Seleccione Finalizar y reinicie el equipo.

Nota

Al usar el comprobador de controladores con las versiones de Windows 20150 a 25126, si ha seleccionado ntoskrnl , puede recibir un error de estado no válido.
Para evitar este problema, anule la selección de ntoskrnl o actualice a una versión de Windows después de la compilación 25126.

Ejecución del comprobador de controladores en un símbolo del sistema

También puede ejecutar Driver Verifier en una ventana del símbolo del sistema sin iniciar el Administrador del comprobador de controladores. Por ejemplo, para ejecutar Driver Verifier con la configuración estándar en un controlador denominado myDriver.sys, usaría el siguiente comando:

verifier /standard /driver myDriver.sys

Para obtener más información sobre las opciones de la línea de comandos, vea Driver Verifier Command Syntax.

Cómo controlar el comprobador de controladores

Puede usar el Administrador de comprobadores de controladores o una línea de comandos para controlar el Comprobador de controladores. Para iniciar el Administrador del comprobador de controladores, consulte Cómo iniciar el comprobador de controladores, anteriormente en este tema.

Para cada una de las siguientes acciones, puede usar el Administrador de comprobadores de controladores o escribir una línea de comandos.

Para detener o restablecer el comprobador del controlador

  1. En Administrador del comprobador de controladores, seleccione Eliminar configuración existente y, a continuación, seleccione Finalizar.

    o

    En un símbolo del sistema, escriba el siguiente comando:

    verifier /reset
    
  2. Reinicie el equipo.

Para ver las estadísticas del comprobador de controladores

En Administrador del comprobador de controladores, seleccione Mostrar información sobre los controladores comprobados actualmente y, a continuación, seleccione Siguiente. Al continuar seleccionando Siguiente se muestra información adicional.

o

En un símbolo del sistema, escriba el siguiente comando:

verifier /query

Para ver la configuración del comprobador de controladores

En Administrador del comprobador de controladores, seleccione Mostrar la configuración existente y, a continuación, seleccione Siguiente.

o

En un símbolo del sistema, escriba el siguiente comando:

verifier /querysettings

Depuración de infracciones del comprobador de controladores

Para obtener la mayor ventaja de Driver Verifier, debe usar un depurador de kernel y conectarlo al equipo de prueba. Para obtener información general sobre las herramientas de depuración para Windows, consulte Herramientas de depuración para Windows (WinDbg, KD, CDB, NTSD).

Si el comprobador de controladores detecta una infracción, genera una comprobación de errores para detener el equipo. Esto es para proporcionarle la mayor información posible para depurar el problema. Cuando tiene un depurador de kernel conectado a un equipo de prueba que ejecuta el Comprobador de controladores y comprobador de controladores detecta una infracción, Windows entra en el depurador y muestra una breve descripción del error.

Todas las infracciones detectadas por el Comprobador de controladores generan comprobaciones de errores. Normalmente se trata de un 0xC4 de comprobación de errores. Para obtener más información, vea Depurar comprobación de errores 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION y comprobación de errores 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.

Otros códigos de comprobación de errores comunes son los siguientes:

Para obtener más información, consulte Control de una comprobación de errores cuando el comprobador de controladores está habilitado.

Al iniciar una nueva sesión de depuración, use el comando de extensión del depurador, !analyze. En el modo kernel, el comando !analyze muestra información sobre la comprobación de errores más reciente. Para mostrar información adicional , para ayudar a identificar el controlador con errores, agregue la opción -v al comando en el símbolo del sistema kd> :

kd> !analyze -v

Además de !analyze, puede escribir las siguientes extensiones del depurador en el símbolo del sistema kd> para ver información específica del Comprobador de controladores:

  • !verifier volcados capturados estadísticas del comprobador de controladores. Use !comprobador -? para mostrar todas las opciones disponibles.

    kd> !verifier
    
  • !interbloqueo muestra información relacionada con bloqueos o objetos de los que realiza el seguimiento de la característica de detección de interbloqueos del comprobador de controladores. Use !deadlock -? para mostrar todas las opciones disponibles.

    kd> !deadlock
    
  • !iovirp [dirección] muestra información relacionada con un IRP seguido por comprobador de E/S. Por ejemplo:

    kd> !iovirp 947cef68
    
  • Busque la regla de comprobación de cumplimiento de DDI que se ha infringido. (RuleID siempre es el primer argumento para la comprobación de errores). Todos los identificadores de regla de la comprobación de cumplimiento de DDI están en el formulario 0x200nn.

Opciones del comprobador de controladores

Sintaxis de comandos del comprobador de controladores

Uso del comprobador de controladores

Control del Comprobador de controladores

Comprobación de cumplimiento de DDI