标记InterlockedQueuedIrps 规则 (wdm)

MarkingInterlockedQueuedIrps 规则指定驱动程序在以互锁方式将 IRP 排队以供进一步处理之前,正确将 IRP 标记为挂起。

此规则还指定驱动程序调用 IoMarkIrpPending ,并在调用以下任何函数将 IRP 添加到互锁队列之前正确将 IRP 标记为挂起:

驱动程序应在将需要更多处理的 IRP 添加到互锁队列之前调用 IoMarkIrpPending 。 否则,IRP 可能会取消排队,由另一个驱动程序例程完成,并在调用 IoMarkIrpPending 之前由系统释放,从而导致崩溃。

有关详细信息,请参阅 同步 IRP 取消

驱动程序模型:WDM

如何测试

编译时

运行 静态驱动程序验证程序 并指定 MarkingInterlockedQueuedIrps 规则。

使用以下步骤运行代码分析:
  1. 准备代码 (使用角色类型声明) 。
  2. 运行静态驱动程序验证程序。
  3. 查看和分析结果。

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

适用于

ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList

另请参阅

MarkIrpPending同步 IRP 取消