Conjunto de reglas IRQL (Storport)
Use estas reglas para comprobar que el controlador realiza llamadas DDI en el IRQL necesario.
Un controlador que no sigue las reglas irQL puede causar problemas graves durante el funcionamiento que pueden provocar condiciones de interbloqueo o bloqueos del equipo.
En esta sección
Tema | Descripción |
---|---|
Esta regla comprueba que solo se llama a las rutinas siguientes en IRQL = DISPATCH_LEVEL. |
|
Esta regla comprueba que KeReleaseSpinLock se llama solo en IRQL = DISPATCH_LEVEL . También debe establecer irQL en el nivel irQL anterior. Normalmente, esta llamada se precedía de una llamada a KeAcquireSpinLock. |
|
Esta regla comprueba que las rutinas de devolución de llamada de StorPort se devuelven en el mismo nivel irQL que el nivel en el que se llama. |
|
Esta regla comprueba que las rutinas TdiRegisterPnPHandlers y TdiDeregisterPnPHandlers solo se llaman en IRQL inferior a DISPATCH_LEVEL. Sin embargo, si se llama a ExFreeToNPagedLookasideList , la regla pasa. |
|
La regla StorPortIrql comprueba que se llama a las rutinas de StorPort en los niveles de IRQL correctos. |
Para seleccionar el conjunto de reglas irql
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 Irql.
Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique Irql.sdv con la opción /check . Por ejemplo:
msbuild /t:sdv /p:Inputs="/check:Irql.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).