IRQL 规则集 (KMDF)

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

不符合 IRQL 规则的驱动程序可能会导致作过程中出现严重问题,从而导致死锁条件或计算机崩溃。

本部分内容

主题 DESCRIPTION

KmdfIrql

KmdfIrql 规则明确规定,驱动程序应在 IRQL 小于或等于该方法允许的最大 IRQL 时调用框架方法。

KmdfIrql2

KmdfIrql2 规则规定,驱动程序在指定的 IRQL 上调用框架方法,并且该方法的 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 规则验证是否在正确的 IRQL 优先级级别发送 WdfRequestSend 函数。

选择 Irql 规则集

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

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

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

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

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