Freigeben über


IrpProcessing-Regelsatz (KMDF)

Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr Treiber E/A-Anforderungspakete (IRP) korrekt verarbeitet.

In diesem Abschnitt

Thema Beschreibung

FwdIrpToIoQueueValid

Die Regel FwdIrpToIoQueueValid legt fest, dass der Treiber ein IRP an eine E/A-Warteschlange sendet, indem er die Methode WdfDeviceWdmDispatchIrpToIoQueue entweder von dem EvtDeviceWdmIrpDispatch-Rückruf oder dem EvtDeviceWdmIrpPreprocess-Rückruf aus verwendet.

SetCompletionRoutineFromDispatch

Die Regel SetCompletionRoutineFromDispatch stellt sicher, dass der Treiber keine Abschlussroutine für einen IRP aus seiner EvtDeviceWdmIrpDispatch-Rückruf-Funktion angibt.

MiniportOnlyWdmDevice

Die Regel MiniportOnlyWdmDevice legt fest, dass WDF-Treiber die Funktionen IoCreateDevice und IoCreateDeviceSecure nicht verwenden sollten, um reine WDM-Geräteobjekte zu erstellen. Dies führt zum Absturz des Computers, wenn jemand versucht, ein IRP an das WDM-Device zu senden. Das liegt daran, dass die IRP-Versandeinträge des Geräts auf WDF-spezifische Einträge gesetzt sind, das Framework aber kein WDF-Gerät erstellt hat. Miniport-Treiber können jedoch die DDIs verwenden, da für sie keine Treiber-Dispatch-Einstiegspunkte festgelegt sind.

So wählen Sie den IrpProcessing-Regelsatz aus

  1. Wählen Sie Ihr Treiberprojekt (.vcxProj) in Microsoft Visual Studio aus. Klicken Sie im Menü Driver auf Launch Static Driver Verifier....

  2. Klicken Sie auf die Registerkarte Regeln . Wählen Sie unter Regelsätze, IrpProcessing.

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

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

    Weitere Informationen finden Sie unter Static Driver Verifier zum Auffinden von Defekten in Treibern verwenden und Static Driver Verifier-Befehle (MSBuild).