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.