Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Initialisatie van filterstuurprogramma's vindt direct plaats nadat het systeem het stuurprogramma heeft geladen. Filterstuurprogramma's worden als systeemservices geladen. Het systeem kan de filterstuurprogramma's op elk gewenst moment vóór, tijdens of na de belasting van de minipoortstuurprogramma's laden. NDIS kan een filtermodule koppelen aan een minipoortadapter nadat een minipoortadapter van het type dat wordt ondersteund door het filterstuurprogramma beschikbaar is en de initialisatie van het filterstuurprogramma is voltooid.
Terwijl een stuurprogrammastack wordt gestart, laadt het systeem de filterstuurprogramma's als deze nog niet zijn geladen. Zie Een stuurprogrammastack startenvoor meer informatie over het starten van een stuurprogrammastack die filtermodules bevat.
Nadat een filterstuurprogramma is geladen, roept het systeem de DriverEntry routine aan.
Het systeem geeft twee argumenten door aan DriverEntry-:
Een aanwijzer naar het stuurprogrammaobject, dat is gemaakt door het I/O-systeem.
Een aanwijzer naar het registerpad, waarmee wordt aangegeven waar stuurprogrammaspecifieke parameters worden opgeslagen.
DriverEntry- retourneert STATUS_SUCCESS of de bijbehorende NDIS_STATUS_SUCCESS, als het stuurprogramma succesvol geregistreerd is als een NDIS-filterstuurprogramma. Als de initialisatie van DriverEntry- mislukt door een foutstatus door te geven die wordt geretourneerd door een NdisXxx--functie of door een ondersteuningsroutine voor kernelmodus, zal het stuurprogramma niet geladen blijven. DriverEntry moet synchroon worden uitgevoerd; dat wil zeggen, het kan geen STATUS_PENDING of het equivalent NDIS_STATUS_PENDING retourneren.
Het filterstuurprogramma geeft het stuurprogrammaobject door aan de NdisFRegisterFilterDriver functie wanneer het wordt geregistreerd bij NDIS als filterstuurprogramma. Het stuurprogramma kan het registerpad gebruiken om configuratiegegevens op te halen. Zie Toegang tot configuratiegegevens van een filterstuurprogrammavoor meer informatie over hoe u toegang krijgt tot configuratiegegevens van filterstuurprogramma's.
Een filterdriver roept NdisFRegisterFilterDriver aan vanuit zijn DriverEntry routine. Filterstuurprogramma's exporteren een set FilterXxx--functies door een NDIS_FILTER_DRIVER_CHARACTERISTICS structuur te overhandigen aan NdisFRegisterFilterDriver- bij de FilterCharacteristics parameter.
De NDIS_FILTER_DRIVER_CHARACTERISTICS structuur geeft toegangspunten op voor verplichte en optionele FilterXxx functies. Sommige optionele functies kunnen worden overgeslagen. Voor meer informatie over het overslaan van functies, zie Gegevensbypassmodus.
Stuurprogramma's die NdisFRegisterFilterDriver aanroepen moeten worden voorbereid op een onmiddellijke aanroep van een van hun FilterXxx--functies.
De NDIS_FILTER_DRIVER_CHARACTERISTICS structuur geeft de toegangspunten op voor deze verplichte FilterXxx functies:
De structuur NDIS_FILTER_DRIVER_CHARACTERISTICS specificeert de toegangspunten voor deze optionele functies FilterXxx, die tijdens runtime niet gewijzigd kunnen worden.
FilterCancelSendNetBufferLists
De NDIS_FILTER_DRIVER_CHARACTERISTICS structuur geeft de standaardinvoerpunten op voor deze optionele, en wijzigbaar tijdens runtime, FilterXxx functies:
FilterSendNetBufferListsComplete
De voorgaande vier functies worden ook gedefinieerd in de NDIS_FILTER_PARTIAL_CHARACTERISTICS structuur. Deze structuur geeft de functies op die tijdens een runtime kunnen worden gewijzigd door de NdisSetOptionalHandlers-functie aan te roepen vanuit de FilterSetModuleOptions-functie. Als een filterstuurprogramma deze gedeeltelijke kenmerken tijdens runtime wijzigt, moet het het toegangspunt voor FilterSetModuleOptions-opgeven. De gedeeltelijke kenmerken kunnen voor elke filtermodule verschillen. Zie Een filtermodule startenvoor meer informatie.
NDIS roept de functie FilterSetOptions- aan binnen de context van de aanroep naar NdisFRegisterFilterDriver-. FilterSetOptions- registreert optionele services bij NDIS. Zie Optionele filterstuurprogrammaservices configurerenvoor meer informatie.
Als het oproepen van NdisFRegisterFilterDriver slaagt, vult NDIS de variabele bij NdisFilterDriverHandle met een filter driver handle. Het filterstuurprogramma slaat deze ingang op en geeft deze ingang later door aan NDIS-functies, zoals NdisFDeregisterFilterDriver, waarvoor een filterstuurprogrammagreep als invoerparameter is vereist. Wanneer het stuurprogramma wordt uitgeladen, moet het de functie NdisFDeregisterFilterDriver aanroepen om de stuurprogrammabronnen vrij te geven die zijn toegewezen door NdisFRegisterFilterDriver.
Nadat FilterSetOptions is geretourneerd, bevinden de filtermodules zich in de losgekoppelde status. NDIS kan de FilterAttach- functie van het filterstuurprogramma op elk gewenst moment aanroepen nadat de aanroep naar FilterSetOptions wordt geretourneerd. Het stuurprogramma voert filtermodulespecifieke initialisatie uit in de functie FilterAttach. Zie Een filtermodule koppelenvoor meer informatie over het koppelen van een filtermodule aan een stuurprogrammastack.
Een filterstuurprogramma voert ook andere stuurprogrammaspecifieke initialisatie uit die nodig is in DriverEntry-. Het filterstuurprogramma moet de stuurprogrammaspecifieke resources vrijgeven die het toewijst in de FilterDriverUnload routine. Zie Loskoppelen van een filterstuurprogramma voor meer informatie.