Udostępnij za pośrednictwem


Uruchamianie modułu filtru

Aby uruchomić wstrzymany moduł filtru, NDIS wywołuje funkcję FilterSetModuleOptions sterownika filtru, a następnie funkcję FilterRestart. Moduł filtru przechodzi w stan Ponowne uruchamianie na początku działania w funkcji FilterRestart.

Jeśli sterownik podał punkt wejścia dla FilterSetModuleOptions, sterownik może zmienić częściową charakterystykę modułu filtru. Aby uzyskać więcej informacji, zobacz Tryb obejścia danych.

Gdy NDIS wywołuje funkcję FilterRestart sterownika filtru, przekazuje wskaźnik do struktury NDIS_RESTART_ATTRIBUTES do sterownika filtru w członie RestartAttributes struktury NDIS_FILTER_RESTART_PARAMETERS. Sterowniki filtrów mogą modyfikować atrybuty ponownego uruchamiania określone przez podstawowe sterowniki. Aby uzyskać więcej informacji na temat modyfikowania atrybutów ponownego uruchamiania, zobacz FilterRestart.

Uwaga NDIS wywołuje FilterSetModuleOptions dla wszystkich modułów filtru w stosie, zanim NDIS wywoła funkcję FilterRestart dla dowolnego modułu filtru w tym stosie.

Usługa NDIS uruchamia moduł filtru jako część operacji Plug and Play w celu ponownego uruchomienia stosu sterowników. Aby zapoznać się z omówieniem ponownego uruchamiania stosu sterowników, zobacz Ponowne uruchamianie stosu sterowników.

W imieniu modułu filtru, który znajduje się w stanie Ponowne uruchamianie, sterownik filtru:

  • Wykonuje wszystkie operacje wymagane do ponownego uruchomienia normalnych operacji wysyłania i odbierania.

    Aby uzyskać więcej informacji na temat operacji wysyłania i odbierania, zobacz Filter Module Send and Receive Operations.

  • Może odczytywać lub zapisywać konfigurowalne parametry dla modułu filtru.

  • Może odbierać sygnały dotyczące danych sieciowych. Sterownik może kopiować i kolejkować takie dane oraz przekazywać je do wyższych poziomem sterowników później lub może odrzucić dane.

  • Nie należy rozpoczynać żadnych nowych sygnałów odbioru.

  • Należy natychmiast odrzucić wszystkie nowe żądania wysyłania wysłane do funkcji FilterSendNetBufferLists przez wywołanie funkcji NdisFSendNetBufferListsComplete. Powinien ustawić status pełny w każdej NET_BUFFER_LIST na NDIS_STATUS_PAUSED.

  • Może zapewniać wskazania stanu za pomocą funkcji NdisFIndicateStatus.

    Aby uzyskać więcej informacji o wskazaniach stanu, zobacz Identyfikatory stanu modułu filtru.

  • Powinna obsługiwać żądania OID w funkcji FilterOidRequest.

    Aby uzyskać więcej informacji na temat żądań OID, zobacz Filter Module OID Requests.

  • Nie należy inicjować żadnych nowych żądań wysyłania.

  • Należy natychmiast zwrócić nowe wskazania odebrania do NDIS przez wywołanie funkcji NdisFReturnNetBufferLists. W razie potrzeby sterownik może skopiować takie wskazania, zanim je zwróci.

  • Może wysyłać żądania identyfikatora OID do podstawowych sterowników w celu ustawienia lub wykonywania zapytań dotyczących zaktualizowanych informacji o konfiguracji.

  • Powinna obsługiwać wskazania stanu w funkcji FilterStatus.

  • Powinien wskazywać NDIS_STATUS_SUCCESS lub status błędu. Jeśli moduł filtru nie zostanie uruchomiony ponownie, NDIS odłączy go, a jeśli jest to obowiązkowy filtr, NDIS przerywa cały stos sterownika.

Po tym, jak sterownik filtru pomyślnie uruchomi ponownie operacje wysyłania i odbierania, musi zakończyć operację ponownego uruchamiania. Sterownik filtru może wykonać operację ponownego uruchamiania synchronicznie, zwracając NDIS_STATUS_SUCCESS, lub asynchronicznie, zwracając NDIS_STATUS_PENDING, z FilterRestart.

Jeśli sterownik zwróci NDIS_STATUS_PENDING, musi wywołać funkcję NdisFRestartComplete po zakończeniu operacji ponownego uruchamiania. W takim przypadku sterownik przekazuje ostatni stan operacji ponownego uruchamiania do NdisFRestartComplete.

Po zakończeniu operacji ponownego uruchamiania moduł filtra jest w stanie Uruchomione. Sterownik wznowi normalne przetwarzanie wysyłania i odbierania.

NDIS nie inicjuje innych operacji Plug and Play, takich jak dołączanie, odłączanie lub wstrzymywanie żądań, podczas gdy sterownik filtru jest w stanie Ponowne uruchamianie. Usługa NDIS może inicjować wstrzymywanie żądań po tym, jak sterownik filtru jest w stanie Uruchomione. Aby uzyskać więcej informacji na temat wstrzymania modułu filtru, zobacz Wstrzymanie Modułu Filtru.