Freigeben über


VirtualStorport-Regelsatz (Storport)

Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber DDIs ordnungsgemäß aufruft, die für Storport virtual miniport (VMiniport)-Treiber von besonderem Interesse sind.

In diesem Abschnitt

Thema BESCHREIBUNG

DoubleExFreePool

Diese Regel überprüft, ob der Treiber nicht versucht, denselben Poolspeicherblock zweimal freizugeben.

DoubleKeSetEvent

Diese Regel überprüft, ob KeSetEvent nicht zweimal für dasselbe Ereignisobjekt aufgerufen wird. Wenn dasselbe Ereignisobjekt an die Routine übergeben wird, verstößt der Treiber gegen die Regel.

IoFreeIrp-

Diese Regel überprüft, ob ein IRP, das von IoAllocateIrp zugewiesen wurde, entweder von IoFreeIrp freigegeben wird oder die Abschlussroutine von IoSetCompletionRoutine festgelegt wird.

StorPortVirtualDevice

Diese Regel überprüft, ob beim Beenden der HwStorFindAdapter-Routine das Feld "VirtualDevice " in der PORT_CONFIGURATION_INFORMATION -Struktur (Storport) auf FALSE festgelegt wurde. Die Regel gilt nur für physische StorPort-Miniports.

StorPortVirtualDevice2

Diese Regel überprüft, ob beim Verlassen der HwStorFindAdapter-Routine das Feld "VirtualDevice " in der PORT_CONFIGURATION_INFORMATION -Struktur (Storport) auf TRUE festgelegt wurde. Die Regel gilt nur für virtuelle StorPort-Miniports.

WithinCriticalRegion

Diese Regel überprüft, ob die Aufrufe des Treibers an bestimmte Synchronisierungsfunktionen nur ausgeführt werden, während die normale Kernel-APC-Übermittlung deaktiviert ist.

ZwRegistryCreate

Diese Regel überprüft, ob das Handle für einen Registrierungsschlüssel, der mit ZwCreateKey erstellt wurde, von anderen ZwXxx-Routinen ordnungsgemäß verwendet wird. Die ZwOpenKey-Routine darf nicht für ein bereits geöffnetes Handle aufgerufen werden. Die Routinen ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose und ZwDeleteKey dürfen nicht für ein Handle aufgerufen werden, das nicht geöffnet ist. Das Handle muss auch vor dem Zurückgeben geschlossen werden.

ZwRegistryOpen

Diese Regel überprüft, ob das Handle für den über ZwOpenKey geöffneten Registrierungsschlüssel von anderen ZwXxx-Routinen ordnungsgemäß verwendet wird. Die Routinen ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose und ZwDeleteKey dürfen nicht für ein Handle aufgerufen werden, das nicht geöffnet ist. Der Griff muss auch vor der Rückgabe geschlossen werden.

So wählen Sie den VirtualStorport-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" "VirtualStorport" aus.

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

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

    Weitere Informationen finden Sie unter Verwendung von Static Driver Verifier zur Fehlererkennung in Treibern und Befehle für Static Driver Verifier (MSBuild).