Delen via


Modus Gegevens overslaan

Het filterstuurprogramma modus voor het overslaan van gegevens kan de systeemprestaties verbeteren. NDIS roept geen FilterXxx functies aan die worden overgeslagen. Als de services voor verzenden en ontvangen bijvoorbeeld niet vereist zijn voor een bepaalde filtertoepassing, kan het filterstuurprogramma de functies voor verzenden en ontvangen overslaan.

Een filterstuurprogramma specificeert de standaardinvoerpunten, voor functies die kunnen worden overgeslagen, tijdens de initialisatie van het stuurprogramma wanneer de functie NdisFRegisterFilterDriver wordt aangeroepen. De toegangspunten zijn NULL- voor functies die standaard worden overgeslagen. Zie Initialiseren van een filterstuurprogrammavoor meer informatie over initialisatie.

Als u de bypassstatus tijdens runtime wilt wijzigen, moet het stuurprogramma tijdens de initialisatie van het stuurprogramma een toegangspunt opgeven voor de FilterSetModuleOptions-functie. Het stuurprogramma kan een NDIS_FILTER_PARTIAL_CHARACTERISTICS structuur initialiseren en de nieuwe kenmerken doorgeven aan de NdisSetOptionalHandlers-functie vanuit de context van FilterSetModuleOptions-.

NDIS roept de FilterSetModuleOptions- functie aan, indien aanwezig, aan het begin van een herstartbewerking. Een filterstuurprogramma kan de bypassmodus onafhankelijk voor elke filtermodule instellen. Zie Een filtermodule startenvoor meer informatie.

Filterstuurprogramma's kunnen de volgende optionele FilterXxx functies omzeilen die zijn opgegeven in de NDIS_FILTER_DRIVER_CHARACTERISTICS structuur:

FilterSendNetBufferLists

FilterSendNetBufferListsComplete

FilterCancelSendNetBufferLists

FilterReturnNetBufferLists

FilterReceiveNetBufferLists

Als u een FilterXxx-functie wilt instellen om de modus te omzeilen, geeft een filterstuurprogramma NULL- op voor het toegangspunt van die functie. Als een stuurprogramma echter een NDIS-functie aanroept die een gekoppelde FilterXxx- functie heeft, moet het een entreepunt opgeven voor die FilterXxx- functie. Als een stuurprogramma bijvoorbeeld de functie NdisFIndicateReceiveNetBufferLists aanroept, moet het een functie FilterReturnNetBufferLists opgeven.

Als een filterstuurprogramma een FilterSendNetBufferLists functie opgeeft en het verzendverzoeken in de wachtrij plaatst, moet het ook een FilterCancelSendNetBufferLists functie opgeven.

Als een filterstuurprogramma een FilterReceiveNetBufferLists of een FilterReturnNetBufferLists functie opgeeft, moet het stuurprogramma ook een FilterStatus functie opgeven.

Als u de instellingen voor de bypassmodus tijdens runtime wilt wijzigen, kan een filterstuurprogramma de NdisFRestartFilter functie aanroepen. NdisFRestartFilter plant een onderbrekingsbewerking die wordt gevolgd door een herstartbewerking voor de opgegeven filtermodule. Wanneer NDIS FilterSetModuleOptionsaanroept, kan het filterstuurprogramma de functies voor die filtermodule wijzigen door NdisSetOptionalHandlers- aan te roepen en een nieuwe set toegangspunten op te geven.

Opmerking Onderbreken en opnieuw opstarten kan ertoe leiden dat sommige netwerkpakketten worden verwijderd op het verzendpad of het ontvangstpad, of beide. Netwerkprotocollen die een betrouwbaar transportmechanisme bieden, kunnen de netwerk-I/O-bewerking opnieuw proberen in het geval van een verloren pakket, maar andere protocollen die geen betrouwbaarheid garanderen, proberen de bewerking niet opnieuw.

Een filterstuurprogramma kan aanvullende optionele functies registreren die optionele stuurprogrammaservices ondersteunen. Het stuurprogramma registreert deze optionele services in de functie FilterSetOptions. Zie Optionele filterstuurprogrammaservices configurerenvoor meer informatie over deze optionele services.