IrpProcessing 規則集 (KMDF)
使用這些規則來確認驅動程式已正確處理 I/O 要求封包(IRP)。
本節內容
主題 | 說明 |
---|---|
規則 FwdIrpToIoQueueValid 指定驅動程式使用 WdfDeviceWdmDispatchIrpToIoQueue 方法從 EvtDeviceWdmIrpDispatch 回呼或 EvtDeviceWdmIrpPreprocess 回呼將 IRP 傳送至 I/O 佇列。 |
|
SetCompletionRoutineFromDispatch 規則會驗證驅動程式不會從其 EvtDeviceWdmIrpDispatch 回呼函式,在 IRP 上指定完成例程。 |
|
MiniportOnlyWdmDevice 規則指定 WDF 驅動程式不應該使用 IoCreateDevice 和 IoCreateDeviceSecure 函式來建立裸機的 WDM 裝置物件。 如果有人嘗試將 IRP 傳送至 WDM 裝置,這會導致電腦當機。 這是因為裝置的 IRP 分派項目會設定為 WDF 特定專案,但架構尚未建立 WDF 裝置。 不過,迷你埠驅動程式可以使用 DIS,因為驅動程式不會為其設定分派進入點。 |
若要選取 IrpProcessing 規則集
在 Microsoft Visual Studio 中選取您的驅動程式專案 (.vcxProj)。 從 [驅動程式] 功能表中,按兩下 [啟動靜態驅動程序驗證程式...]。
按兩下 [規則] 索引標籤。在 [規則集] 底下,選取 [IrpProcessing]。
若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 IrpProcessing.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:IrpProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
如需詳細資訊,請參閱 使用靜態驅動程式驗證器在驅動程式 和 靜態驅動程式驗證器命令中尋找瑕疵 (MSBuild) 。