!poolfind
A extensão !poolfind localiza todas as instâncias de uma marcação de pool específica em pools de memória não paginada ou paginada.
!poolfind TagString [PoolType]
!poolfind TagValue [PoolType]
Parâmetros
TagString
Especifica a marcação de pool. TagString é uma cadeia de caracteres ASCII que diferencia maiúsculas de minúsculas. O asterisco (*) pode ser usado para representar qualquer número de caracteres; o ponto de interrogação (?) pode ser usado para representar exatamente um caractere. A menos que um asterisco seja usado, TagString deve ter exatamente quatro caracteres de comprimento.
Valor da Tag
Especifica a marcação de pool. TagValue deve começar com "0x", mesmo que a raiz padrão seja 16. Se esse parâmetro começar com qualquer outro valor (incluindo "0X"), ele será interpretado como uma cadeia de caracteres de marca ASCII.
Tipo de piscina
Especifica o tipo de pool a ser pesquisado. Os seguintes valores são permitidos:
0
Especifica o pool de memória não paginada. Esse é o padrão.
1
Especifica o pool de memória paginada.
2
Especifica o pool especial.
4
Especifica o pool de sessões.
DLL
Kdexts.dll
Informações Adicionais
Para obter informações sobre pools de memória e marcações de pool, confira a documentação do Kit de Driver do Windows (WDK) e Microsoft Windows Internals, de Mark Russinovich e David Solomon.
Comentários
Esse comando pode levar uma quantidade significativa de tempo para ser executado, dependendo do tamanho da memória do pool que deve ser pesquisada. Para acelerar essa execução, aumente a velocidade da porta COM com a tecla CTRL+A (Ativar/Desativar Taxa de Transmissão) ou use o comando .cache (Definir Tamanho do Cache) para aumentar o tamanho do cache (para aproximadamente 10 MB).
A marcação de pool é a mesma marcação passada para a família de rotinas ExAllocateXxx.
Veja um exemplo. Todo o pool não paginado é pesquisado e, em seguida, o pool paginado é pesquisado, mas o comando é encerrado antes da conclusão (após uma hora de operação):
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>