INVALID_WORK_QUEUE_ITEM

Code: 0x96 (150)

As HRESULT:As NTSTATUS:

Parameters

ParameterDescription
1The address of the queue entry whose flink or blink field is NULL.
2The address of the queue that is being referenced. Typically, this queue is an ExWorkerQueue.
3The base address of the ExWorkerQueue array. (This address helps you determine if the queue in question is indeed an ExWorkerQueue. If the queue is an ExWorkerQueue, the offset from this parameter will isolate the queue.)
4Assuming the queue is an ExWorkerQueue, this value is the address of the worker routine that would have been called if the work item had been valid. (You can use this address to isolate the driver that is misusing the work queue.)

Description

The INVALID_WORK_QUEUE_ITEM bug check has a value of 0x00000096. This bug check indicates that a queue entry was removed that contained a NULL pointer.

Important

This article is for programmers. If you're a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.

Cause

The INVALID_WORK_QUEUE_ITEM bug check occurs when KeRemoveQueue removes a queue entry whose flink or blink field is NULL.

Any queue misuse can cause this error. But typically this error occurs because worker thread work items are misused.

An entry on a queue can be inserted on the list only one time. When an item is removed from a queue, its flink field is set to NULL. Then, when this item is removed the second time, this bug check occurs.

In most situations, the queue that is being referenced is an ExWorkerQueue (executive worker queue). To help identify the driver that caused the error, Parameter 4 displays the address of the worker routine that would have been called if this work item had been valid. However, if the queue that is being referenced is not an ExWorkerQueue, this parameter is not useful.

Article text from the Windows driver documentation (opens in a new tab), by Microsoft, under the CC BY 4.0 (opens in a new tab) licence.

Associated Modules

ModuleCodeFound inDescription
EventCreate.exe0x9678.11011%1
KernelBase.dll0x9678.1System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed.
appmgmts.dll0x968.11011A network error occurred accessing software installation data in Active Directory. The error was : %%1
appmgmts.dll0x967A network error occurred accessing software installation data in the active directory. The error was : %%1
dsreg.dll0x961011The FIDO credential deletion request was successfully sent. UPN: %1 Credential ID: %2 Auth token: %3 Request ID: %4
kernel32.dll0x9678.11011System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed.
nslookup.exe0x9678.11011refresh = %1
sc.exe0x9678.11011DESCRIPTION: Changes the preferred NUMA node for a Win32 service. This setting is valid only for own process services. To delete an existing setting, set the node number as -1. If an invalid preferred node number is supplied, then the change request will fail. USAGE: sc preferrednode [service name] [node number]
webservices.dll0x9678.11011Envelope version 'none' may be not be used with this channel.
win32k.sys0x9678.1MinArrange
win32kbase.sys0x961011MinArrange
11 entries