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.
Sledování fondu paměti monitoruje alokace paměti provedené ovladačem. V okamžiku, kdy je ovladač odpojen, Driver Verifier zajistí, aby všechny přidělené prostředky ovladačem byly uvolněny.
Neuvolněné alokace paměti (označované také jako paměťové úniky) jsou běžnou příčinou nižšího výkonu operačního systému. Ty můžou fragmentovat systémové fondy a nakonec způsobit chybové ukončení systému.
Pokud je tato možnost aktivní, ovladač Verifier vydá kontrolu chyb 0xC4 (s parametrem 1, který se rovná 0x62), pokud se ovladač uvolní bez uvolnění všech jeho přidělení.
Pokud Driver Verifier vydá kontrolu této chyby s parametrem 1, který se rovná 0x51, 0x52, 0x53, 0x54 nebo 0x59, ovladač zapsal do paměti mimo své přidělené oblasti. V takovém případě byste měli funkci Speciální fond povolit, abyste našli zdroj chyby.
Podívejte se na Kontrolu chyb 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) pro seznam parametrů kontroly chyb.
Počínaje verzí Windows Vista povolení volby Sledování fondu rovněž umožňuje sledování uzamčených stránek. Pokud je tato možnost aktivní, Driver Verifier vygeneruje Chybu systému 0xCB (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS), pokud ovladač po vstupně-výstupní operaci neuvolní uzamčené stránky.
Ve Windows 7 a novějších verzích operačního systému Windows podporuje možnost Sledování fondu paměť přidělenou pomocí následujících rozhraní API jádra:
IoAllocateIrp a další rutiny, které můžou přidělovat datové struktury paketů vstupně-výstupních požadavků (IRP)
RtlAnsiStringToUnicodeString a další rutiny řetězců RTL (běhové knihovny)
Při aktivaci sledování alokace paměti fondu ve Windows 7 a novějších verzích operačního systému Windows může nástroj Driver Verifier zjistit pokusy o přidělení paměti fondu jádra s kvótou v kontextu nečinného procesu. Takové pokusy obvykle znamenají, že ovladač přiděluje paměť z rutiny DPC. Kontext vlákna nebo procesu pro rutiny DPC je nespolehlivý, takže pokus o účtování kvóty pro tento proces není správný.
Monitorování sledování skupiny
Statistiky přidělení fondu paměti je možné monitorovat samostatně pro každý ověřený ovladač. Tyto statistiky může zobrazit Správce ověření ovladače, příkazový řádek Verifier.exe nebo v souboru protokolu. Podrobnosti najdete v tématu Monitorování jednotlivých čítačů .
Rozšíření ladicího programu jádra !verifier 0x3 lze použít k vyhledání nevyřízených přidělení paměti poté, co je ovladač uvolněn, nebo ke sledování aktuálních přidělení v době, kdy je ovladač spuštěn. Toto rozšíření také zobrazuje značku fondu, velikost fondu a adresu alokátoru pro každou alokaci. Informace o rozšířeních pro ladění naleznete v tématu Ladění systému Windows.
Poplatky za kvótu poolu z DPC rutiny
Ovladače jádra mohou volat ExAllocatePoolWithQuotaTag pro přidělení paměti fondu jádra a naúčtovat počet bajtů, které jsou přiděleny kvótě fondu aktuálního procesu. Ovladače obvykle používají kvótu pro přidělení paměti, které přímo souvisejí s požadavkem, který pochází z aplikace.
Rutiny volání odložené procedury (DPC) se můžou spouštět v kontextu jakéhokoli procesu. Proto při účtování kvóty z rutiny DPC probíhá náhodný proces. Ještě horší je, že když se rutina DPC spustí v kontextu nečinného procesu, může tato podmínka způsobit poškození paměti nebo chybové ukončení systému.
Počínaje systémem Windows 7 Ověřovač ovladačů detekuje volání ExAllocatePoolWithQuotaTag z rutin DPC.
Aktivace této možnosti
Funkci sledování fondu můžete aktivovat pro jednoho nebo více ovladačů prostřednictvím Správce ověřování ovladačů nebo pomocí příkazového řádku Verifier.exe. Podrobnosti najdete v tématu Výběr možností ověření ovladače.
Na příkazovém řádku
Na příkazovém řádku je možnost Sledování fondu reprezentována bitem 3 (0x8). Pokud chcete aktivovat sledování fondu, použijte hodnotu příznaku 0x8 nebo přidejte 0x8 k hodnotě příznaku. Například:
verifier /flags 0x8 /driver MyDriver.sys
Funkce bude aktivní po dalším spuštění.
V systému Windows Vista a novějších verzích systému Windows můžete také aktivovat a deaktivovat sledování fondu bez restartování počítače přidáním parametru /volatile do příkazu. Například:
verifier /volatile /flags 0x8 /adddriver MyDriver.sys
Toto nastavení je efektivní okamžitě, ale při vypnutí nebo restartování počítače dojde ke ztrátě. Podrobnosti najdete v tématu Použití volatile nastavení.
Funkce Sledování fondu je také součástí standardního nastavení. Například:
verifier /standard /driver MyDriver.sys
Použití Správce ověřovatele ovladačů
- Spusťte Správce ověřovatele ovladačů. Do okna příkazového řádku zadejte ověřitel .
- Vyberte Vytvořit vlastní nastavení (pro vývojáře kódu) a potom klikněte na Další.
- Vyberte jednotlivá nastavení z úplného seznamu.
- Vyberte (zaškrtněte) sledování fondů.
Funkce Sledování fondu je také součástí standardního nastavení. Chcete-li použít tuto funkci, klikněte ve Správci ověření ovladače na tlačítko Vytvořit standardní nastavení.