!poolfind

!poolfind 扩展查找非分页或分页内存池中特定池标记的所有实例。

!poolfind TagString [PoolType] 
!poolfind TagValue [PoolType] 

参数

TagString
指定池标记。 TagString 是区分大小写的 ASCII 字符串。 星号(*)可用于表示任意数量的字符;问号(?)可以用来表示一个字符。 除非使用星号,否则 TagString 的长度必须为 4 个字符。

TagValue
指定池标记。 TagValue 必须以“0x”开头,即使默认基数为 16。 如果此参数以任何其他值(包括“0X”)开头,则将被解释为 ASCII 标记字符串。

PoolType
指定要搜索的池的类型。 允许以下值:

0
指定非分页内存池。 这是默认值。

1
指定分页内存池。

2
指定特殊池。

4
指定会话池。

DLL

Kdexts.dll

其他信息

有关内存池和池标记的信息,请参阅 Windows 驱动程序工具包(WDK)文档和 Mark Russinovich 和 David Solomon 编写的 Microsoft Windows 内部资料

注解

根据必须搜索的池内存的大小,执行此命令可能需要相当长的时间。 若要加快此执行,请使用 CTRL+A(切换波特率)键提高 COM 端口速度,或使用 .cache(设置缓存大小)命令增加缓存大小(到大约 10 MB)。

池标记是传递给 ExAllocateXxx 系列例程的相同标记。

以下是一个示例。 先搜索整个非分页池,然后搜索分页池,但命令在完成前(运行一小时后)终止:

kd> !poolfind SeSd 0

Scanning large pool allocation table for Tag: SeSd (827d1000 : 827e9000)

Searching NonPaged pool (823b1000 : 82800000) for Tag: SeSd

826fa130 size:   c0 previous size:   40  (Allocated) SeSd
82712000 size:   c0 previous size:    0  (Allocated) SeSd
82715940 size:   a0 previous size:   60  (Allocated) SeSd
8271da30 size:   c0 previous size:   10  (Allocated) SeSd
82721c00 size:   10 previous size:   30  (Free)      SeSd
8272b3f0 size:   60 previous size:   30  (Allocated) SeSd
8272d770 size:   60 previous size:   40  (Allocated) SeSd
8272d7d0 size:   a0 previous size:   60  (Allocated) SeSd
8272d960 size:   a0 previous size:   70  (Allocated) SeSd
82736f30 size:   a0 previous size:   10  (Allocated) SeSd
82763840 size:   a0 previous size:   10  (Allocated) SeSd
8278b730 size:  100 previous size:  290  (Allocated) SeSd
8278b830 size:   10 previous size:  100  (Free)      SeSd
82790130 size:   a0 previous size:   20  (Allocated) SeSd
82799180 size:   a0 previous size:   10  (Allocated) SeSd
827c00e0 size:   a0 previous size:   30  (Allocated) SeSd
827c8320 size:   a0 previous size:   60  (Allocated) SeSd
827ca180 size:   a0 previous size:   50  (Allocated) SeSd
827ec140 size:   a0 previous size:   10  (Allocated) SeSd

Searching NonPaged pool (fe7c3000 : ffbe0000) for Tag: SeSd

kd> !poolfind SeSd 1

Scanning large pool allocation table for Tag: SeSd (827d1000 : 827e9000)

Searching Paged pool (e1000000 : e4400000) for Tag: SeSd

e10000b0 size:   d0 previous size:   20  (Allocated) SeSd
e1000260 size:   d0 previous size:   60  (Allocated) SeSd
......
e1221dc0 size:   a0 previous size:   60  (Allocated) SeSd
e1224250 size:   a0 previous size:   30  (Allocated) SeSd

...terminating - searched pool to e1224000
kd>