Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete pozastavit spuštěný modul filtru, NDIS volá funkci FilterPause ovladače filtru. Modul filtru přejde do stavu pozastavení na začátku spuštění ve funkci FilterPause.
NDIS pozastaví modul filtru jako součást operace Zapoj a hraj a pozastaví stoh ovladačů. Pro přehled o pozastavení zásobníku ovladačů si přečtěte Pozastavení zásobníku ovladačů.
Za modul filtru, který je ve stavu pozastavení, ovladač filtru:
Nemělo by generovat žádné nové přijímací indikace.
Další informace o operacích odesílání a příjmu naleznete v tématu modul filtru odesílání a přijímání operací.
Pokud existují operace příjmu, které ovladač filtru zahájil a které NDIS nedokončil, musí ovladač filtru počkat na to, až NDIS tyto operace dokončí. Operace pozastavení není dokončena, dokud NDIS nezavolá FilterReturnNetBufferLists funkci pro všechny takové nevyrovnané indikace příjmu.
Měly by vrátit všechny nevyrovnané informace o tom, že podkladové ovladače pocházejí z NDIS okamžitě. Operace pozastavení není dokončena, dokud ovladač nezavolá funkci NdisFReturnNetBufferLists pro tyto nevyřízené indikace příjmu. Tyto nevyřízené indikace příjmu mohou nastat, pokud ovladač zařadí vyrovnávací paměti, které přijímá od základních ovladačů.
Měla by okamžitě vrátit nové indikace přijetí, že základní ovladače pocházejí z NDIS, voláním funkce NdisFReturnNetBufferLists. Pokud je to nutné, může ovladač zkopírovat přijaté indikace a zařadit je do fronty dříve, než je vrátí.
PoznámkaNdisFReturnNetBufferLists by neměly být volány pro seznamy NBLs označené příznakem NDIS_RECEIVE_FLAGS_RESOURCES nastaveným v odpovídající FilterReceiveNetBufferLists volání. Tyto NBL jsou synchronně vráceny do NDIS voláním návratu z rutiny FilterReceiveNetBufferLists.
Neměly by být vytvářeny žádné nové žádosti o odeslání.
Pokud existují operace odesílání, které ovladač filtru zahájil a že NDIS nedokončil, musí ovladač filtru počkat, až NDIS dokončí takové operace. Operace pozastavení není dokončena, dokud NDIS, nevolá funkci FilterSendNetBufferListsComplete pro všechny takové nevyřízené požadavky odeslání.
Měla by všechny nové žádosti o odeslání, které byly provedeny přes její funkci FilterSendNetBufferLists, okamžitě vrátit zavoláním funkce NdisFSendNetBufferListsComplete. Ovladač filtru by měl nastavit člen stavového v každé struktuře NET_BUFFER_LIST na NDIS_STATUS_PAUSED.
Může poskytovat indikace stavu pomocí funkce NdisFIndicateStatus.
Další informace o indikátorech stavu najdete v tématu indikace stavu modulu filtru.
Měla by zpracovávat indikátory stavu ve své funkci FilterStatus.
Měly by zpracovávat požadavky OID ve funkci FilterOidRequest.
Další informace o požadavcích OID naleznete v tématu Modul filtru: požadavky OID.
Může iniciovat požadavky OID.
Neměl by uvolňovat prostředky, které ovladač přidělil během operace připojení.
Pokud je to potřeba k zastavení operací odesílání a příjmu, měli byste časovače zrušit.
Další informace o časovačích najdete v tématu NDIS 6.0 Timer Services.
Jakmile ovladač filtru úspěšně pozastaví operace odesílání a příjmu, musí dokončit operaci pozastavení. Ovladač filtru může dokončit operaci pozastavení buď synchronně, nebo asynchronně tím, že vrátí NDIS_STATUS_SUCCESS nebo NDIS_STATUS_PENDING z FilterPause.
Pokud ovladač vrátí NDIS_STATUS_PENDING, musí po dokončení operace pozastavení volat funkci NdisFPauseComplete.
Za modul filtru, který je ve stavu Pozastaveno, ovladač filtru:
Nemělo by docházet k vytváření nových indikací přijetí.
Mělo by se vrátit nové přijímací indikace, že základní ovladače pocházejí z NDIS, a to okamžitým voláním funkce NdisFReturnNetBufferLists. V případě potřeby může ovladač zkopírovat přijaté indikace a zařadit je do fronty, než je vrátí.
Neměly by se vytvářet nové žádosti o odeslání.
Měla by okamžitě vrátit všechny nové žádosti o odeslání podané ve své funkci FilterSendNetBufferLists tím, že zavolá funkci NdisFSendNetBufferListsComplete. Ovladač filtru by měl v každé struktuře NET_BUFFER_LIST nastavit člen Stav na NDIS_STATUS_PAUSED.
Může poskytovat indikace stavu pomocí funkce NdisFIndicateStatus.
Měla by zpracovávat indikátory stavu ve své funkci FilterStatus.
Měly by zpracovávat požadavky OID ve funkci FilterOidRequest.
Může iniciovat požadavky OID.
NDIS nespouští jiné operace Plug and Play, jako je připojení, odpojení nebo restartování požadavku, zatímco ovladač filtru je ve stavu pozastavení. NDIS může inicializovat žádosti o odpojení nebo restartování, jakmile je ovladač filtru ve stavu Pozastaveno. Další informace o odpojení modulu filtru najdete v tématu Odpojení modulu filtru. Další informace o restartování modulu filtru naleznete v tématu Spuštění modulu filtru.