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 la operación que pueden provocar problemas de interbloqueo o bloqueos de equipo.

En esta sección

Tema Descripción

IrqlDispatch

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

IrqlKeReleaseSpinLock

Esta regla comprueba que se llama solo a KeReleaseSpinLock en IRQL = DISPATCH_LEVEL. También debe establecer el IRQL al nivel IRQL anterior. Normalmente, esta llamada estaría precedida 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 las reglas predeterminadas en una ventana de comando de desarrollador 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 de comprobador de controladores estáticos (MSBuild).