I have a user who has a Dell Optiplex 755 Windows XP SP3 PC that keeps experience random BSOD errors that read INVALID_WORK_QUEUE_ITEM. I have searched several forums and mostly all are related to the hard drive drivers concerning SP2, but my user has SP3 so I don't believe that is the issue. Does anyone have any other suggestions?
2 Answers
Bluescreens are always caused by a driver or the kernel. Even when a user mode process seems to be the cause, it usually is some driver (rarely the kernel, although before WXP this was more common) in the device stack accessed by the user mode thread that does improper/insufficient checking for parameters.
You have two choices:
- Enable Windows Error Reporting (WER) and allow your Windows to send the minidumps to WHQL (the driver vendor, if registered, will receive the information if the crash was caused by their driver)
- Download "Debugging Tools for Windows" (WinDbg) and load the created dump file (
%WINDIR%\memory.dmp
or%WINDIR%\MiniDump\*.dmp
) into WinDbg and enter:!analyze -v
, then wait for the result. Usually it points out the culprit (the driver file) as well as more details which, if pasted in your question would probably give a sizable number of readers here a clue they could share with you.
On modern Windows systems drivers must be signed and contain version info, so it would be easy to figure out the vendor and contact them ...
You can do this already now, simply by looking up existing dump files whose date matches one of the BSODs you experienced. No need to wait for the next crash dump. Should you have disabled crash dump creation, under "My Computer" go to the "Advanced" tab and "Startup and Recovery" to set it to create a small dump, kernel dump or full dump. Also remember, that a full dump requires a system-managed page file and that the page file be located on the system partition (the reason is that the page file after reboot is being copied [or moved] over into the memory.dmp
).
-
"Bluescreens are always caused by a driver or the kernel" ... well, almost always, but not quite always.The CRITICAL_PROCESS_DIED bugcheck can be the result of a failure in user mode code, if it occurs in a "death monitored" process. May 1, 2016 at 22:52
-
@JamieHanrahan: you got me. I guess it depends how you define "caused". I should have written triggered, because even though the critical UM processes are UM, the BSOD is caused by a watcher in KM, from what I know. The kernel or executive itself, IIRC. Btw, my remark was aimed squarely at the usual "thread got to do something in kernel, some driver will do the job" and the subsequent blame: "process XYZ caused the BSOD", while the driver is usually the culprit and only a look at the stack trace will give more detail. May 6, 2016 at 15:54
-
Here's an article from Microsoft that seems to hint at possible driver issues:
Bug Check 0x96: INVALID_WORK_QUEUE_ITEM
http://msdn.microsoft.com/en-us/library/ff559300(v=vs.85).aspx