Sdílet prostřednictvím


Příklad 14: Konfigurace speciálního fondu

Počínaje systémem Windows Vista můžete nakonfigurovat funkci Speciální funkce jako příznak jádra nebo jako nastavení v registru. Pokud ho nakonfigurujete jako nastavení příznaku jádra (doba běhu), nemusíte restartovat počítač, aby se změna projevila. Ve starších verzích Windows je speciální fond k dispozici pouze jako nastavení registru.

Počínaje systémem Windows Vista můžete také nastavit a nakonfigurovat funkci Speciální fond z příkazového řádku. Ve starších verzích Windows můžete funkci Speciální fond nastavit a nakonfigurovat pouze v dialogovém okně Globální příznaky.

Vyžádání speciálního fondu podle značky fondu bez restartování

Následující příkaz požaduje speciální fond pro všechna přidělení se značkou fondu Tag1 . Toto nastavení se okamžitě projeví, ale při vypnutí nebo restartování systému Windows dojde ke ztrátě.

Tento příkaz pomocí parametru /k určuje nastavení příznaku jádra (doba běhu) a zkratky +spp k nastavení speciální žádosti o fond.

gflags /k +spp Tag1

Gflags reaguje tiskem:

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

Všimněte si, že zvláštní požadavek na přidělení fondu není nastavením příznaku jádra a neprojeví se v hodnotě nastavení jádra.

Speciální žádost o přidělení fondu také nezmění hodnotu přetečení (0x1) ani nastavení podtečení (0x0) pro speciální fond. Chcete-li změnit výchozí nastavení z přetečení na podtečení, použijte dialogové okno Gflags. Informace najdete v tématu Detekce přetečení a podtečení.

Značku fondu nelze zobrazit na příkazovém řádku. Pokud chcete ověřit, že je značka fondu nastavením jádra, použijte dialogové okno Gflags.

Žádost o speciální fond podle značky fondu v registru

Následující příkaz požaduje speciální fond pro všechna přidělení se značkou fondu Tag1 . Vzhledem k tomu, že toto nastavení je uloženo v registru, musíte restartovat počítač, aby byl efektivní, ale zůstane efektivní, dokud ho nezměníte.

Tento příkaz používá parametr /r k určení nastavení registru a zkratky +spp k nastavení zvláštní žádosti o fond.

gflags /r +spp Tag1

Gflags reaguje tiskem:

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

Všimněte si, že speciální požadavek na přidělení paměťového fondu není nastavení příznaku registru a není vidět v nastavení hodnot registru.

Speciální žádost o přidělení fondu také nezmění hodnotu přetečení (0x1) ani nastavení podtečení (0x0) pro speciální fond. Chcete-li změnit z přetoků, které jsou výchozí, na podtoky, použijte dialogové okno Gflags. Informace najdete v tématu Detekce přetečení a podtečení.

Chcete-li ověřit, zda byla hodnota přidána do registru, použijte reg nebo regedit k zobrazení hodnoty položky PoolTag v klíčiHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management .

Například:

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

Vyžádání speciálního fondu podle velikosti bez restartování

Následující příkaz požaduje speciální fond pro přidělení 1 až 8 bajtů na počítači x86 s PAGE_SIZE 0x1000 a granularitou přidělení 8 bajtů.

Tento příkaz používá parametr /k ke specifikaci nastavení příznaku jádra (doba běhu) a zkratku +spp k nastavení žádosti o speciální paměťový fond. Před hodnotou velikosti je 0x, aby označilo, že jde o velikost, nikoli o značku fondu.

Hodnota 0x10 se vypočítá přidáním granularity přidělení (8 bajtů) k největší velikosti v rozsahu (8 bajtů), což činí celkem 16 bajtů (0x10). Nápovědu k určení správné hodnoty, kterou chcete zadat, najdete v tématu Výběr velikosti přidělení ve speciálním fondu.

gflags /k +spp 0x10

Gflags reaguje tiskem:

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

Znovu platí, že speciální požadavek na přidělení fondu není nastavení příznaku jádra a neprojeví se v hodnotě nastavení jádra.

Speciální žádost o přidělení fondu také nezmění hodnotu přetečení (0x1) ani konfiguraci nastavení podtečení (0x0) pro speciální fond. Chcete-li změnit výchozí nastavení z přetečení na podtečení, použijte dialogové okno Gflags. Informace najdete v tématu Detekce přetečení a podtečení.

Požádat o speciální fond podle velikosti v registru

Následující příkaz požaduje speciální fond pro přidělení 1024 až 1040 bajtů na počítači x64 s velikostí stránky (PAGE_SIZE) 0x1000 a granularitou přidělení 16 bajtů.

Tento příkaz pomocí parametru /r určuje nastavení registru pro celý systém a zkratku +spp k nastavení speciální žádosti o fond. Hodnotu velikosti předchází 0x, která označuje, že se jedná o velikost, a ne značku fondu.

Hodnota 0x420 se vypočítá tak, že se k největší velikosti v rozsahu (1040 bajtů) přidá granularita přidělení (16 bajtů), což dohromady činí celkem 1056 bajtů (0x420). Nápovědu k určení správné hodnoty, kterou chcete zadat, najdete v tématu Výběr velikosti přidělení ve speciálním fondu.

gflags /r +spp 0x420

Gflags reaguje tiskem:

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

Znovu platí, že žádost o speciální přidělení paměťového fondu není nastavením příznaku registru a neprojeví se v hodnotě nastavení registru.

Speciální žádost o přidělení fondu také nezmění hodnotu přetečení (0x1) ani nastavení podtečení (0x0) pro speciální fond. Chcete-li změnit z přetečení, které je výchozí, na podtečení, použijte dialogové okno Gflags. Informace najdete v tématu Detekce přetečení a podtečení.

Chcete-li ověřit, zda byla hodnota přidána do registru, použijte reg nebo regedit k zobrazení hodnoty položky PoolTag v klíčiHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management .

Například:

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

Zrušení žádosti o zvláštní fond

Následující příkaz zruší požadavek na speciální fond jako nastavení příznaku jádra (doba běhu). Příkaz je stejný pro žádost podle značky fondu či velikosti.

gflags /k -spp

Následující příkaz zruší žádost o speciální fond jako nastavení registru. Příkaz je stejný pro požadavek podle tagu fondu nebo podle velikosti.

gflags /r -spp

Po úspěšném provedení příkazu odpoví Gflags tiskem:

Special Pool value has been deleted.