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 |
---|---|
Diese Regel überprüft, ob die folgenden Routinen nur unter IRQL = DISPATCH_LEVEL aufgerufen werden. |
|
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. |
|
Diese Regel überprüft, ob die StorPort-Rückrufroutinen auf derselben IRQL-Ebene zurückgegeben werden, auf der sie aufgerufen werden. |
|
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. |
|
Die StorPortIrql-Regel überprüft, ob StorPort-Routinen auf den richtigen IRQL-Ebenen aufgerufen werden. |
So wählen Sie den Irql-Regelsatz aus
Wählen Sie Ihr Treiberprojekt (VCXProj) in Microsoft Visual Studio aus. Klicken Sie im Menü Treiber auf Statische Treiberüberprüfung starten....
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).