IrpProcessing 规则集 (KMDF)
使用这些规则来验证驱动程序是否正确处理了 I/O 请求数据包 (IRP)。
本节内容
主题 | 说明 |
---|---|
规则 FwdIrpToIoQueueValid 规定,驱动程序使用 WdfDeviceWdmDispatchIrpToIoQueue 方法从 EvtDeviceWdmIrpDispatch 回调或 EvtDeviceWdmIrpPreprocess 回调向 I/O 队列发送 IRP。 |
|
该 SetCompletionRoutineFromDispatch 规则验证驱动程序是否从其 EvtDeviceWdmIrpDispatch 回调函数中指定了 IRP 的完成例程。 |
|
该 MiniportOnlyWdmDevice 规则规定,WDF 驱动程序不应使用 IoCreateDevice 和 IoCreateDeviceSecure 函数来创建裸 WDM 设备对象。 如果有人试图向 WDM 设备发送 IRP,这将导致计算机崩溃。 这是因为设备的 IRP 调度项设置为 WDF 特定项,但框架尚未创建 WDF 设备。 不过,微型端口驱动程序可以使用 DDI,因为没有为它们设置驱动程序调度入口点。 |
选择 IrpProcessing 规则集
在 Microsoft Visual Studio 中选择驱动程序项目 (.vcxProj)。 从驱动程序 菜单,单击启动静态驱动程序验证程序...。
单击规则选项卡。在规则集下,选择 IrpProcessing。
要从 Visual Studio 开发人员命令提示符窗口选择默认规则集,请指定 IrpProcessing.sdv 并使用 /check 选项。 例如:
msbuild /t:sdv /p:Inputs="/check:IrpProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32