Solicitação de entrada 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 essa solicitação, um gerenciador de chamadas chama NdisCmDispatchIncomingCloseCall com CloseStatus definido como NDIS_STATUS_SUCCESS (consulte a figura a seguir).
Um driver MCM chama NdisMCmDispatchIncomingCloseCall para indicar uma solicitação de entrada para fechar uma chamada (consulte a figura a seguir).
Um gerenciador de chamadas ou driver MCM também pode chamar Ndis(M)CmDispatchIncomingCloseCall:
Em sua função ProtocolCmIncomingCallComplete , se ela determinar que o cliente orientado à conexão está solicitando uma alteração inaceitável nos parâmetros de chamada em resposta a uma chamada de entrada anteriormente indicada pelo gerenciador de chamadas ou driver MCM (consulte Solicitação de entrada para alterar parâmetros de chamada).
Se condições de rede anormais forçam o gerenciador de chamadas a cancelar chamadas ativas.
A chamada para Ndis(M)CmDispatchIncomingCloseCall faz com que o NDIS chame a função ProtocolClIncomingCloseCall do cliente orientado para conexão nessa conexão. ProtocolClIncomingCloseCall deve executar 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 uma VC de vários pontos criada pelo cliente, ProtocolClIncomingCloseCall deverá chamar NdisClDropParty uma ou mais vezes até que apenas uma única parte permaneça na VC (consulte Removendo uma parte de uma chamada de vários pontos).
ProtocolClIncomingCloseCall deve chamar NdisClCloseCall(com o identificador para a última parte na VC se a VC for uma VC de vários pontos criada pelo cliente) para confirmar que o cliente não tentará mais enviar ou esperar receber dados nessa VC específica. Se o gerenciador de chamadas ou o driver MCM tiver criado essa VC, ProtocolClIncomingCloseCall deverá retornar o controle depois de chamar NdisClCloseCall. O gerenciador de chamadas ou o driver MCM também deve desativar a VC (consulte Desativando uma VC).
Se o cliente tiver criado originalmente essa VC para uma chamada de saída e CloseStatus for NDIS_STATUS_SUCCESS, ProtocolClIncomingCloseCall poderá, opcionalmente, derrubar a VC com NdisCoDeleteVc (consulte Excluindo uma VC) ou reutilizar a VC para outra chamada. Se CloseStatus não for NDIS_STATUS_SUCCESS, ProtocolClIncomingCloseCall deverá chamar NdisCoDeleteVc.
Se o gerenciador de chamadas ou o driver MCM tiver criado originalmente essa VC para uma chamada de entrada, o gerenciador de chamadas ou o driver MCM poderá, opcionalmente, excluir a VC chamando NdisCoDeleteVc ou NdisMCmDeleteVc.