IRQL 规则集 (KMDF)

使用这些规则验证驱动程序是否在所需的 IRQL 中发出 DDI 调用。

不遵循 IRQL 规则的驱动程序在操作过程中可能会导致严重问题,从而导致死锁情况或计算机崩溃。

在本节中

主题 说明

KmdfIrql

KmdfIrql 规则指定驱动程序在 IRQL 中调用小于或等于该方法的最大 IRQL 的框架方法。

KmdfIrql2

KmdfIrql2 规则指定驱动程序在 IRQL 中调用小于或等于该方法的最大 IRQL 的框架方法。

UsbKmdfIrql

UsbKmdfIrql 规则指定 KMDF 驱动程序不会在不正确的 IRQL 级别调用 USB 特定设备驱动程序接口 (DDI) 。

UsbKmdfIrql2

UsbKmdfIrql2 规则指定 KMDF 驱动程序不应在不正确的 IRQL 级别调用特定于 USB 的 DDI。

UsbKmdfIrqlExplicit

UsbKmdfIrqlExplicit 规则验证是否在正确的 IRQL 级别调用 KMDF DDI。 此规则适用于所有 EvtIoCallback 函数。

WdfRequestSendSyncAtDispatch

WdfRequestSendSyncAtDispatch 规则验证是否在正确的 IRQL 优先级级别发送 WdfRequestSend 函数。

WdfRequestSendSyncAtDispatch2

WdfRequestSendSyncAtDispatch2 规则验证 WdfRequestSend 函数是否以正确的 IRQL 优先级发送。

选择 Irql 规则集

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

  2. 单击“ 规则 ”选项卡。在“ 规则集”下,选择“ Irql”。

    若要从 Visual Studio 开发人员命令提示符窗口中选择默认规则集,请使用 /检查 选项指定 Irql.sdv。 例如:

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

    有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷静态驱动程序验证程序命令 (MSBuild)