Comprobador de controladores estático

El comprobador de controladores estáticos (también conocido como "StaticDV" o "SDV") es una herramienta de comprobación estática que analiza sistemáticamente el código fuente de los controladores en modo kernel de Windows. SDV es una herramienta en tiempo de compilación capaz de detectar defectos y problemas de diseño en un controlador. En función de un conjunto de reglas de interfaz y un modelo del sistema operativo, SDV determina si el controlador interactúa correctamente con el kernel del sistema operativo Windows.

Importante

El Programa de compatibilidad de hardware de Windows requiere codeQL para pruebas de logotipo de herramientas estáticas (STL) en nuestros sistemas operativos cliente y servidor. Seguiremos manteniendo la compatibilidad con SDV y CA en productos más antiguos. Se recomienda encarecidamente a los asociados revisar los requisitos de CodeQL para la prueba de logotipo de herramientas estáticas. Para obtener más información sobre el uso de CodeQL, consulte CodeQL y la prueba de logotipo de herramientas estáticas.

Instalación del comprobador de controladores estáticos

El Comprobador de controladores estáticos está disponible como parte del Kit de controladores de Windows (WDK) en la experiencia completa de WDK y en el WDK enterprise independiente. Además, los paquetes redistribuibles de Visual C++ para Visual Studio son necesarios para que se ejecute SDV. Vea lo siguiente:

Para las versiones de SDV disponibles en WDK para Windows 10, versión 1809 o versiones anteriores, los paquetes redistribuibles de Visual C++ para Visual Studio 2012 deben instalarse en lugar de los paquetes 2017.

Integración de Visual Studio

El comprobador de controladores estáticos está integrado en Visual Studio. Puede ejecutar análisis estáticos en el proyecto de controlador de Visual Studio. Puede iniciar, configurar y controlar el Comprobador de controladores estáticos desde el menú Controlador de Visual Studio.

Documentación del comprobador de controladores estáticos

  • Problemas conocidos del comprobador de controladores estáticos: enumera los problemas conocidos más recientes para el comprobador de controladores estáticos
  • Uso del comprobador de controladores estáticos para buscar defectos en controladores: indica lo que necesita para empezar a analizar el código del controlador en el entorno de Visual Studio.
  • Comandos del comprobador de controladores estáticos (MSBuild): muestra los comandos de MSBuild que se usarán para ejecutar SDV en una ventana del símbolo del sistema de Visual Studio.
  • Introducción al comprobador de controladores estáticos: proporciona información general sobre la herramienta de análisis estático.
  • Uso del comprobador de controladores estáticos: proporciona los detalles sobre el uso y configuración de la herramienta de análisis estático.
  • Informe del comprobador de controladores estáticos: describe el visor que muestra el seguimiento detallado del análisis de código estático.
  • Reglas del comprobador de controladores estáticos: las reglas definen los requisitos para la interacción adecuada entre un modelo de controlador y la interfaz de kernel del sistema operativo.
  • Referencia del comprobador de controladores estáticos: proporciona información de referencia sobre los tipos de rol de función, los archivos de configuración de SDV, los mensajes de error y advertencia.

Búsqueda de errores en el código del controlador de Windows

Microsoft usa SDV para probar los controladores en modo kernel que se incluyen con el sistema operativo Microsoft Windows y para probar los controladores de ejemplo en WDK. Mediante el uso de las reglas de cumplimiento de DDI para modelos de controladores específicos, SDV puede comprobar el comportamiento correcto del controlador. Por ejemplo, SDV puede comprobar que el controlador:

  • Llama a funciones en el IRQL correcto.
  • Adquiere y libera bloqueos en la secuencia correcta
  • Usa correctamente funciones que controlan paquetes de solicitud de E/S (IRP)

SDV examina todas las rutas de acceso posibles a través del código de controlador. Está diseñado para encontrar errores graves en rutas ocultas que es poco probable que se encuentren incluso en pruebas exhaustivas.

Recursos adicionales

Para obtener información específica sobre los controladores que SDV puede comprobar, consulte Controladores admitidos.

Para obtener más información y sugerencias sobre el uso del comprobador de controladores estáticos, consulte lo siguiente: