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 ParentObjectCheckLock-Regel gibt an, dass der Treiber WdfWaitLockCreate und WdfSpinLockCreate aufrufen soll, indem ein übergeordnetes Objekt festgelegt wird. |
|
Die ReqSendWhileSpinlock-Regel gibt an, dass keine Anforderungen gesendet werden, während der Treiber ein Spinlock besitzt. |
|
Die Spinlockregel gibt an, dass Aufrufe von KeAcquireSpinLock oder KeAcquireSpinLockRaiseToDpc und KeReleaseSpinlock im strikten Wechsel verwendet werden. |
|
Die SpinlockDpc-Regel gibt an, dass Aufrufe von KeAcquireSpinLock oder KeAcquireSpinLockRaiseToDpc und KeReleaseSpinlock im strikten Wechsel verwendet werden. |
|
Die SpinlockRelease-Regel gibt an, dass Aufrufe von KeAcquireSpinLock, KeAcquireSpinLockRaiseToDpc und KeReleaseSpinLock in ausgewogener Weise innerhalb eines KMDF-Rückrufs verwendet werden. Am Ende einer KMDF-Rückrufroutine sollte der Treiber die Drehsperre nicht halten. |
|
Die WdfInterruptLock-Regel gibt an, dass Aufrufe der WdfInterruptAcquireLock-Methode im strikten Wechsel mit Aufrufen von WdfInterruptReleaseLock verwendet werden. Darüber hinaus sollte der Treiber am Ende einer KMDF-Rückrufroutine nicht das Framework-Spin lock-Objekt halten, das durch einen vorherigen Aufruf von WdfInterruptAcquireLock abgerufen wurde. |
|
Die WdfInterruptLockRelease-Regel gibt an, dass Aufrufe von WdfInterruptAcquireLock und WdfInterruptReleaseLock in einer KMDF-Rückrufroutine ausgeglichen verwendet werden. Am Ende einer KMDF-Rückrufroutine sollte der Treiber nicht das Framework-Spin lock-Objekt enthalten, das durch einen vorherigen Aufruf von WdfInterruptAcquireLock abgerufen wurde. |
|
Die WdfSpinlock-Regel gibt an, dass Aufrufe der WdfSpinLockAcquire-Methode im strikten Wechsel mit WdfSpinlockRelease verwendet werden. Am Ende einer KMDF-Rückrufroutine sollte der Treiber nicht das Framework-Spinlockobjekt enthalten, das durch einen vorherigen Aufruf von WdfSpinLockAcquire abgerufen wurde. |
|
Die WdfSpinlockRelease-Regel gibt an, dass Aufrufe von WdfSpinLockAcquire und WdfSpinlockRelease in ausgewogener Weise innerhalb einer KMDF-Ereignisrückruffunktion verwendet werden. Wenn die KMDF-Ereignisrückruffunktion zurückgibt, sollte der Treiber das Framework-Spin lock-Objekt nicht enthalten, das durch einen vorherigen Aufruf von WdfSpinLockAcquire abgerufen wurde. |
|
Die WdfWaitlock-Regel gibt an, dass Aufrufe von WdfWaitLockAcquire im strikten Wechsel mit WdfWaitlockRelease verwendet werden. Wenn die KMDF-Ereignisrückruffunktion zurückgibt, sollte der Treiber nicht das Framework-Spin lock-Objekt enthalten, das durch einen vorherigen Aufruf von WdfWaitLockAcquire abgerufen wurde. |
|
Die WdfWaitlockRelease-Regel gibt an, dass Aufrufe von WdfWaitLockAcquire und WdfWaitLockRelease in ausgewogener Weise innerhalb einer KMDF-Ereignisrückruffunktion verwendet werden. Wenn die KMDF-Ereignisrückruffunktion zurückgibt, sollte der Treiber nicht das Framework-Spin lock-Objekt enthalten, das durch einen vorherigen Aufruf von WdfWaitLockAcquire abgerufen wurde. |
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=Win32
Weitere Informationen finden Sie unter Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).