Freigeben über


!pool

Die Erweiterung !pool zeigt Informationen zu einer bestimmten Poolzuweisung oder zum gesamten systemweiten Pool an.

!pool [Address [Flags]]

Parameter

Adresse
Gibt den anzuzeigenden Pool-Eintrag an. Wenn Adresse -1 ist, zeigt dieser Befehl Informationen zu allen Heaps im Prozess an.

Wenn Adresse 0 ist oder ausgelassen wird, zeigt dieser Befehl Informationen zum Prozessheap an.

Flaggen
Gibt den zu verwendenden Detaillierungsgrad an. Dies kann eine beliebige Kombination der folgenden Bitwerte sein; der Standardwert ist Null:

Bit 0 (0x1)
Bewirkt, dass der Inhalt des Pools und nicht nur die Kopfzeilen des Pools angezeigt werden.

Bit 1 (0x2)
Bewirkt, dass die Anzeige die Pool-Header-Informationen für alle Pools unterdrückt, mit Ausnahme desjenigen, der die angegebene Adresse tatsächlich enthält.

Bit 31 (0x80000000)
Unterdrückt die Beschreibung des Pooltyps und des Pool-Tags in der Anzeige.

DLL

Kdexts.dll

Zusätzliche Informationen

Informationen zu Speicherpools finden Sie in der Dokumentation zum Windows Driver Kit (WDK) und in Microsoft Windows Internals von Mark Russinovich und David Solomon.

Hinweise

In Windows XP und späteren Versionen von Windows zeigt die Erweiterung !pool das Pool-Tag an, das mit jeder Zuordnung verbunden ist. Der Eigentümer des Pool-Tags wird ebenfalls angezeigt. Diese Anzeige basiert auf dem Inhalt der Datei pooltag.txt. Diese Datei befindet sich im Unterverzeichnis triage Ihrer Installation von Debugging Tools for Windows. Wenn Sie möchten, können Sie diese Datei bearbeiten, um zusätzliche, für Ihr Projekt relevante Pool-Tags hinzuzufügen.

Warnung Wenn Sie eine aktualisierte Version von Debugging Tools für Windows in dasselbe Verzeichnis wie die aktuelle Version installieren, werden alle Dateien in diesem Verzeichnis überschrieben, einschließlich pooltag.txt. Wenn Sie die Beispieldatei pooltag.txt ändern oder ersetzen, müssen Sie eine Kopie der Datei in einem anderen Verzeichnis speichern. Nach der Neuinstallation der Debugger können Sie die gespeicherte pooltag.txt über die Standardversion kopieren.

Wenn die Erweiterung !pool eine Beschädigung des Pools meldet, sollten Sie !poolval verwenden, um dies zu untersuchen.

Beispiel: Wenn Address 0xE1001050 angibt, werden die Header aller Pools in diesem Block angezeigt, und 0xE1001050 selbst wird mit einem Sternchen (*) markiert.

kd> !pool e1001050 
 e1001000 size:   40 previous size:    0  (Allocated)  MmDT
 e1001040 size:   10 previous size:   40  (Free)       Mm  
*e1001050 size:   10 previous size:   10  (Allocated) *ObDi
 e1001060 size:   10 previous size:   10  (Allocated)  ObDi
 e1001070 size:   10 previous size:   10  (Allocated)  Symt
 e1001080 size:   40 previous size:   10  (Allocated)  ObDm
 e10010c0 size:   10 previous size:   40  (Allocated)  ObDi
.....

In diesem Beispiel wird in der rechten Spalte das Pool-Tag angezeigt. Die Spalte links daneben zeigt an, ob der Pool frei oder belegt ist.

Der folgende Befehl zeigt die Pool-Header und den Pool-Inhalt an:

kd> !pool e1001050 1
 e1001000 size:   40 previous size:    0  (Allocated)  MmDT
 e1001008  ffffffff 0057005c 004e0049 004f0044
    e1001018  ffffffff 0053005c 00730079 00650074

 e1001040 size:   10 previous size:   40  (Free)       Mm  
 e1001048  ffffffff e1007ba8 e1501a58 01028101
    e1001058  ffffffff 00000000 e1000240 01028101

*e1001050 size:   10 previous size:   10  (Allocated) *ObDi
 e1001058  ffffffff 00000000 e1000240 01028101
    e1001068  ffffffff 00000000 e10009c0 01028101

 e1001060 size:   10 previous size:   10  (Allocated)  ObDi
 e1001068  ffffffff 00000000 e10009c0 01028101
    e1001078  ffffffff 00000000 00000000 04028101

......