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.
Ověření využití
Nástroj Filtr Verifier validuje následující použití v ovladači minifiltru:
- Správné použití parametrů a kontextu volání
- Oprava návratových hodnot z rutin zpětného volání předoperačních a pooperačních operací
- Konzistentní a koherentní změny parametrů v datech zpětného volání
Sledování objektů Správce filtrů
Filtr Verifier sleduje následující objekty správce filtru:
- Kontexty filtru (kontexty streamu, kontexty souborů atd.)
- Datové struktury zpětného volání
- Pracovní položky zařazené do fronty
- struktury informací o názvech
- Objekty souborů
- Filtrování objektů
- Instanční objekty
- Objekty svazků
U odkazovaných struktur, jako jsou kontexty filtrů a struktury informací o názvech, nástroj Filter Verifier zastaví v ladicím režimu při uvolnění ovladače filtru, pokud se zdá, že některé počty odkazů byly uniklé. Vytiskne pokyny, jak můžete použít rozšíření ladicího programu !fltkd k nalezení uniklých struktur.
Porušení ověřovatele filtru
Když nástroj Filter Verifier zjistí porušení, vytiskne zprávu v ladicím programu, který popisuje porušení. U většiny porušení se také zastaví spuštění a vyzve uživatele, aby nějakou akci podnikl. Například:
FILTER VERIFIER ERROR: A filter returned an unknown pre-operation callback status.
(Filter = FFFFAC04A21CD8A0 (MyFilter), Status = 0xbaadf00d)
Break, ignore, zap or remove ?
Pokud chcete pokračovat, zadejte jeden ze čtyř příkazů s jedním písmenem:
-
B
nebob
pro přerušení: Tím se přepne do ladicího programu, kde můžete provést další šetření. -
I
neboi
pro Ignorovat: Obnoví provádění. Pokud k tomuto porušení dojde znovu, filtr Verifier vytiskne zprávu o porušení do ladicího programu, zastaví spuštění a zobrazí výzvu. -
Z
neboz
pro Zap: Obnoví provádění. Pokud k tomuto porušení dojde znovu, filtr Verifier vytiskne zprávu o porušení do ladicího programu, ale nezastaví provádění. -
R
nebor
pro Odstranit: Obnoví provádění. Pokud k tomuto porušení dojde znovu, filtr Verifier netiskne zprávu o porušení a nezastaví provádění.
Poznámka:
Při použití nástroje Filter Verifier na ovladači, který byl vytvořen s povolenými optimalizacemi kompilace, se můžete občas setkat s chybou Filter Verifier, která neustále tvrdí, že filtr uskutěčnil úniky odkazů na jeden nebo více prostředků, i když nemůžete najít příčinu úniku ve vašem kódu. Zpráva bude začínat textem podobným následujícímu:
FILTER VERIFIER ERROR: A filter (Filter = FFFFAC04A21CD8A0 (MyFilter)) leaked references to the following resources:
Může se také zobrazit zpráva, že sledování objektů není synchronizované, například:
FILTER VERIFIER WARNING: Filter manager verifier object tracking may be out of sync for the system
Nejčastější příčinou této situace je, že Filter Verifier nemohl identifikovat skutečného volajícího rozhraní API správce filtru kvůli optimalizaci zadního volání. K tomu může dojít, když rutina v ovladači volá rozhraní API Správce filtrů jako poslední řádek. Například:
void MyWorkItemCallback(PFLT_GENERIC_WORKITEM WorkItem,
PVOID Filter,
PVOID Context)
{
// Do some stuff
...
FltFreeGenericWorkItem(WorkItem);
}
Existuje několik způsobů, jak ověřit, že k tomu došlo:
- Zakažte optimalizaci podezřelé rutiny tím, že ji zabalíte do
#pragma optimize("", off) ... #pragma optimize("", on)
. - Změna pořadí kódu tak, aby volání rozhraní API Filter Manageru nebylo poslední věcí, která se v rutině děje.
Pokud se chyba po vyzkoušení některé z těchto možností už nereprodukuje, pravděpodobně je falešně pozitivní.
Aktivace této možnosti
Funkci Ověření filtru systému souborů můžete aktivovat pro jeden nebo více ovladačů pomocí příkazového verifier.exe
řádku. Podrobnosti najdete v tématu Výběr možností ověření ovladače.
Poznámka:
Před sestavením Windows 25126 není podporováno povolit ověření filtru systému souborů na jednom nebo více minifiltrech současně s tím, že je pro ověření vybrán `ntoskrnl`. To může vést k nechutným chybám verifieru.
Chcete-li se tomuto problému vyhnout, nezahrňte ntoskrnl do seznamu komponent k ověření nebo upgradu na verzi Systému Windows po sestavení 25126.
Doporučený způsob spuštění nástroje Filter Verifier je s volbou
verifier.exe /standard /driver MyFilter.sys
Ověření se spustí, když se ovladač minifiltru zaregistruje ve správci filtru.
Povolení pouze ověřovatele filtru ve Windows 11 a novějších verzích Windows Pokud chcete povolit minimální sadu kontrol ověřovatele filtru, povolte možnosti ověřování vstupně-výstupních operací a ověření filtru systému souborů v nástroji Driver Verifier (verifier.exe). Například:
verifier.exe /ruleclasses 5 37 /driver MyFilter.sys
Povolení pouze ověřovatele filtru ve Windows 10 a předchozích verzích Windows Chcete-li povolit minimální sadu kontrol ověřovatele filtru, zadejte název ovladače minifiltru a povolte možnost Ověření vstupně-výstupních operací v nástroji Ověření ovladače (verifier.exe). Například:
verifier.exe /flags 0x10 /driver MyFilter.sys