!icpleak

The !icpleak extension examines all I/O completion objects in the system for the object with the largest number of queued entries.

!icpleak [HandleFlag]

Parameters

HandleFlag
If this flag is set, the display also includes all processes that have a handle to the object with the largest number of queued entries.

DLL

Kdexts.dll

Additional Information

For information about I/O completion ports, see Microsoft Windows Internals by Mark Russinovich and David Solomon.

Remarks

This extension is useful when there is a leak in the I/O completion pool. I/O completion pool leaks can occur when a process is allocating I/O completion packets by calling PostQueuedCompletionStatus, but is not calling GetQueuedCompletionStatus to free them, or when a process is queuing completion entries to a port, but there is no thread retrieving the entries. To detect a leak run the !poolused extension and check the value of ICP pool tag. If pool use with the ICP tag is significant, a leak might have occurred.

This extension works only if the system maintains type lists. If the HandleFlag is set and the system has many processes, this extension will take a long time to run.

You can stop at any point by pressing CTRL+BREAK (in WinDbg) or CTRL+C (in KD).