Bug 检查 0x96:INVALID_WORK_QUEUE_ITEM

INVALID_WORK_QUEUE_ITEM Bug 检查的值为 0x00000096。 此 Bug 检查表明已删除包含 NULL 指针的队列条目。

重要

这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答

INVALID_WORK_QUEUE_ITEM 参数

参数 说明

1

flinkblink 字段为 NULL 的队列条目的地址。

2

被引用的队列地址。 通常,此队列是 ExWorkerQueue

3

ExWorkerQueue 数组的基址。 (此地址可帮助您确定相关队列是否确实是 ExWorkerQueue。如果队列是 ExWorkerQueue,则此参数的偏移量将隔离队列。)

4

假设队列是 ExWorkerQueue,则此值是工作项有效时会被调用的工作例程的地址。 (您可以使用此地址来隔离滥用工作队列的驱动程序。)

原因

KeRemoveQueu 删除flinkblink 字段为 NULL 的队列条目时,会出现INVALID_WORK_QUEUE_ITEM Bug 检查。

任何队列滥用都可能导致此错误。 但发生此错误的通常原因是工作线程工作项被滥用。

队列上的条目只能在列表中插入一次。 从一个项目队列中删除时,其 flink 字段被设置为 NULL。 然后,当第二次删除此项目时,会发生此 Bug 检查。

在大多数情况下,被引用的队列是 ExWorkerQueue(执行辅助角色队列)。 为了有助于识别导致错误的驱动程序,参数 4 显示工作线程例程的地址,如果此工作项有效,则会调用该例程。 但是,如果所引用的队列不是 ExWorkerQueue,则此参数没有用处。