标记InterlockedQueuedIrps 规则 (wdm)
MarkingInterlockedQueuedIrps 规则指定驱动程序在以互锁方式将 IRP 排队以供进一步处理之前,正确将 IRP 标记为挂起。
此规则还指定驱动程序调用 IoMarkIrpPending ,并在调用以下任何函数将 IRP 添加到互锁队列之前正确将 IRP 标记为挂起:
驱动程序应在将需要更多处理的 IRP 添加到互锁队列之前调用 IoMarkIrpPending 。 否则,IRP 可能会取消排队,由另一个驱动程序例程完成,并在调用 IoMarkIrpPending 之前由系统释放,从而导致崩溃。
有关详细信息,请参阅 同步 IRP 取消。
驱动程序模型:WDM
如何测试
编译时 |
---|
运行 静态驱动程序验证程序 并指定 MarkingInterlockedQueuedIrps 规则。 使用以下步骤运行代码分析:有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷。 |
适用于
ExInterlockedInsertHeadListExInterlockedInsertTailListExInterlockedPushEntryListIoMarkIrpPendingRemoveHeadList