Compartir a través de


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

IrqlDispatch

Esta regla comprueba que solo se llama a las rutinas siguientes en IRQL = DISPATCH_LEVEL.

IrqlKeReleaseSpinLock

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.

SpChangeIrql

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.

SpIrql

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.

StorPortIrql

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

  1. Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....

  2. 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).