IRQL-regeluppsättning (Storport)

Använd dessa regler för att verifiera att din drivrutin gör DDI-anrop vid den IRQL som krävs.

En drivrutin som inte följer IRQL-reglerna kan orsaka allvarliga problem under driften som kan leda till dödläge eller datorkrascher.

I det här avsnittet

Ämne Beskrivning

IrqlDispatch

Den här regeln verifierar att följande rutiner endast anropas vid IRQL = DISPATCH_LEVEL.

IrqlKeReleaseSpinLock

Den här regeln verifierar att KeReleaseSpinLock endast anropas vid IRQL = DISPATCH_LEVEL. Den måste också återställa IRQL till det föregående IRQL-nivån. Normalt föregås det här anropet av ett anrop till KeAcquireSpinLock.

SpChangeIrql

Den här regeln verifierar att StorPort-återanropsrutinerna returneras på samma IRQL-nivå som den nivå där de anropas.

SpIrql

Den här regeln verifierar att rutinerna TdiRegisterPnPHandlers och TdiDeregisterPnPHandlers endast anropas vid IRQL som är lägre än DISPATCH_LEVEL. Men om ExFreeToNPagedLookasideList anropas godkänns regeln.

StorPortIrql

StorPortIrql-regeln kontrollerar att StorPort-rutiner anropas på rätt IRQL-nivåer.

Så här väljer du Irql-regeluppsättningen

  1. Välj drivrutinsprojektet (.vcxProj) i Microsoft Visual Studio. På drivrutinsmenyn klickar du på Starta kontrollant för statisk drivrutin....

  2. Klicka på fliken Regler . Under Regeluppsättningar väljer du Irql.

    Om du vill välja standardregeluppsättningen från ett kommandotolkfönster för Visual Studio-utvecklare anger du Irql.sdv med alternativet /check . Till exempel:

    msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    För mer information, se Användning av statisk drivrutinsverifierare för att hitta defekter i drivrutiner och Statisk drivrutinsverifierare-kommandon (MSBuild).