Freigeben über


Verschiedene Regelsätze (WDM)

Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber einen allgemeinen Satz von Anforderungen für die ordnungsgemäße Behandlung von Registrierungsschlüsseln, Zeichenfolgen und Geräteobjektzeigern erfüllt.

In diesem Abschnitt

Thema BESCHREIBUNG

AddDevice-

Die AddDevice-Regel gibt an, dass die AddDevice-Routine des Treibers IoAttachDeviceToDeviceStack nur nach dem Aufrufen von IoCreateDevice aufruft.

DanglingDeviceObjectReference

Die DanglingDeviceObjectReference-Regel gibt an, dass der Treiber ObDereferenceObject mit demselben Geräteobjektzeiger aufruft, den IoGetAttachedDeviceReference zurückgegeben hat.

PnpSameDeviceObject

Die PnpSameDeviceObject-Regel gibt an, dass der Treiber IoAttachDeviceToDeviceStack mit einem Zeiger auf ein gültiges Zielgerätobjekt aufruft.

TargetRelationNeedsRef

Die TargetRelationNeedsRef-Regel gibt an, dass beim Verarbeiten einer TargetDeviceRelation-Abfrage die DispatchPnP-Routine des Treibers eine der folgenden Funktionen aufruft, um auf die PDO des untergeordneten Geräts zu verweisen:

UnSafeAllocatePool

UnSafeAllocatePool ist eine wichtige Sicherheitsregel, die überprüft, ob ein Treiber keine veralteten DDIs verwendet, um Arbeitsspeicher zuzuweisen.

ZwRegistryCreate

Die ZwRegistryCreate-Regel gibt an, dass der Treiber nach dem Aufrufen von ZwCreateKey nur die folgenden Registrierungsfunktionen aufrufen kann, während er ein geöffnetes Handle für den Registrierungsschlüssel hält (d. h. vor allen Aufrufen von ZwClose oder ZwDeleteKey zum Schließen oder Löschen des Handles für den Registrierungsschlüssel):

ZwRegistryOpen

Die ZwRegistryOpen-Regel gibt an, dass der Treiber nach dem Aufrufen von ZwOpenKey nur die folgenden Registrierungsfunktionen aufruft, während ein geöffnetes Handle für einen Registrierungsschlüssel gehalten wird (d. h. vor dem Aufrufen von ZwClose oder ZwDeleteKey):

So wählen Sie den Regelsatz „Verschiedenes“ 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" "Sonstiges" aus.

    Wenn Sie den Standardregelsatz aus einem Visual Studio-Entwickler-Eingabeaufforderungsfenster auswählen möchten, geben Sie "Miscellaneous.sdv " mit der Option "/check " an. Beispiel:

    msbuild /t:sdv /p:Inputs="/check:Miscellaneous.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).