Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce Speciální fond konfiguruje systém Windows tak, aby požadoval přidělení paměti z vyhrazeného fondu paměti, pokud je paměť přidělena se zadanou značkou fondu nebo je v zadaném rozsahu velikostí.
Abbreviation |
Spp |
Šestnáctková hodnota |
(Žádné) |
Symbolický název |
(Žádné) |
Cíl |
Položka registru pro celý systém (Windows Vista a novější) Systémová položka registru, příznak kernelu |
Výběr značky fondu
Při žádosti o speciální fond pro konkrétní identifikátor fondu se ujistěte, že váš ovladač nebo jiný program v režimu jádra používá jedinečný identifikátor fondu.
Při vytváření značky fondu (například pomocí exAllocatePoolWithTag) zvažte zadání znaků značek v obráceném pořadí. Pokud je značka Fred, zvažte její zadání jako derF (0x64657246). Značky fondu se ukládají v registru a zobrazují se v ladicím programu a dalších nástrojích v obráceném pořadí (dolní endian). Pokud je zadáte v obráceném pořadí, zobrazí se v předním pořadí (0x46726564).
Pokud máte podezření, že váš ovladač využívá celý speciální fond, zvažte použití více značek fondu v kódu. Potom můžete ovladač otestovat několikrát a přiřadit speciální fond jednomu tagu fondu v každém testu.
Vyberte také značku fondu s šestnáctkovou hodnotou, která je větší než velikost stránky systému. Pokud pro kód režimu jádra zadáte značku fondu, která má hodnotu menší než PAGE_SIZE, Gflags požádá o speciální fond pro všechna přidělení, jejichž velikost je v odpovídajícím rozsahu a požaduje zvláštní fond pro přidělení s ekvivalentní značkou fondu. Pokud například vyberete velikost 30, speciální fond se použije pro všechna přidělení v rozsahu 17 až 32 bajtů a pro přidělení se značkou fondu 0x0030.
Výběr velikosti přidělení
Pomocí následujících pokynů vyberte velikost přidělení pro funkci Speciální fond.
V počítači s procesorem x86 je PAGE_SIZE 0x1000 a rozsahy velikosti přidělení jsou 8 bajtů. Pokud chcete nakonfigurovat funkci Speciální fond pro všechna přidělení s velikostmi v tomto rozsahu, zadejte číslo, které se rovná maximu tohoto rozsahu plus 8. (Toto číslo je vždy násobkem 8.) Následující tabulka znázorňuje tyto hodnoty:
| Rozsah velikostí | Zadejte toto číslo. |
|---|---|
1 až 8 bajtů |
10 (desítkové číslo 16) |
9 až 16 bajtů |
18 (desítkové číslo 24) |
17 až 24 bajtů |
20 (desítkové číslo 32) |
... |
... |
0xFE9 až 0xFF0 bajtů |
FF8 (desítkové číslo 4088) |
Na počítači s procesorem AMD x86-64 je PAGE_SIZE 0x1000 a rozsahy velikostí přidělení mají délku 16 bajtů. Pokud chcete nakonfigurovat funkci Speciální fond pro všechna přidělení s velikostmi v tomto rozsahu, zadejte číslo, které se rovná maximálnímu počtu tohoto rozsahu plus 16. (Toto číslo je vždy násobkem 16.) Následující tabulka znázorňuje tyto hodnoty:
| Rozsah velikostí | Zadejte toto číslo. |
|---|---|
1 až 16 bajtů |
20 (desítkové číslo 32) |
17 až 32 bajtů |
30 (desítkové číslo 48) |
33 až 48 bajtů |
40 (desítkové číslo 64) |
... |
... |
0xFD1 až 0xFE0 bajtů |
FF0 (desítkové číslo 4080) |
Na počítači s libovolným procesorem můžete pomocí hvězdičky ( * ) nebo 0x2A (desítkové číslo 42) nakonfigurovat funkci Speciální fond pro všechny přidělení paměti v systému.
komentáře k
Informace o konfiguraci funkce Speciální fond v dialogovém okně Globální příznaky naleznete v tématu Konfigurace speciálního fondu. Informace o konfiguraci funkce Speciální fond na příkazovém řádku najdete v části Příkazy GFlags. Příklad najdete v příkladu 14: Konfigurace speciálního fondu.
Funkce Speciální pool Gflags směruje systém Windows, aby při žádosti o přidělení paměti byla tato paměť přidělena z vyhrazeného poolu paměti, pokud je přidělena se specifikovanou značkou poolu nebo v rámci specifikovaného rozsahu velikostí. Pokud chcete požádat o speciální paměťový fond pro všechna přidělení pro určitý ovladač, použijte nástroj Driver Verifier. Další informace naleznete v tématu "Speciální fond" v části "Driver Verifier" sady Windows Driver Kit (WDK).
Speciální funkce paměťového fondu Gflags a Driver Verifier pomáhají rozpoznat a identifikovat zdroj chyb při použití fondu jádra, například zápis mimo přidělený paměťový prostor nebo odkaz na paměť, která již byla uvolněna.
Ne všechny zvláštní žádosti o fond jsou splněny. Každé přidělení ze speciálního fondu používá jednu stránku nestránkové fyzické paměti a dvě stránky virtuálního adresního prostoru. Pokud dojde k vyčerpání speciálního fondu, přidělí se paměť ze standardního fondu, dokud nebude speciální fond znovu k dispozici. Když je žádost o speciální fond vyřízena ze standardního fondu, vrátí funkce provádějící tuto žádost stav úspěchu. Nevrací chybu, protože přidělení bylo úspěšné, i když nebylo vyplněno ze speciálního fondu.
Velikost speciálního fondu se zvyšuje s množstvím fyzické paměti v systému; v ideálním případě by to mělo být alespoň 1 Gigabajt (GB). Na počítačích x86 se používá prostor jak virtuální, tak fyzický, proto nepoužívejte možnost spouštění /3GB, jestliže používáte speciální paměťový fond. Je také vhodné zvýšit minimální/maximální velikost stránkovacího souboru o faktor dvou nebo tří.
Můžete také nakonfigurovat funkci Speciální pool tak, aby zarovnání přidělení paměti zjistilo odkazy na paměť před přidělením ("nedostatečný přístup") nebo odkazy na paměť nad rámec přidělení ("překročení"). Tato funkce je dostupná pouze v dialogovém okně Globální příznaky ve všech verzích Windows. Podrobnosti najdete v tématu Detekce přetečení a podtečení.
Ve Windows Vista a novějších verzích Systému Windows můžete nakonfigurovat funkci Speciální fond jako nastavení registru, které vyžaduje restartování, ale zůstává účinné, dokud ho nezměníte, nebo jako nastavení příznaku jádra, které nevyžaduje restartování, ale funguje pouze do restartování nebo vypnutí systému Windows. Ve starších verzích Windows je speciální fond k dispozici pouze jako nastavení registru.
Ve Windows Vista a novějších verzích Systému Windows můžete nakonfigurovat funkci Speciální fond buď pomocí dialogového okna Globální příznaky, nebo na příkazovém řádku. Ve starší verzi Windows je tato funkce dostupná pouze v dialogovém okně Globální příznaky.