Sdílet prostřednictvím


Vypnutí rozhraní CoNDIS TAPI

Relace TAPI začíná poté, co ovladač miniportu CoNDIS WAN uvede své schopnosti TAPI aplikaci. V rámci relace je možné otevřít jednu nebo více linek a lze uskutečnit jeden nebo více hovorů. Během otevření linky lze navázat mnoho hovorů, které poté mohou být ukončeny nebo odpojeny. Během relace může jedna nebo více linek přecházet z otevřeného do zavřeného stavu mnohokrát. Jak miniport ovladač zpracovává takové přechody, je popsán v této části.

Zavření hovoru

Volání v procesu může být uzavřeno buď místním uzlem, nebo vzdáleným uzlem. Volání lze ukončit na místním uzlu buď proto, že poslední aplikace s popisovačem volání jej uzavřela, nebo protože došlo k zavolání ovladače miniportu MiniportHaltEx nebo MiniportResetEx. Pokud vzdálený uzel zavěsí probíhající hovor, musí ovladač miniportu informovat horní vrstvy, aby hovor ukončily.

Pokud aplikace v místním uzlu hovor zavře, musí hovor odpojit. K odpojení hovoru dochází, když aplikace zavolá funkci TAPI lineDrop. Toto volání funkce TAPI způsobí, že ovladač NDPROXY zavolá funkci NdisClCloseCall a předá popisovač představující VC pro volání. NDIS zase volá funkci ProtocolCmCloseCall ovladače miniportu CoNDIS WAN. Ovladač miniportu by měl vrátit stav NDIS_STATUS_PENDING do NDPROXY, aby mohl asynchronně dokončit NdisClCloseCall.

Ovladač miniportu ProtocolCmCloseCall musí komunikovat se síťovými řídicími zařízeními, aby se ukončilo připojení mezi místním uzlem a vzdáleným uzlem. Ovladač miniportu pak musí zavolat funkci NdisMCmDeactivateVc, aby inicioval deaktivaci VC použitý pro volání.

Jakmile ovladač miniportu ukončí připojení, jeho ProtocolCmCloseCall může zavolat funkci NdisMCmCloseCallComplete, aby dokončil uzavření volání.

Pokud vzdálený uzel ukončí hovor probíhající v procesu, ovladač miniportu volá funkci NdisCmDispatchIncomingCloseCall, oznamující NDISWAN a NDPROXY, aby zrušily příchozí hovor.

Zavření řádku

Linka se uzavře, když poslední aplikace s otevřeným úchytem na linku zavře úchyt. Linka je uzavřena v důsledku volání funkce rozhraní TAPI lineClose aplikací. Toto volání funkce TAPI způsobí, že ovladač NDPROXY zahájí uzavření všech volání na tomto řádku, jak je popsáno v předchozí části. Ovladač miniportu by měl tato volání ukončit a vyčistit jejich stavové údaje.

Zavření relace

Ukončení relace mohou iniciovat buď horní vrstvy, nebo ovladač miniportu CoNDIS WAN. Jakmile se poslední proces klienta odpojí od modulu telefonie vyšší úrovně, ovladač NDPROXY bude informován, že musí ukončit svou relaci s každým registrovaným adaptérem. Za tímto účelem ovladač NDPROXY volá funkci NdisClCloseAddressFamily a předá popisovač rodině adres TAPI. NDIS zase volá funkci ovladače miniportu ProtocolCmCloseAf. Ovladač miniportu by měl ukončit všechny související aktivity, které v zadaném adaptéru probíhá, a uvolnit všechny relevantní prostředky. Po volání NdisClCloseAddressFamilyby měl klient považovat popisovač rodiny adres TAPI za neplatný.

Ukončení relace iniciované ovladačem může nastat, pokud je ovladač miniportu uvolňován ve své funkci MiniportHaltEx. Ovladač miniportu obvykle dokončí všechny nevyřízené požadavky NDPROXY a oznámí NDISWAN, že se všechna volání ukončují. Pokud se ovladač miniportu později znovu načte, projde stejným procesem inicializace, který jsme popsali dříve.

Ovladač miniportu CoNDIS WAN může také zahájit ukončení relace, pokud prošel určitou dynamickou rekonfigurací, která vyžadovala úplnou opětovnou inicializaci všech klientů a ovladačů. Například pokud se modelování linkových zařízení adaptéru (například počet podporovaných linkových zařízení) změnilo za běhu.