Partilhar via


Pedido recebido para fechar uma chamada

Quando o cliente remoto fecha uma chamada, o gerenciador de chamadas local ou o driver MCM deve indicar essa solicitação de entrada para o cliente local. Para indicar tal solicitação, um gerenciador de chamadas chama NdisCmDispatchIncomingCloseCall com o CloseStatus definido como NDIS_STATUS_SUCCESS (veja a figura a seguir).

Diagrama que ilustra uma solicitação de entrada para fechar uma chamada através de um gerenciador de chamadas.

Um driver MCM chama NdisMCmDispatchIncomingCloseCall para indicar uma solicitação para encerrar uma chamada recebida (consulte a figura a seguir).

Diagrama ilustrando um pedido recebido para fechar uma chamada através de um driver MCM.

Um gerenciador de chamadas ou driver MCM também pode chamar Ndis(M)CmDispatchIncomingCloseCall:

A chamada para Ndis(M)CmDispatchIncomingCloseCall faz com que o NDIS chame a funçãoProtocolClIncomingCloseCall do cliente orientado à conexão nessa conexão. ProtocolClIncomingCloseCall deve realizar quaisquer operações determinadas pelo protocolo, como notificar seu próprio cliente ou clientes de que a conexão está sendo interrompida. Se a chamada a ser fechada for um VC multiponto criado pelo cliente, ProtocolClIncomingCloseCall deve chamar NdisClDropParty uma ou mais vezes até que apenas uma única parte permaneça no VC (consulte Removendo uma Parte de uma Chamada Multiponto).

ProtocolClIncomingCloseCall deve então ligar NdisClCloseCall (com o identificador para a última parte no VC se o VC for um VC multiponto criado pelo cliente) para reconhecer que o cliente não tentará mais enviar ou esperar receber dados sobre esse VC específico. Se o gestor de chamadas ou o controlador MCM tiver criado este VC, ProtocolClIncomingCloseCall deverá devolver o controlo, depois de chamar NdisClCloseCall. O gestor de chamadas ou o controlador MCM também tem de desativar o VC (consulte Desativar um VC).

Se o cliente criou originalmente este VC para uma chamada de saída e CloseStatus estiver NDIS_STATUS_SUCCESS, ProtocolClIncomingCloseCall pode, opcionalmente, destruir o VC com NdisCoDeleteVc (consulte Eliminar um VC) ou reutilizar o VC para outra chamada. Se CloseStatus não estiver NDIS_STATUS_SUCCESS, ProtocolClIncomingCloseCall deverá chamar NdisCoDeleteVc.

Se o gestor de chamadas ou o controlador MCM tiver criado originalmente este VC para uma chamada recebida, o gestor de chamadas ou o controlador MCM pode, opcionalmente, eliminar o VC chamando, respectivamente, NdisCoDeleteVc ou NdisMCmDeleteVc.