Conjunto de reglas de uso de DDI (WDM)
Use estas reglas para comprobar que el controlador usa correctamente los DDIs de WDM correctamente.
En esta sección
Tema | Descripción |
---|---|
La regla DebugBreakUsage especifica que el controlador no debe llamar a DbgBreakPoint o DbgBreakPointWithStatus. Esta regla solo se aplica cuando se crea una versión que no es de depuración del controlador. |
|
La regla DoubleFetch comprueba si hay una captura doble de punteros de memoria en modo de usuario. El doble acceso al modo kernel de la memoria del modo de usuario puede provocar un problema de seguridad de condición de carrera. Al acceder a los datos del modo de usuario, el código del modo kernel debe realizar una copia de los datos del modo de usuario localmente y evitar el acceso a los datos del modo de usuario varias veces. Al no hacerlo, se produce un tipo de problema conocido como "captura doble", donde los datos pueden cambiar después de que se haya accedido por primera vez. |
|
La regla NullCheck comprueba que un valor NULL dentro del código de controlador no se desreferencia más adelante en el controlador. Esta regla notifica un defecto si se cumple alguna de estas condiciones:
Con las infracciones de la regla NullCheck, las instrucciones de código más relevantes se resaltan en el panel del árbol de seguimiento. Para obtener más información sobre cómo trabajar con la salida del informe, vea Informe de comprobador de controladores estáticos y Descripción del Visor de seguimiento. |
|
La regla SafeStrings especifica que el controlador llama solo a esas funciones de manipulación de cadenas que protegen al sistema de intrusiones involuntarias o malintencionadas. Estas funciones de cadena seguras para los controladores se definen en Ntstrsafe.h. |
|
La regla ObsoleteDDIs especifica que los controladores no deben llamar a FsRtlPrivateLock. Esta función está obsoleta. Use FsRtlFastLock en su lugar. |
Para seleccionar el conjunto de reglas de uso de DDI
Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....
Haga clic en la pestaña Reglas . En Conjuntos de reglas, seleccione DDIUsage.
Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique DDIUsage.sdv con la opción /check . Por ejemplo:
msbuild /t:sdv /p:Inputs="/check:DDIUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores y comandos comprobadores de controladores estáticos (MSBuild).