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 |
---|---|
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. |
|
Die Regel SetCompletionRoutineFromDispatch stellt sicher, dass der Treiber keine Abschlussroutine für einen IRP aus seiner EvtDeviceWdmIrpDispatch-Rückruf-Funktion angibt. |
|
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
Wählen Sie Ihr Treiberprojekt (.vcxProj) in Microsoft Visual Studio aus. Klicken Sie im Menü Driver auf Launch Static Driver Verifier....
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).