Freigeben über


Sperrregelsatz (NDIS)

Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber freigegebene Ressourcen ordnungsgemäß verwaltet.

In diesem Abschnitt

Thema BESCHREIBUNG

SpinLock

Die SpinLock-Regel überprüft die richtige Verwendung der NDIS-Spin lock-Schnittstelle. Diese Regel gibt an, dass Aufrufe von NdisAcquireSpinLock nur ausgeführt werden, wenn sich spinLock im entsperrten Zustand befindet. Mit dieser Regel wird außerdem überprüft, ob spinLock freigegeben wird, bevor die Miniporthandlerroutine beendet wird.

SpinLockBalanced

Die SpinLockBalanced-Regel überprüft, ob die Anzahl der Aufrufe von Funktionen, die ein SpinLock abrufen, gleich der Anzahl der Aufrufe von Funktionen ist, die dieselbe SpinLock-Instanz freigeben.

SpinLockDpr

Die SpinLockDpr-Regel überprüft die richtige Verwendung der NDIS-Spin lock-Schnittstelle.

Diese Regel gibt an, dass Aufrufe von NdisDprAcquireSpinLock nur ausgeführt werden, wenn sich die Drehsperre im entsperrten Zustand befindet. Mit dieser Regel wird außerdem überprüft, ob die Spinsperre freigegeben wird, bevor die Miniporthandlerroutine beendet wird.

SpinLockDprRelease

Die SpinLockDprRelease-Regel überprüft, ob Aufrufe von NdisAcquireSpinLock oder NdisDprAcquireSpinLock nur aufgerufen werden, wenn der SpinLock-Status "entsperrt" ist. Mit dieser Regel wird außerdem überprüft, ob die SpinLock-Instanz vor dem Beenden der Miniporthandlerroutine freigegeben wurde.

SpinLockRelease

Die SpinLockRelease-Regel gibt an, dass ein Treiber eine Drehsperre (NdisReleaseSpinLock) nicht freigeben darf, ohne sie zuvor zu erwerben.

So wählen Sie den Sperrregelsatz 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 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).