Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Használat ellenőrzése
A Filter Verifier a következő használatot ellenőrzi egy miniszűrő-illesztőprogramban:
- Paraméterek és hívási környezet helyes használata
- Az előműködtetési és a postoperációs visszahívási rutinok visszatérési értékeinek javítása
- A visszahívási adatok paramétereinek konzisztens és koherens módosítása
Szűrőkezelő objektumkövetése
A Filter Verifier a következő szűrőkezelő objektumokat követi nyomon:
- Környezetek szűrése (streamkörnyezetek, fájlkörnyezetek stb.)
- Visszahívási adatstruktúrák
- Várólistán lévő munkaelemek
- NameInformation struktúrák
- Fájlobjektumok
- Objektumok szűrése
- Példányobjektumok
- Kötetobjektumok
A referenciaszámlált struktúrák, például a szűrőkörnyezetek és a névinformációs struktúrák esetében a Filter Verifier megnyitja a hibakeresőt a szűrőmeghajtó eltávolításakor, ha úgy tűnik, hogy a hivatkozási számok kiszivárogtak. A program útmutatást jelenít meg arról, hogyan keresheti meg a kiszivárgott struktúrákat a !fltkd hibakereső bővítmény használatával.
Szűrő ellenőrző megsértései
Amikor a Filter Verifier észleli a szabálysértést, egy üzenetet nyomtat ki a szabálysértést leíró hibakeresőben. A legtöbb szabálysértés esetén az is leállítja a végrehajtást, és felszólítja a felhasználót, hogy tegyen valamilyen műveletet. Például:
FILTER VERIFIER ERROR: A filter returned an unknown pre-operation callback status.
(Filter = FFFFAC04A21CD8A0 (MyFilter), Status = 0xbaadf00d)
Break, ignore, zap or remove ?
A folytatáshoz írja be a négy egybetűs parancs egyikét:
-
Bvagybmegszakítás esetén: Ez megszakítja a programot a hibakeresőben, ahol további vizsgálatokat végezhet. -
Ivagyia Figyelmen kívül hagyás esetén: Folytatja a végrehajtást. Ha ez a szabálysértés ismét előfordul, a Szűrő-ellenőrző kinyomtatja a szabálysértési üzenetet a hibakeresőnek, leállítja a végrehajtást, és megjeleníti a kérést. -
ZvagyzZap esetében: Folytatja a végrehajtást. Ha ez a szabálysértés ismét előfordul, a Szűrő-ellenőrző kinyomtatja a szabálysértési üzenetet a hibakeresőnek, de NEM fogja leállítani a végrehajtást. -
Rvagyreltávolítás esetén: Folytatja a végrehajtást. Ha ez a szabálysértés ismét előfordul, a Szűrő ellenőrzése nem fogja kinyomtatni a szabálysértési üzenetet, és NEM fogja leállítani a végrehajtást.
Megjegyzés
Ha olyan illesztőprogramon használja a Filter Verifiert, amelyet a fordítóoptimalizálással hoztak létre, időnként olyan Filter Verifier hibával találkozhat, amely következetesen azt állítja, hogy az ön szűrője szivárogtatott hivatkozásokat egy vagy több erőforrásra, még akkor is, ha nem találja a szivárgás okát a kódjában. Az üzenet a következőhöz hasonló szöveggel kezdődik:
FILTER VERIFIER ERROR: A filter (Filter = FFFFAC04A21CD8A0 (MyFilter)) leaked references to the following resources:
Előfordulhat, hogy egy üzenet azt jelzi, hogy az objektumkövetés nincs szinkronizálva, például:
FILTER VERIFIER WARNING: Filter manager verifier object tracking may be out of sync for the system
Ennek a feltételnek a leggyakoribb oka az, hogy a Filter Verifier nem tudta azonosítani a Filter Manager API valódi hívóját a farokhívás optimalizálása miatt. Ez akkor fordulhat elő, ha az illesztőprogram egy rutinja egy Filter Manager API-t hív meg az utolsó sorként. Például:
void MyWorkItemCallback(PFLT_GENERIC_WORKITEM WorkItem,
PVOID Filter,
PVOID Context)
{
// Do some stuff
...
FltFreeGenericWorkItem(WorkItem);
}
A következő módokon ellenőrizheti, hogy ez történt-e:
- Zárja be
#pragma optimize("", off) ... #pragma optimize("", on)köré a gyanús rutin optimalizálásának tiltását. - Rendezze újra a kódot úgy, hogy a Filter Manager API-hívás nem az utolsó dolog, ami a rutinban történik.
Ha a hiba az egyik lehetőség kipróbálása után már nem reprodukálódik, valószínűleg hamis pozitív.
A beállítás aktiválása
A parancssor használatával aktiválhatja egy vagy több illesztőprogram fájlrendszerszűrő-ellenőrzési funkcióját verifier.exe . További részletekért lásd: Illesztőprogram-ellenőrző beállításainak kiválasztása.
Megjegyzés
A Windows 25126-os build előtt nem támogatott a fájlrendszer szűrőellenőrzésének engedélyezése, ha az ntoskrnl is ki van választva ellenőrzésre ugyanazon alkalommal, akár egy, akár több miniszűrő esetében. Ez hamis hitelesítő hibákat eredményezhet.
A probléma elkerülése érdekében a 25126-os build után ne vegye fel az ntoskrnl-t az összetevők listájába a Windows egy verziójának ellenőrzéséhez vagy frissítéséhez.
A Filter Verifier indításának ajánlott módja a /standard lehetőség verifier.exe, mivel további hasznos funkciókat biztosít, például a speciális készletet és a készletkövetést:
verifier.exe /standard /driver MyFilter.sys
Az ellenőrzés akkor kezdődik, amikor a miniszűrő-illesztőprogram regisztrál a szűrőkezelővel.
Csak a Filter Verifier engedélyezése Windows 11-ben és újabb Windows-verziókban A szűrőellenőrzések minimális készletének engedélyezéséhez engedélyezze az I/O-ellenőrzési és fájlrendszerszűrő-ellenőrzési beállításokat az Illesztőprogram-ellenőrzőben (verifier.exe). Például:
verifier.exe /ruleclasses 5 37 /driver MyFilter.sysCsak a Filter Verifier engedélyezése a Windows 10-ben és a Windows korábbi verzióiban A Szűrőhitelesítő-ellenőrzések minimális készletének engedélyezéséhez adja meg a miniszűrő-illesztőprogram nevét, és engedélyezze az I/O-ellenőrzést a Driver Verifierben (verifier.exe). Például:
verifier.exe /flags 0x10 /driver MyFilter.sys