PoolMon (poolmon.exe), the Memory Pool Monitor, displays data that the operating system collects about memory allocations from the system paged and nonpaged kernel pools, and the memory pools used for Terminal Services sessions. The data is grouped by pool allocation tag.

Driver developers and testers often use PoolMon to detect memory leaks when they create a new driver, change the driver code, or stress the driver. You can also use PoolMon in each stage of testing to view the driver's patterns of allocation and free operations, and to reveal how much pool memory the driver is using at any given time.

The version of PoolMon described in this document is included in the \Tools\Other subdirectory of the Windows Driver Kit (WDK).

This topic includes:

PoolMon Overview

PoolMon Requirements

PoolMon Commands

PoolMon Display

PoolMon Examples

To use PoolMon on Microsoft Windows XP and earlier systems, you must enable pool tagging. On Windows Server 2003 and later versions of Windows, pool tagging is permanently enabled. For more information, see "Pool Tagging Requirement" in PoolMon Requirements.

PoolMon can display the names of the Windows components and commonly used drivers that assign each pool tag. This feature uses data from pooltag.txt, a file installed with PoolMon and with the Debugging Tools for Windows packages.