Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber freigegebene Ressourcen ordnungsgemäß verwaltet.
In diesem Abschnitt
| Thema | BESCHREIBUNG |
|---|---|
Die CancelSpinLock-Regel gibt an, dass der Treiber IoAcquireCancelSpinLock vor dem Aufrufen von IoReleaseCancelSpinLock aufruft und dass der Treiber IoReleaseCancelSpinLock vor allen nachfolgenden Aufrufen von IoAcquireCancelSpinLock aufruft. |
|
Die CancelSpinlockRelease-Regel gibt an, dass Aufrufe von IoAcquireCancelSpinLock und IoReleaseCancelSpinLock im strikten Wechsel verwendet werden. Das heißt, jeder Aufruf von IoAcquireCancelSpinLock muss einen entsprechenden Aufruf von IoReleaseCancelSpinLock aufweisen. |
|
Die CriticalRegions-Regel gibt an, dass der Treiber KeEnterCriticalRegion aufrufen muss, bevor Er KeLeaveCriticalRegion aufruft , und dass der Treiber KeLeaveCriticalRegion vor allen nachfolgenden Aufrufen von KeEnterCriticalRegion aufruft. (Geschachtelte Aufrufe sind zulässig.) |
|
Die ExclusiveResourceAccess-Regel gibt an, dass der Treiber ExAcquireResourceExclusiveLite aufruft , bevor ExReleaseResourceLite oder ExReleaseResourceForThreadLite aufgerufen wird, und gibt an, dass der Treiber ExReleaseResourceLite oder ExReleaseResourceForThreadLite vor allen nachfolgenden Aufrufen von ExAcquiresourceExclusiveLite aufruft. |
|
Die GuardedRegions-Regel überprüft, ob Aufrufe von KeEnterGuardedRegion und KeLeaveGuardedRegion im strikten Wechsel verwendet werden. |
|
Die QueuedSpinLock-Regel gibt an, dass der Treiber Vor dem Aufrufen von KeReleaseInStackQueuedSpinLockKeAcquireInStackQueuedSpinLock aufruft und dass der Treiber KeReleaseInStackQueuedSpinLock vor allen nachfolgenden Aufrufen von KeAcquireInStackQueuedSpinLock aufruft. |
|
Die QueuedSpinLockRelease-Regel gibt an, dass Aufrufe von KeAcquireInStackQueuedSpinLock und KeReleaseInStackQueuedSpinLock im strikten Wechsel verwendet werden. |
|
Die SpinLock-Regel gibt an, dass der Treiber nach dem Aufrufen von KeAcquireSpinLockKeReleaseSpinLock vor nachfolgenden Aufrufen von KeAcquireSpinLock oder KeAcquireSpinLockRaiseToDpc aufruft. |
|
Die SpinLockDpc-Regel gibt an, dass Aufrufe von KeAcquireSpinLock oder KeAcquireSpinLockRaiseToDpc und KeReleaseSpinLock im strengen Wechsel erfolgen müssen. Das heißt, nach dem Aufrufen von KeAcquireSpinLock oder KeAcquireSpinLockRaiseToDpc muss der Treiber KeReleaseSpinLock vor nachfolgenden Aufrufen von KeAcquireSpinLock oder keAcquireSpinLockRaiseToDpc aufrufen. |
|
Die SpinlockRelease-Regel gibt an, dass Aufrufe von KeReleaseSpinLock im strikten Wechsel mit KeAcquireSpinLock und KeAcquireSpinLockRaiseToDpc erfolgen. Das heißt, der Treiber muss KeReleaseSpinLock aufrufen, nachdem Er KeAcquireSpinLock oder KeAcquireSpinLockRaiseToDpc und vor nachfolgenden Aufrufen von KeAcquireSpinLock oder keAcquireSpinLockRaiseToDpc aufgerufen hat. |
|
Die SpinLockSafe-Regel gibt an, dass IoStartNextPacket und IoCompleteRequest nicht aufgerufen werden, während eine Drehsperre gedrückt wird. |
|
Die WithinCriticalRegion-Regel gibt an, dass die Aufrufe bestimmter Synchronisierungsfunktionen des Treibers nur nach dem Aufruf von KeEnterCriticalRegion und vor dem Aufrufen von KeLeaveCriticalRegion angezeigt werden. Folgende Synchronisierungsfunktionen sind betroffen: |
So wählen Sie den Sperrregelsatz 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 Sperren aus.
Um den Standardregelsatz aus einem Visual Studio-Entwicklereingabeaufforderungsfenster auszuwählen, geben Sie Locking.sdv mit der Option /check an. Beispiel:
msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Weitere Informationen finden Sie unter Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).