Compartir a través de


Controladores admitidos

Para que SDV compruebe un controlador, debe ser capaz de interpretar el código del controlador, en concreto, los puntos de entrada del controlador y el código de las funciones y rutinas que admiten la funcionalidad de controlador necesaria.

En las secciones siguientes se describen los requisitos básicos de los controladores y la sintaxis específica que SDV espera de los controladores que comprueba. SDV no comprueba que los controladores cumplan estos requisitos, pero si el controlador no cumple, SDV puede no ejecutarse y, en raras situaciones, notifica resultados falsos positivos o falsos negativos debido a una interpretación incorrecta.

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 WDKs más recientes que la compilación 26017, y no se incluye en Windows 24H2 RTM WDK. SDV todavía se puede utilizar 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.

Características básicas del controlador

SDV solo puede comprobar los controladores con las siguientes características:

Requisitos básicos del controlador

Para que SDV compruebe un controlador WDM, el controlador debe:

Para que SDV compruebe un controlador KMDF, el controlador debe:

Para que SDV compruebe un controlador NDIS, el controlador debe:

Además, SDV puede comprobar los controladores que admiten:

Nombres de funciones reservadas

El motor de comprobación de SDV no funciona correctamente cuando el código de controlador o biblioteca usa los mismos patrones de nombre de función que SDV usa internamente.

En concreto, SDV no interpreta correctamente el código si:

  • El código incluye nombres de función que comienzan por __init y van seguidos de uno o varios enteros, como __init123.

  • El código incluye nombres de función que comienzan por sdv_, como sdv_Func, o incluyen la cadena _sdv_, como Func_sdv_ o Func_sdv_foo.

  • La biblioteca usa un .def archivo para cambiar el nombre de una función exportada y el nombre externo es el mismo que el nombre de otra función estática de la biblioteca.

Si el código de controlador o el código de biblioteca incluye estos elementos, SDV intenta comprobar el controlador o procesar la biblioteca, pero el resultado no es compatible con la característica (NSF). Para obtener más información sobre los resultados de SDV, consulte Interpretación de los resultados del comprobador de controladores estáticos.