IRQL 规则集 (NDIS)

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

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

在本节中

主题 说明

Flags_Irql

Flags_Irql规则指定不得在具有指示当前 IRQL 的调度级别标志参数的回调函数中调用 KeGetCurrentIrql

正确使用调度级别标志有助于避免不必要的设置 IRQL 尝试。 有关如何使用此标志的详细信息,请参阅 Dispatch IRQL Tracking

Irql_CallManager_Function

Irql_CallManager_Function规则指定必须在正确的 IRQL 级别调用 NDIS CallManager 的 NDIS 函数。

Irql_Connection_Function

Irql_Connection_Function规则指定必须在正确的 IRQL 级别调用协议驱动程序的 NDIS 连接函数。

Irql_Filter_Driver_Function

Irql_Filter_Driver_Function 规则指定必须在正确的 IRQL 级别调用筛选器驱动程序的 NDIS 函数。

Irql_Gather_DMA_Function

Irql_Gather_DMA_Function 规则指定必须在正确的 IRQL 级别调用 NDIS 分散/聚合 DMA 函数。

Irql_IM_Function

Irql_IM_Function 规则指定必须在正确的 IRQL 级别调用中间 (IM) 驱动程序的 NDIS 函数。

Irql_Interfaces_Function

Irql_Interfaces_Function 规则指定必须在正确的 IRQL 级别调用 NDIS 网络接口函数。

Irql_Interrupt_Function

Irql_Interrupt_Function 规则指定必须在正确的 IRQL 级别调用用于中断的 NDIS 函数。

Irql_IrqlSetting_Function

Irql_IrqlSetting_Function 规则指定必须在正确的 IRQL 级别调用 NDIS 中断宏。

Irql_MCM_Function

Irql_MCM_Function规则指定必须在正确的 IRQL 级别调用驱动程序的 NDIS MCM 函数。

Irql_MCO_Function

Irql_MCO_Function规则指定必须在正确的 IRQL 级别调用微型端口驱动程序的 NDIS MCO DDI。

Irql_Miniport_Driver_Function

Irql_Miniport_Driver_Function 规则指定必须在正确的 IRQL 级别调用微型端口驱动程序的 NDIS 函数。

Irql_Miscellaneous_Function

Irql_Miscellaneous_Function 规则指定必须在正确的 IRQL 级别调用 NDIS 函数。

Irql_NetBuffer_Function

Irql_NetBuffer_Function 规则指定必须在正确的 IRQL 级别调用与 NET_BUFFER 相关的函数。

Irql_OID_Function

Irql_OID_Function规则指定必须在正确的 IRQL 级别调用 NDIS OID 请求 DDI。

Irql_Protocol_Driver_Function

Irql_Protocol_Driver_Function 规则指定必须在正确的 IRQL 级别调用 CoNDIS 客户端的 NDIS 函数。

Irql_SendRcv_Function

Irql_SendRcv_Function规则指定必须在正确的 IRQL 级别调用 NDIS 驱动程序的发送和接收函数。

Irql_StatusIndication_Function

Irql_StatusIndication_Function 规则指定必须在正确的 IRQL 级别调用微型端口和筛选器驱动程序的 NDIS 状态指示函数。

Irql_Synch_Function

Irql_Synch_Function规则指定必须在正确的 IRQL 级别调用 NDIS 中断和同步 DDI。

Irql_Timer_Function

Irql_Timer_Function 规则指定必须在正确的 IRQL 级别调用 NDIS 计时器服务函数。

选择 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)