Compartir a través de


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

SDV ya no es compatible y SDV no está disponible en las versiones de WDK o EWDK de Windows 24H2. No está disponible en WDK más reciente que la compilación 26017 y no se incluye en windows 24H2 RTM WDK. SDV todavía se puede usar descargando windows 11, versión 22H2 EWDK (publicada el 24 de octubre de 2023) con las herramientas de compilación de Visual Studio 17.1.5 desde Descargar el Kit de controladores de Windows (WDK). Solo se recomienda el uso de Enterprise WDK para ejecutar SDV. No se recomienda usar versiones anteriores del WDK estándar junto con las versiones recientes de Visual Studio, ya que esto probablemente provocará errores de análisis.
En el futuro, CodeQL será la herramienta de análisis estático principal para los controladores. CodeQL proporciona un lenguaje de consulta eficaz que trata el código como una base de datos que se va a consultar, lo que facilita la escritura de consultas para comportamientos, patrones y mucho más específicos. 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: