!tp

The !tp extension displays thread pool information.

!tp pool Address [Flags] 
!tp tqueue Address [Flags] 
!tp ItemType Address [Flags] 
!tp ThreadType [Address] 
!tp stats Address [Flags] 
!tp wfac Address 
!tp wqueue Address Priority Node 
!tp -?

Parameters

pool **** Address
Causes the entire thread pool at Address to be displayed. If Address is 0, then all thread pools will be displayed.

tqueue **** Address
Causes the active timer queue at Address to be displayed.

ItemType Address
Causes the specified thread pool item to be displayed. Address specifies the address of the item. ItemType specifies the type of the item; this can include any of the following possibilities:

obj
A generic pool item (such as an IO item) will be displayed.

timer
A timer item will be displayed.

wait
A wait item will be displayed.

work
A work item will be displayed.

ThreadType [Address]
Causes threads of the specified type to be displayed. If Address is included and nonzero, then only the thread at this address is displayed. If Address is 0, all threads matching ThreadType are displayed. If Address is omitted, only the threads matching ThreadType associated with the current thread are displayed. ThreadType specifies the type of the thread to be displayed; this can include any of the following possibilities:

waiter
A thread pool waiter thread will be displayed.

worker
A thread pool worker thread will be displayed.

stats [Address]
Causes the debug statistics of the current thread to be displayed. Address may be omitted, but if it is specified, it must equal -1 (negative one), to represent the current thread.

wfac **** Address
(Windows 7 and later only) Causes the worker factory at Address to be displayed. The specified Address must be a valid nonzero address.

wqueue **** Address
(Windows 7 and later only) Causes display of a work queue and NUMA node that matche the following: a specified priority, a specified NUMA node, and the pool, at a specified address, to which the NUMA node belongs. Address specifies the address of the pool. When the wqueue parameter is used, it must be followed by Address, Priority, and Node.

Priority
(Windows 7 and later only) Specifies the priority levels of the work queues to be displayed. Priority can be any of the following values:

0
Work queues with high priority are displayed.

1
Work queues with normal priority are displayed.

2
Work queues with low priority are displayed.

-1
All work queues are displayed.

Node
(Windows 7 and later only) Specifies a NUMA node belonging to the pool specified by Address. If Node is -1 (negative one), all NUMA nodes are displayed.

Flags
Specifies what the display should contain. This can be a sum of any of the following bit values (the default is 0x0):

Bit 0 (0x1)
Causes the display to be single-line output. This bit value has no effect on the output when an ItemType is displayed.

Bit 1 (0x2)
Causes the display to include member information.

Bit 2 (0x4)
This flag is relevant only when the pool option is used. In Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008, this flag causes the display to include the pool work queue. In Windows 7 and later, this flag causes the display to include all the pool's work queues that are at normal priority, and all NUMA nodes.

-?
Displays a brief help text for this extension in the Debugger Command window.

DLL

Exts.dll

Additional Information

For information about thread pooling, see the Microsoft Windows SDK documentation.