IrpProcessing 规则集 (KMDF)
使用这些规则验证驱动程序是否正确处理 I/O 请求数据包 (IRP) 。
在本节中
主题 | 说明 |
---|---|
规则 FwdIrpToIoQueueValid 指定驱动程序使用来自 EvtDeviceWdmIrpDispatch 回调或 EvtDeviceWdmIrpPreprocess 回调的 WdfDeviceWdmDispatch 方法将 IRP 发送到 I/O 队列。 |
|
SetCompletionRoutineFromDispatch 规则验证驱动程序是否未从其 EvtDeviceWdmIrpDispatch 回调函数在 IRP 上指定完成例程。 |
|
MiniportOnlyWdmDevice 规则指定 WDF 驱动程序不应使用 IoCreateDevice 和 IoCreateDeviceSecure 函数来创建裸露的 WDM 设备对象。 如果有人尝试向 WDM 设备发送 IRP,这将导致计算机崩溃。 这是因为设备的 IRP 调度条目设置为特定于 WDF 的条目,但框架尚未创建 WDF 设备。 但是,微型端口驱动程序可以使用 DDI,因为未为其设置驱动程序调度入口点。 |
选择 IrpProcessing 规则集
在 Microsoft Visual Studio 中选择驱动程序项目 (.vcxProj) 。 在“ 驱动程序 ”菜单中,单击“ 启动静态驱动程序验证程序...”。
单击“ 规则 ”选项卡。在 “规则集”下,选择“ IrpProcessing”。
若要从 Visual Studio 开发人员命令提示符窗口中选择默认规则集,请使用 /检查 选项指定 IrpProcessing.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:IrpProcessing.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷 和 静态驱动程序验证程序命令 (MSBuild) 。
反馈
https://aka.ms/ContentUserFeedback。
即将推出:在整个 2024 年,我们将逐步取消以“GitHub 问题”作为内容的反馈机制,并将其替换为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈