!poolfind
L’extension !poolfind recherche toutes les instances d’une balise de pool spécifique dans des pools de mémoire non paginés ou paginés.
!poolfind TagString [PoolType]
!poolfind TagValue [PoolType]
Paramètres
TagString
Spécifie la balise de pool. TagString est une chaîne ASCII sensible à la casse. L’astérisque (*) peut être utilisé pour représenter n’importe quel nombre de caractères ; le point d’interrogation (?) peut être utilisé pour représenter exactement un caractère. Sauf si un astérisque est utilisé, TagString doit comporter exactement quatre caractères.
TagValue
Spécifie la balise de pool. TagValue doit commencer par « 0x », même si la base par défaut est 16. Si ce paramètre commence par une autre valeur (y compris « 0X »), elle sera interprétée comme une chaîne de balise ASCII.
PoolType
Spécifie le type de pool sur lequel faire porter la recherche. Les valeurs suivantes sont prises en charge :
0
Indique le pool de mémoire non paginé. Il s’agit de la valeur par défaut.
1
Indique le pool de mémoire paginé.
2
Indique le pool spécial.
4
Indique le pool de sessions.
DLL
Kdexts.dll
Informations supplémentaires
Pour obtenir des informations sur les pools de mémoire et sur les balises de pool, veuillez consulter la documentation Windows Driver Kit (WDK) et Microsoft Windows Internals (Au cœur de Windows) de Mark Russinovich et David Solomon.
Notes
Cette commande peut prendre beaucoup de temps pour s’exécuter en fonction de la taille de la mémoire du pool faisant l'objet de la recherche. Pour accélérer cette exécution, augmentez la vitesse de port COM avec les touchesCtrl+A (Changer de vitesse de transmission) ou utilisez la commande .cache (Définir la taille du cache) pour augmenter la taille du cache (à environ 10 Mo).
La balise de pool est la même que celle transmise à la famille de routines ExAllocateXxx.
Voici un exemple. La recherche porte d'abord sur l’ensemble du pool non paginé, puis sur le pool paginé, mais la commande est arrêtée avant de se terminer (après une heure d'exécution) :
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>