共用方式為


IrpProcessing 規則集 (KMDF)

使用這些規則來確認驅動程式已正確處理 I/O 要求封包(IRP)。

本節內容

主題 說明

FwdIrpToIoQueueValid

規則 FwdIrpToIoQueueValid 指定驅動程式使用 WdfDeviceWdmDispatchIrpToIoQueue 方法從 EvtDeviceWdmIrpDispatch 回呼或 EvtDeviceWdmIrpPreprocess 回呼將 IRP 傳送至 I/O 佇列。

SetCompletionRoutineFromDispatch

SetCompletionRoutineFromDispatch 規則會驗證驅動程式不會從其 EvtDeviceWdmIrpDispatch 回呼函式,在 IRP 上指定完成例程。

MiniportOnlyWdmDevice

MiniportOnlyWdmDevice 規則指定 WDF 驅動程式不應該使用 IoCreateDevice IoCreateDeviceSecure 函式來建立裸機的 WDM 裝置物件。 如果有人嘗試將 IRP 傳送至 WDM 裝置,這會導致電腦當機。 這是因為裝置的 IRP 分派項目會設定為 WDF 特定專案,但架構尚未建立 WDF 裝置。 不過,迷你埠驅動程式可以使用 DIS,因為驅動程式不會為其設定分派進入點。

若要選取 IrpProcessing 規則集

  1. 在 Microsoft Visual Studio 中選取您的驅動程式專案 (.vcxProj)。 從 [驅動程式] 功能表中,按兩下 [啟動靜態驅動程序驗證程式...]。

  2. 按兩下 [規則] 索引標籤。在 [規則集] 底下,選取 [IrpProcessing]。

    若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 IrpProcessing.sdv 例如:

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

    如需詳細資訊,請參閱 使用靜態驅動程式驗證器在驅動程式靜態驅動程式驗證器命令中尋找瑕疵 (MSBuild)