Click to Rate and Give Feedback
MSDN
MSDN Library
Diagnostics
Debuggers
Debugger Reference
 !exqueue
Debugging Tools for Windows
!exqueue

The !exqueue extension displays a list of items currently queued in the ExWorkerQueue work queues.

Syntax

!exqueue [Flags

Parameters

Flags
Can be any combination of the following values. The default is 0x0, which will display only a limited amount of information.
Bit 0 (0x1) Adds time and priority statistics to the display, unless 0x2 is also set.
Bit 1 (0x2) Adds to the display a list of threads and events associated with the work queue and their wait states.
Bit 2 (0x4) Adds to the display a list of threads associated with the work queue. If ussed without 0x2, each thread is displayed on a single line. If used with 0x2, each thread is displayed with a stack trace.
Bit 3 (0x8) (Windows XP and later) Adds the return address, the stack pointer, and (on Itanium systems) the bsp register value to the display of each thread in the queue. The display of function arguments is suppressed.
Bit 4 (0x10) Displays only the critical work queue.
Bit 5 (0x20) Displays only the delayed work queue.
Bit 6 (0x40) Displays only the hypercritical work queue.

DLL

Windows NT 4.0 Unavailable
Windows 2000 Kdextx86.dll
Windows XP and later Kdexts.dll

Comments

If Flags does not include bits 4, 5, or 6, the display includes the critical work queue, the delayed work queue, and the hypercritical work queue.

Here is an sample of the output from this extension:

kd> !exqueue
Dumping ExWorkerQueue: 8046A5C0

**** Critical WorkQueue( current = 0 maximum = 1 )
THREAD fe502940  Cid 8.c  Teb: 00000000  Win32Thread: 00000000 WAIT
THREAD fe5026c0  Cid 8.10  Teb: 00000000  Win32Thread: 00000000 WAIT
THREAD fe502440  Cid 8.14  Teb: 00000000  Win32Thread: 00000000 WAIT
THREAD fe5021c0  Cid 8.18  Teb: 00000000  Win32Thread: 00000000 WAIT
THREAD fe501020  Cid 8.1c  Teb: 00000000  Win32Thread: 00000000 WAIT

**** Delayed WorkQueue( current = 0 maximum = 1 )
THREAD fe501da0  Cid 8.20  Teb: 00000000  Win32Thread: 00000000 WAIT
THREAD fe501b20  Cid 8.24  Teb: 00000000  Win32Thread: 00000000 WAIT
THREAD fe5018a0  Cid 8.28  Teb: 00000000  Win32Thread: 00000000 WAIT

**** HyperCritical WorkQueue( current = 0 maximum = 1 )
THREAD fe501620  Cid 8.2c  Teb: 00000000  Win32Thread: 00000000 WAIT

The important information in the !exqueue display is:

Parameter Meaning
current The number of running threads in the queue; that is, the number of threads in the queue that are not in a wait state.
maximum The number of running threads allowed in the queue at any given point in time. This is usually based on the number of processors in the system.

The system will execute work items in any queue in which the current value is less than its maximum value. The system will not execute any new work items in a queue in which the current value is greater than or equal to its maximum value until the excess queue threads have either completed execution or entered a wait state. This rule can delay the system when a CPU-intensive work item is being executed without entering a wait state, because it prevents new work items from being executed, even though the queue seems to have free threads.

Additional Information

For information about worker threads, see Microsoft Windows Internals by Mark Russinovich and David Solomon.

Build machine: CAPEBUILD
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker