Freigeben über


Beispiel 14: Konfigurieren eines speziellen Pools

Ab Windows Vista können Sie das Feature "Special Pool " als Kernelflaggeeinstellung oder als Registrierungseinstellung konfigurieren. Wenn Sie sie als Kernelflaggeeinstellung (Laufzeit) konfigurieren, müssen Sie den Computer nicht neu starten, um die Änderung wirksam zu machen. In früheren Versionen von Windows ist Special Pool nur als Registrierungseinstellung verfügbar.

Außerdem können Sie ab Windows Vista das Feature "Special Pool" über die Befehlszeile festlegen und konfigurieren. In früheren Versionen von Windows können Sie das Feature "Spezieller Pool" nur im Dialogfeld Globale Flags festlegen und konfigurieren.

Spezielles Pool-nach-Pool-Tag anfordern ohne Neustart

Der folgende Befehl fordert einen speziellen Pool für alle Zuordnungen mit dem Tag1-Pool an. Diese Einstellung wird sofort wirksam, geht aber verloren, wenn Sie Windows herunterfahren oder neu starten.

Dieser Befehl verwendet den Parameter /k , um eine Kernelflagseinstellung (Laufzeit) und die Abkürzung +spp anzugeben, um eine spezielle Poolanforderung festzulegen.

gflags /k +spp Tag1

Gflags antwortet, indem folgendes gedruckt wird:

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

Beachten Sie, dass die spezielle Poolzuordnungsanforderung keine Kernelflagseinstellung ist und nicht im Wert der Kerneleinstellungen widerspiegelt wird.

Außerdem ändert eine spezielle Poolzuordnungsanforderung nicht den Wert der Einstellung "Überlauf" (0x1) oder "Unterlauf" (0x0) für einen speziellen Pool. Verwenden Sie das Gflags-Dialogfeld, um von Überschreitungen, der Standardeinstellung, in Unterläufe zu ändern. Weitere Informationen finden Sie unter Erkennen von Überschreitungen und Unterläufen.

Sie können das Pooltag nicht an der Befehlszeile anzeigen. Um zu überprüfen, ob das Pooltag eine Kerneleinstellung ist, verwenden Sie das Dialogfeld Gflags.

Spezielles Pool-nach-Pool-Tag anfordern in der Registrierung

Der folgende Befehl fordert einen speziellen Pool für alle Zuordnungen mit dem Tag1-Pool an. Da diese Einstellung in der Registrierung gespeichert ist, müssen Sie den Computer neu starten, damit sie wirksam ist, aber sie bleibt wirksam, bis Sie sie ändern.

Dieser Befehl verwendet den Parameter /r , um eine Registrierungseinstellung und die Abkürzung +spp anzugeben, um eine spezielle Poolanforderung festzulegen.

gflags /r +spp Tag1

Gflags antwortet, indem folgendes gedruckt wird:

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

Beachten Sie, dass die spezielle Poolzuordnungsanforderung keine Registrierungsflagseinstellung ist und sich nicht im Wert der Registrierungseinstellungen widerspiegelt.

Außerdem ändert eine spezielle Poolzuordnungsanforderung nicht den Wert der Einstellung "Überlauf" (0x1) oder "Unterlauf" (0x0) für einen speziellen Pool. Verwenden Sie das Gflags-Dialogfeld, um von Überschreitungen, der Standardeinstellung, in Unterläufe zu ändern. Weitere Informationen finden Sie unter Erkennen von Überschreitungen und Unterläufen.

Um zu überprüfen, ob der Wert der Registrierung hinzugefügt wurde, verwenden Sie Reg oder Regedit, um den Wert des PoolTag-Eintrags im HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management-Schlüssel anzuzeigen.

Beispiel:

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x31676154

Anfordern eines speziellen Pools nach Größe ohne Neustart

Der folgende Befehl fordert einen speziellen Pool für Zuordnungen von 1 bis 8 Bytes auf einem x86-Computer mit einer PAGE_SIZE von 0x1000 und Zuordnungsgranularität von 8 Bytes an.

Dieser Befehl verwendet den Parameter /k , um eine Kernelflagseinstellung (Laufzeit) und die Abkürzung +spp anzugeben, um eine spezielle Poolanforderung festzulegen. Dem Größenwert wird 0x vorangestellt, um anzugeben, dass es sich um eine Größe und nicht um ein Pooltag handelt.

Der Wert 0x10 wird berechnet, indem die Zuordnungsgranularität (8 Bytes) der größten Größe im Bereich (8 Bytes) für insgesamt 16 Bytes (0x10) hinzugefügt wird. Hilfe bei der Bestimmung des richtigen Werts für die Eingabe finden Sie unter Auswählen einer Zuordnungsgröße in Speziellem Pool.

gflags /k +spp 0x10

Gflags antwortet, indem folgendes gedruckt wird:

Special Pool set to 0x10
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

Auch hier ist die spezielle Poolzuordnungsanforderung keine Kernelflagseinstellung und wird nicht im Wert der Kerneleinstellungen widerspiegelt.

Außerdem ändert eine spezielle Poolzuordnungsanforderung nicht den Wert der Einstellung "Überlauf" (0x1) oder "Unterlauf" (0x0) für einen speziellen Pool. Verwenden Sie das Gflags-Dialogfeld, um von Überschreitungen, der Standardeinstellung, in Unterläufe zu ändern. Weitere Informationen finden Sie unter Erkennen von Überschreitungen und Unterläufen.

Anfordern eines speziellen Pools nach Größe in der Registrierung

Der folgende Befehl fordert einen speziellen Pool für Zuordnungen von 1024 bis 1040 Bytes auf einem x64-Computer mit einer PAGE_SIZE von 0x1000 und Zuordnungsgranularität von 16 Bytes an.

Dieser Befehl verwendet den Parameter /r , um eine systemweite Registrierungseinstellung und die Abkürzung +spp anzugeben, um eine spezielle Poolanforderung festzulegen. Dem Größenwert wird 0x vorangestellt, um anzugeben, dass es sich um eine Größe und nicht um ein Pooltag handelt.

Der Wert 0x420 wird berechnet, indem die Zuordnungsgranularität (16 Bytes) der größten Größe im Bereich (1040 Bytes) für insgesamt 1056 Bytes (0x420) hinzugefügt wird. Hilfe bei der Bestimmung des richtigen Werts für die Eingabe finden Sie unter Auswählen einer Zuordnungsgröße in Speziellem Pool.

gflags /r +spp 0x420

Gflags antwortet, indem folgendes gedruckt wird:

Special Pool set to 0x420
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

Auch hier ist die spezielle Poolzuordnungsanforderung keine Registrierungsflaggeeinstellung und wird nicht im Wert der Registrierungseinstellungen widerspiegelt.

Außerdem ändert eine spezielle Poolzuordnungsanforderung nicht den Wert der Einstellung "Überlauf" (0x1) oder "Unterlauf" (0x0) für einen speziellen Pool. Verwenden Sie das Gflags-Dialogfeld, um von Überschreitungen, der Standardeinstellung, in Unterläufe zu ändern. Weitere Informationen finden Sie unter Erkennen von Überschreitungen und Unterläufen.

Um zu überprüfen, ob der Wert der Registrierung hinzugefügt wurde, verwenden Sie Reg oder Regedit, um den Wert des PoolTag-Eintrags im HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management-Schlüssel anzuzeigen.

Beispiel:

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x420

Stornieren einer speziellen Poolanfrage

Mit dem folgenden Befehl wird eine Anforderung für den Sonderpool als Kernelflagge (Laufzeit) abgebrochen. Der Befehl ist für eine Anforderung nach Pooltag oder nach Größe identisch.

gflags /k -spp

Mit dem folgenden Befehl wird eine Anforderung für special pool als Registrierungseinstellung abgebrochen. Der Befehl ist für eine Anforderung nach Pooltag oder nach Größe identisch.

gflags /r -spp

Wenn der Befehl erfolgreich ist, antwortet Gflags mit folgendem Druck:

Special Pool value has been deleted.