Condividi tramite


Client-Initiated richiesta di chiusura di una chiamata

Se un client sta chiudendo una chiamata multipunto a cui sono ancora connesse più parti, deve prima chiamare NdisClDropParty quante volte necessario per eliminare tutto ma l'ultima parte dalla chiamata (vedere Eliminazione di una parte da una chiamata multipoint).

Un client avvia la chiusura di una chiamata con NdisClCloseCall. Nella figura seguente viene illustrato un client che avvia la chiusura di una chiamata tramite un gestore chiamate.

Diagramma che illustra un client che avvia la chiusura di una chiamata tramite un gestore chiamate.

La figura seguente mostra un client che avvia la chiusura di una chiamata tramite un driver MCM.

Diagramma che illustra un client che avvia la chiusura di una chiamata tramite un driver mcm.

Un client orientato alla connessione chiama in genere NdisClCloseCall in una delle circostanze seguenti:

La chiamata di un client a NdisClCloseCall fa sì che NDIS chiami la funzione ProtocolCmCloseCall del gestore chiamate o del driver MCM. ProtocolCmCloseCall deve comunicare con i dispositivi di controllo di rete per terminare una connessione tra il nodo locale e un nodo remoto.

Se ProtocolCmCloseCall viene passato un CallMgrPartyContext esplicito, la chiamata che viene terminata è una chiamata multipunto. Il gestore chiamate o il driver MCM devono eseguire qualsiasi comunicazione di rete necessaria con il relativo hardware di rete, in base al tipo di supporto, per terminare la chiamata come chiamata multipunto.

NDIS può passare un puntatore ProtocolCmCloseCall a un buffer contenente i dati forniti dal client nella chiamata a NdisClClose. Questi dati possono essere dati di diagnostica che indicano il motivo per cui la chiamata è stata chiusa o qualsiasi altro dato richiesto dal protocollo di segnalazione. ProtocolCmCloseCall deve inviare tali dati attraverso la rete prima di completare la terminazione della chiamata. Se l'invio di dati simultanei con una connessione terminata non è supportato, un gestore chiamate o un driver MCM deve restituire NDIS_STATUS_INVALID_DATA.

ProtocolCmCloseCall può essere completato in modo sincrono o, più probabilmente, in modo asincrono con NdisCmCloseCallComplete(nel caso di un gestore chiamate) o NdisMCmCloseCallComplete(nel caso di un driver MCM). Una chiamata a Ndis(M)CmCloseCallComplete fa sì che NDIS chiami la funzione ProtocolClCloseCallComplete del client.

Il gestore chiamate o il driver MCM devono quindi avviare la disattivazione del vc usato per la chiamata chiamando rispettivamente NdisCmDeactivateVc o NdisMCmDeactivateVc(vedere Disattivazione di un vc). L'autore del vc (client, gestore chiamate o driver MCM) può quindi avviare facoltativamente l'eliminazione del vc (vedere Eliminazione di un vc).