IrpProcessing 规则集 (KMDF)

使用这些规则验证驱动程序是否正确处理 IRP (IRP) 。

在本节中

主题 描述

FwdIrpToIoQueueValid

规则 FwdIrpToIoQueueValid 指定驱动程序使用 WdfDeviceWdmDispatchIrpToIoQueue 方法从 EvtDeviceWdmIrpDispatch 回调或 EvtDeviceWdmIrpPreprocess 回调将 IRP 发送到 I/O 队列。

SetCompletionRoutineFromDispatch

SetCompletionRoutineFromDispatch 规则验证驱动程序是否未通过 EvtDeviceWdmIrpDispatch 回调函数在 IRP 上指定完成例程。

MiniportOnlyWdmDevice

MiniportOnlyWdmDevice 规则指定 WDF 驱动程序不应使用 IoCreateDeviceIoCreateDeviceSecure 函数来创建裸 WDM 设备对象。 如果有人尝试将 IRP 发送到 WDM 设备,则会导致计算机崩溃。 这是因为设备的 IRP 调度条目设置为特定于 WDF 的条目,但框架尚未创建 WDF 设备。 但是,微型端口驱动程序可以使用 DDI,因为未为它们设置驱动程序调度入口点。

选择 IrpProcessing 规则集

  1. 选择驱动程序项目 (.vcxProj) Microsoft Visual Studio。 在"驱动程序 "菜单中 ,单击 "启动静态驱动程序验证程序..."

  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)