Udostępnij przez


Tryb pomijania danych

Sterownik filtru w trybie obejścia danych może zapewnić lepszą wydajność systemu. NDIS nie wywołuje funkcji FilterXxx, które są pomijane. Jeśli na przykład usługi wysyłania i odbierania nie są wymagane dla danej aplikacji filtru, sterownik filtru może pominąć funkcje wysyłania i odbierania.

Sterownik filtru określa domyślne punkty wejścia dla funkcji, które można pominąć, podczas inicjowania sterownika, gdy wywołuje funkcję NdisFRegisterFilterDriver. Punkty wejścia są null dla funkcji, które są domyślnie pomijane. Aby uzyskać więcej informacji na temat inicjowania, zobacz Inicjowanie sterownika filtru.

Aby zmienić stan obejścia w czasie wykonywania, sterownik musi określić punkt wejścia dla funkcji FilterSetModuleOptions podczas inicjowania sterownika. Sterownik może zainicjować strukturę NDIS_FILTER_PARTIAL_CHARACTERISTICS i przekazać nowe charakterystyki do funkcji NdisSetOptionalHandlers z poziomu kontekstu FilterSetModuleOptions.

Usługa NDIS wywołuje funkcję FilterSetModuleOptions, jeśli takowa istnieje, na początku restartu. Sterownik filtru może ustawić tryb obejścia niezależnie dla każdego modułu filtru. Aby uzyskać więcej informacji, zobacz Uruchamianie modułu filtru.

Sterowniki filtrów mogą pominąć następujące opcjonalne funkcje FilterXxx określone w strukturze NDIS_FILTER_DRIVER_CHARACTERISTICS:

FilterSendNetBufferLists

FilterSendNetBufferListsComplete

FilterCancelSendNetBufferLists

FilterReturnNetBufferLists

FilterReceiveNetBufferLists

Aby ustawić funkcję FilterXxx w trybie obejścia, sterownik filtra określa NULL dla punktu wejścia tej funkcji. Jeśli jednak sterownik wywołuje dowolną funkcję NDIS, która ma skojarzoną funkcję FilterXxx; musi podać punkt wejścia dla tej funkcji FilterXxx. Jeśli na przykład sterownik wywołuje funkcję NdisFIndicateReceiveNetBufferLists, musi podać funkcję FilterReturnNetBufferLists.

Jeśli sterownik filtru określa funkcję FilterSendNetBufferLists i kolejkuje żądania wysyłania, musi również określić funkcję FilterCancelSendNetBufferLists.

Jeśli sterownik filtru określa funkcję FilterReceiveNetBufferLists lub FilterReturnNetBufferLists, sterownik musi również określić funkcję FilterStatus.

Aby zmienić ustawienia trybu obejścia w czasie wykonywania, sterownik filtru może wywołać funkcję NdisFRestartFilter. NdisFRestartFilter planuje operację wstrzymania, po której następuje operacja ponownego uruchamiania określonego modułu filtru. Gdy NDIS wywoła FilterSetModuleOptions, sterownik filtru może zmienić funkcje tego modułu filtru, wywołując NdisSetOptionalHandlers i określając nowy zestaw punktów wejściowych.

Uwaga wstrzymywanie i ponowne uruchamianie może spowodować, że niektóre pakiety sieciowe zostaną porzucone na ścieżce transmisji lub ścieżce odbierania albo obu tych pakietów. Protokoły sieciowe, które zapewniają niezawodny mechanizm transportu, mogą ponowić próbę wykonania operacji we/wy sieci w przypadku utraconego pakietu, ale inne protokoły, które nie gwarantują niezawodności, nie ponawiają próby wykonania operacji.

Sterownik filtru może rejestrować dodatkowe funkcje opcjonalne, które obsługują opcjonalne usługi sterowników. Sterownik rejestruje te opcjonalne usługi w funkcji FilterSetOptions. Aby uzyskać więcej informacji na temat tych opcjonalnych usług, zobacz Konfigurowanie opcjonalnych usług sterowników filtrów.