Compartir a través de


Comandos del comprobador de controladores estático (MSBuild)

Puede ejecutar el Comprobador de controladores estáticos (SDV) en una ventana del símbolo del sistema de Visual Studio, ya sea mediante la instalación del Kit de controladores de Windows (WDK) o mediante la ejecución del Kit de controladores de Windows Enterprise (EWDK). Vaya al directorio donde se almacena el archivo de proyecto del controlador o el archivo de proyecto de la biblioteca. Los parámetros pueden aparecer en cualquier orden en la línea de comandos.

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.

msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform

Debe seleccionar una configuración de versión (por ejemplo, /p:Configuration="Versión de Windows 7"). Para obtener la lista de configuraciones de versión admitidas, consulte Creación de un controlador. La plataforma puede ser Win32 (para x86) o x64 (por ejemplo, /p:Platform=Win32).

Nota:

Asegúrese de comprobar el plan de administración de energía del equipo para asegurarse de que el equipo no pasará a un estado de suspensión durante el análisis.

Parámetros

/scan

Examina el código fuente del controlador para ver las declaraciones de tipo de rol de función. Para obtener información sobre cómo declarar las funciones de devolución de llamada proporcionadas por el controlador y las rutinas de distribución, vea Using Function Role Type Declarations. Durante este examen, SDV intenta detectar los puntos de entrada del controlador que necesita para comprobar el controlador. Registra los resultados del examen en Sdv-map.h, un archivo que crea en el directorio del proyecto del controlador.

Para obtener más información, consulte Preparación del código fuente.

/check:Rule | ,...

Inicia una comprobación con las reglas especificadas. Puede especificar más de una regla separando cada regla con una coma. Ejecute el comando /check: y especifique el archivo de proyecto de Visual Studio del controlador (*.vcxproj).

Rule es el nombre de una regla o un patrón de nombre de regla que incluye caracteres comodín (*) para representar uno o varios caracteres. Cuando se usa solo, el carácter comodín (*) representa todas las reglas.

/check:RuleList.sdv

Inicia una comprobación con las reglas del archivo de lista de reglas especificado. Solo puede enumerar un archivo con este parámetro. En el archivo de lista de reglas, cada línea puede ser el nombre de una regla o puede ser un carácter comodín (*), que representa todas las reglas de SDV. Ejecute el comando /check:RuleList.sdv y especifique el archivo de proyecto de Visual Studio del controlador (*.vcxproj).

RuleList.sdv es la ruta de acceso completa y el nombre de archivo de un archivo de lista de reglas. El archivo debe tener la extensión de nombre de archivo .sdv . A menos que el archivo esté en el directorio local, se requiere la ruta de acceso. Si la ruta de acceso o el nombre de archivo incluye espacios, debe incluir RuleList.sdv entre comillas.

Si especifica la opción /check: sin especificar una regla, SDV se ejecuta con el conjunto de reglas predeterminado para el modelo de controlador.

/lib

Procesa la biblioteca en el directorio actual. SDV llama a MSBuild.exe para compilar y compilar la biblioteca para su uso externo y genera los archivos que necesita para incluir la biblioteca en la comprobación del controlador.

Use este parámetro antes de comprobar los controladores que requieren la biblioteca. Ejecute el comando msbuild /t:sdv /p:Inputs="/lib" y especifique el archivo de proyecto de Visual Studio (*.vcxproj) para la biblioteca.

Para obtener más información sobre el uso y el efecto del parámetro /lib , vea Procesamiento de biblioteca en comprobador de controladores estáticos.

/vista

Abre el comprobador de controladores estáticos. Ejecute comandos /view y especifique el archivo de proyecto de Visual Studio del controlador (*.vcxproj).

Los resultados están disponibles en cuanto se completa una comprobación y permanecen disponibles hasta que use un comando /clean para eliminar los archivos SDV del directorio del proyecto del controlador.

/limpio

Elimina los archivos SDV del directorio. Dado que estos archivos se usan para generar la presentación del informe del comprobador de controladores estáticos, el comando /clean también elimina el informe de la comprobación.

Ejecute un comando /clean y especifique el archivo de proyecto de Visual Studio (*.vcxproj) para el controlador o la biblioteca. El comando elimina los archivos SDV solo para el proyecto especificado.

Ejecute un comando /clean para un proyecto de controlador antes de cada comprobación.

Ejecute un comando /clean para una biblioteca cuando los archivos de biblioteca estén obsoletos, como cuando cambia el código de biblioteca.

Un comando /clean no quita el archivo Sdv-map.h, si la marca aprobada está establecida en true en el archivo Sdv-map.h (Approved=true). Después, SDV puede usar este archivo para futuras comprobaciones.

/?

Muestra el uso de los comandos SDV. Los comandos que usan este parámetro no tienen que ejecutarse en una ventana del entorno de compilación.

Comentarios

La ejecución de msbuild /t:/sdv p:/Inputs= /? sin parámetros muestra el uso de los comandos sdV.

Un comando /clean elimina los archivos que SDV usa para crear la presentación del informe comprobador de controladores estáticos para una comprobación. Después de ejecutar este comando, la pantalla Informe del comprobador de controladores estáticos para la comprobación ya no está disponible.

Ejemplos

Para ejecutar SDV con todas las reglas de los archivos de controlador en el directorio local del proyecto mydriver:

msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Para ejecutar SDV mediante la regla CancelSpinLock en los archivos de controlador del directorio local:

msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Para ejecutar SDV mediante la regla especificada en el archivo de lista de reglas Rules1.sdv en el directorio D:\SDV:

msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Para volver a ejecutar SDV, esta vez con la opción /clean:

msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Para mostrar el comprobador de controladores estáticos para que pueda ver los resultados de la comprobación más reciente del controlador en el directorio local:

msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Uso del comprobador de controladores estáticos para buscar defectos en controladores de Windows