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-Treiber (VMiniport) von besonderem Interesse sind.

In diesem Abschnitt

Thema BESCHREIBUNG

DoubleExFreePool

Diese Regel überprüft, dass 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, schlägt der Treiber die Regel fehl.

IoFreeIrp

Mit dieser Regel wird überprüft, ob ein IRP, das von IoAllocateIrp zugewiesen wurde, entweder von IoFreeIrp freigegeben wird oder seine Vervollständigungsroutine von IoSetCompletionRoutine festgelegt wird.

StorPortVirtualDevice

Diese Regel überprüft, ob beim Beenden der HwStorFindAdapter-Routine das VirtualDevice-Feld 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 Beenden 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, dass Aufrufe des Treibers an bestimmte Synchronisierungsfunktionen nur vorgenommen werden, während die normale Kernel-APC-Übermittlung deaktiviert ist.

ZwRegistryErstellen

Diese Regel überprüft, ob das Handle für einen mit ZwCreateKey erstellten Registrierungsschlüssel anschließend 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 der Rückgabe geschlossen werden.

ZwRegistryOpen

Diese Regel überprüft, ob das Handle zum Registrierungsschlüssel, der über ZwOpenKey geöffnet wurde, anschließend 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. Das Handle 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ätzedie Option VirtualStorport aus.

    Um den Standardregelsatz in einem Visual Studio-Entwicklereingabeaufforderungsfenster 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 Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).