Freigeben über


IRQL-Regelsatz (Storport)

Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber DDI-Aufrufe an der erforderlichen IRQL durchführt.

Ein Treiber, der die IRQL-Regeln nicht befolgt, kann während des Betriebs schwerwiegende Probleme verursachen, die zu Deadlockbedingungen oder Computerabstürzen führen können.

In diesem Abschnitt

Thema BESCHREIBUNG

IrqlDispatch

Diese Regel überprüft, ob die folgenden Routinen nur unter IRQL = DISPATCH_LEVEL aufgerufen werden.

IrqlKeReleaseSpinLock

Diese Regel überprüft, ob KeReleaseSpinLock nur unter IRQL = DISPATCH_LEVEL aufgerufen wird. Außerdem muss das IRQL auf die vorherige IRQL-Ebene festgelegt werden. In der Regel wird diesem Aufruf ein Aufruf von KeAcquireSpinLock vorangestellt.

SpChangeIrql

Diese Regel überprüft, ob die StorPort-Rückrufroutinen auf derselben IRQL-Ebene zurückgegeben werden, auf der sie aufgerufen werden.

SpIrql

Diese Regel überprüft, ob die Routinen TdiRegisterPnPHandlers und TdiDeregisterPnPHandlers nur bei IRQL aufgerufen werden, die niedriger als DISPATCH_LEVEL. Wenn jedoch ExFreeToNPagedLookasideList aufgerufen wird, wird die Regel übergeben.

StorPortIrql

Die StorPortIrql-Regel überprüft, ob StorPort-Routinen auf den richtigen IRQL-Ebenen aufgerufen werden.

So wählen Sie den Irql-Regelsatz aus

  1. Wählen Sie Ihr Treiberprojekt (VCXProj) in Microsoft Visual Studio aus. Klicken Sie im Menü Treiber auf Statische Treiberüberprüfung starten....

  2. Klicken Sie auf die Registerkarte Regeln . Wählen Sie unter Regelsätze die Option Irql aus.

    Um den Standardregelsatz aus einem Visual Studio-Entwicklereingabeaufforderungsfenster auszuwählen, geben Sie Irql.sdv mit der Option /check an. Beispiel:

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

    Weitere Informationen finden Sie unter Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).