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.
A szűrőillesztő inicializálása közvetlenül azután történik, hogy a rendszer betölti az illesztőprogramot. A szűrőillesztők rendszerszolgáltatásként töltődnek be. A rendszer bármikor betöltheti a szűrőillesztőket a miniportillesztők betöltése előtt, alatt vagy után. Az NDIS egy szűrőmodult csatolhat egy miniportadapterhez, miután a szűrőillesztő által támogatott típusú miniportadapter elérhetővé válik, és a szűrőillesztő inicializálása befejeződött.
Amíg az illesztőprogram-verem elindul, a rendszer betölti a szűrőket, ha még nincsenek betöltve. További információ a szűrőmodulokat tartalmazó illesztőprogram-verem indításáról: Illesztőprogram-verem indítása.
A szűrőillesztő betöltése után a rendszer meghívja az illesztőprogram DriverEntry rutinját.
A rendszer két argumentumot ad át DriverEntry:
Az I/O-rendszer által létrehozott illesztőprogram-objektumra mutató mutató.
A beállításjegyzék elérési útjára mutató mutató, amely meghatározza az illesztőprogram-specifikus paraméterek tárolási helyét.
DriverEntry visszaadja a STATUS_SUCCESS vagy azzal egyenértékű NDIS_STATUS_SUCCESS értéket, ha az illesztőprogram sikeresen regisztrálódott NDIS szűrőillesztőként. Ha DriverEntry nem inicializálható egy NdisXxx függvény vagy kernel módú támogatási rutin által visszaadott hibaállapot propagálásával, az illesztőprogram nem lesz betöltve. DriverEntry szinkron módon kell végrehajtani; más szóval, nem tudja visszaadni STATUS_PENDING vagy azzal egyenértékű NDIS_STATUS_PENDING.
A szűrőillesztő regisztrálja magát szűrőillesztőként az NDIS-nél, és ekkor továbbítja az illesztőprogram-objektumot a NdisFRegisterFilterDriver függvénynek. Az illesztőprogram a beállításjegyzék elérési útján szerezhet be konfigurációs információkat. A szűrőillesztők konfigurációs adatainak eléréséről további információt A szűrőillesztő konfigurációs adatainak elérésecímű témakörben talál.
Egy szűrőillesztő meghívja NdisFRegisterFilterDriverDriverEntry rutinjából. A szűrőillesztők FilterXxx függvények készletét exportálják azzal, hogy egy NDIS_FILTER_DRIVER_CHARACTERISTICS struktúrát adnak át a NdisFRegisterFilterDriver függvénynek a FilterCharacteristics paraméterként.
A NDIS_FILTER_DRIVER_CHARACTERISTICS struktúra belépési pontokat határoz meg a kötelező és nem kötelező FilterXxx függvényekhez. Néhány választható függvény megkerülhető. A függvények megkerülésével kapcsolatos további információkért tekintse meg az Adat Megkerülési Módrészt.
A NdisFRegisterFilterDriver hívását kezdeményező illesztőprogramoknak készen kell állniuk arra, hogy azonnali hívást kezdeményezhessenek bármelyik FilterXxx függvényükhöz.
A NDIS_FILTER_DRIVER_CHARACTERISTICS struktúra meghatározza a kötelező FilterXxx függvények belépési pontjait:
Az NDIS_FILTER_DRIVER_CHARACTERISTICS struktúra határozza meg ezeknek az opcionális és futásidőben nem módosítható FilterXxx függvényeknek a belépési pontjait.
FilterCancelSendNetBufferLists
A NDIS_FILTER_DRIVER_CHARACTERISTICS struktúra határozza meg az alapértelmezett belépési pontokat ezekhez az opcionális és futásidőben módosítható FilterXxx függvényekhez:
FilterSendNetBufferListsComplete
Az előző négy függvény is definiálva van a NDIS_FILTER_PARTIAL_CHARACTERISTICS struktúrában. Ez a struktúra határozza meg azokat a függvényeket, amelyek futásidőben módosíthatók a NdisSetOptionalHandlers függvény meghívásával a FilterSetModuleOptions függvényből. Ha egy szűrőillesztő futásidőben módosítja ezeket a részleges jellemzőket, meg kell adnia a FilterSetModuleOptionsbelépési pontjának. A részleges jellemzők az egyes szűrőmodulok esetében eltérőek lehetnek. További információ: Szűrőmodul indítása.
Az NDIS meghívja a FilterSetOptions függvényt a NdisFRegisterFilterDriverhívás kontextusában. FilterSetOptions nem kötelező szolgáltatásokat regisztrál az NDIS-ben. További információ: Választható szűrőillesztő-szolgáltatások konfigurálása.
Ha az NdisFRegisterFilterDriver hívása sikeres, az NDIS egy szűrőillesztő illesztőfogantyúval tölti ki a változót a NdisFilterDriverHandle helyén. A szűrőillesztő menti ezt a fogantyút, és később átadja az NDIS-függvényeknek, például a NdisFDeregisterFilterDriver, amelyek bemeneti paraméterként szűrőillesztő fogantyút igényelnek. Amikor az illesztőprogram kiüríti, a NdisFDeregisterFilterDriver függvényt kell meghívnia, hogy felszabadítsa a NdisFRegisterFilterDriveráltal lefoglalt illesztőprogram-erőforrásokat.
Miután FilterSetOptions visszatér, a szűrőmodulok leválasztott állapotban vannak. Az NDIS bármikor meghívhatja a szűrőillesztő FilterAttach függvényét, miután a FilterSetOptions visszatér. Az illesztőprogram szűrőmodul-specifikus inicializálást hajt végre a FilterAttach függvényben. További információ a szűrőmodul illesztőprogram-veremhez való csatolásáról: Szűrőmodul csatolása.
A szűrőillesztő a saját illesztőprogram-specifikus inicializálásait is végrehajtja, amelyeket a DriverEntryigényel. A szűrőillesztőnek fel kell szabadítania a FilterDriverUnload rutinjában lefoglalt illesztőprogram-specifikus erőforrásokat. További információ: Szűrőillesztő eltávolítása.