Поделиться через


!poolfind

Расширение !poolfind находит все экземпляры определенного тега пула в непагированных или страничных пулах памяти.

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

Параметры

TagString
Указывает тег пула. TagString — это строка ASCII с учетом регистра. Звездочка (*) может использоваться для представления любого числа символов; Вопросительный знак (?) можно использовать для представления точно одного символа. Если звездочка не используется, TagString должен иметь ровно четыре символа в длину.

TagValue
Указывает тег пула. TagValue должен начинаться с "0x", даже если по умолчанию радикс равен 16. Если этот параметр начинается с любого другого значения (включая "0X"), он будет интерпретирован как строка тега ASCII.

PoolType
Указывает тип пула для поиска. Разрешены следующие значения:

0
Указывает непагаченный пул памяти. Это значение по умолчанию.

1
Указывает пул памяти с страницами.

2
Указывает специальный пул.

4
Указывает пул сеансов.

DLL-библиотеки

Kdexts.dll

Дополнительная информация

Сведения о пулах памяти и тегах пула см. в документации по комплекту драйверов Windows (WDK) и внутренних компонентах Microsoft Windows, по Марку Руссиновичу и Дэвиду Соломону.

Замечания

Эта команда может занять значительное время для выполнения, в зависимости от размера памяти пула, который необходимо выполнить. Чтобы ускорить это выполнение, увеличьте скорость COM-порта с помощью клавиш CTRL+A (переключение скорости Baud) или используйте команду кэша (задать размер кэша) для увеличения размера кэша (примерно до 10 МБ).

Тег пула является тем же тегом, который передается в семейство подпрограмм 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>