Udostępnij przez


Usuwanie uczestnika z połączenia wielopunktowego

Klient zorientowany na połączenie, który pełni rolę głównego punktu rozmowy multipunktowej, musi ostatecznie usunąć każdego uczestnika z tej rozmowy z NdisClDropParty lub NdisClCloseCall.

Klient usuwa uczestnika z połączenia w następujących sytuacjach:

Wywołanie klienta do NdisClDropParty powoduje, że NDIS wywołuje funkcję ProtocolCmDropParty menedżera połączeń lub sterownika MCM, który dzieli ten sam NdisVcHandle do multipleksowego VC.

Na poniższej ilustracji przedstawiono klienta zarządcy połączeń żądającego usunięcia uczestnika z rozmowy wielopunktowej.

Diagram przedstawiający klienta menedżera połączeń, który prosi o usunięcie uczestnika z rozmowy wielopunktowej.

Na następnej ilustracji przedstawiono klienta sterownika MCM wysyłającego żądanie usunięcia uczestnika z rozmowy wielopunktowej.

Diagram przedstawiający klienta sterownika MCM żądającego usunięcia uczestnika z wywołania wielopunktowego.

ProtocolCmDropParty komunikuje się z urządzeniami kontroli sieci, aby usunąć uczestnika z istniejącego połączenia wielopunktowego. NDIS może przekazać do ProtocolCmDropParty wskaźnik do buforu zawierającego dane (dostarczone do klienta w wywołaniu funkcji NdisClDropParty). ProtokółCmDropParty musi wysyłać wszelkie takie dane przez sieć, zanim zostanie przerwane połączenie.

ProtocolCmDropParty może zakończyć się synchronicznie lub, co bardziej prawdopodobne, asynchronicznie z NdisCmDropPartyComplete w przypadku menedżera wywołań, lub z NdisMCmDropPartyComplete w przypadku sterownika MCM.

Wywołanie Ndis(M)CmDropPartyComplete powoduje, że NDIS wywołuje funkcję ProtocolClDropPartyComplete klienta. Jeśli klient jest w trakcie usuwania wielopunktowego wirtualnego połączenia (VC), które sam utworzył, ProtocolClDropPartyComplete może wywołać NdisClDropParty z dowolnym prawidłowym NdisPartyHandle, aby połączyć się z jedną z pozostałych stron na aktywnym wielopunktowym VC klienta. Jeśli tylko jeden uczestnik pozostaje na wielopunktowym VC, klient powinien usunąć tę stronę, przekazując jego lub jej NdisPartyHandle do NdisClCloseCall (zobacz Client-Initiated Żądanie zamknięcia połączenia).