IRQL 规则集 (KMDF)
使用这些规则验证驱动程序是否在所需的 IRQL 中发出 DDI 调用。
不遵循 IRQL 规则的驱动程序在操作过程中可能会导致严重问题,从而导致死锁情况或计算机崩溃。
在本节中
主题 | 说明 |
---|---|
KmdfIrql 规则指定驱动程序在 IRQL 中调用小于或等于该方法的最大 IRQL 的框架方法。 |
|
KmdfIrql2 规则指定驱动程序在 IRQL 中调用小于或等于该方法的最大 IRQL 的框架方法。 |
|
UsbKmdfIrql 规则指定 KMDF 驱动程序不会在不正确的 IRQL 级别调用 USB 特定设备驱动程序接口 (DDI) 。 |
|
UsbKmdfIrql2 规则指定 KMDF 驱动程序不应在不正确的 IRQL 级别调用特定于 USB 的 DDI。 |
|
UsbKmdfIrqlExplicit 规则验证是否在正确的 IRQL 级别调用 KMDF DDI。 此规则适用于所有 EvtIoCallback 函数。 |
|
WdfRequestSendSyncAtDispatch 规则验证是否在正确的 IRQL 优先级级别发送 WdfRequestSend 函数。 |
|
WdfRequestSendSyncAtDispatch2 规则验证 WdfRequestSend 函数是否以正确的 IRQL 优先级发送。 |
选择 Irql 规则集
在 Microsoft Visual Studio 中选择驱动程序项目 (.vcxProj) 。 在“ 驱动程序 ”菜单中,单击“ 启动静态驱动程序验证程序...”。
单击“ 规则 ”选项卡。在“ 规则集”下,选择“ Irql”。
若要从 Visual Studio 开发人员命令提示符窗口中选择默认规则集,请使用 /检查 选项指定 Irql.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷 和 静态驱动程序验证程序命令 (MSBuild) 。