Partilhar via


Client-Initiated solicitação para fechar uma chamada

Se um cliente estiver fechando uma chamada de vários pontos à qual mais de uma parte ainda está conectada, ele deverá primeiro chamar NdisClDropParty quantas vezes forem necessárias para remover todas, exceto a última parte da chamada (consulte Removendo uma parte de uma chamada de vários pontos).

Um cliente inicia o fechamento de uma chamada com NdisClCloseCall. A figura a seguir mostra um cliente iniciando o fechamento de uma chamada por meio de um gerenciador de chamadas.

diagrama ilustrando um cliente iniciando o fechamento de uma chamada por meio de um gerenciador de chamadas.

A figura a seguir mostra um cliente iniciando o fechamento de uma chamada por meio de um driver MCM.

diagrama ilustrando um cliente iniciando o fechamento de uma chamada por meio de um driver mcm.

Um cliente orientado a conexões normalmente chama NdisClCloseCall em qualquer uma das seguintes circunstâncias:

A chamada de um cliente para NdisClCloseCall faz com que o NDIS chame a função ProtocolCmCloseCall do gerenciador de chamadas ou do driver MCM. ProtocolCmCloseCall deve se comunicar com dispositivos de controle de rede para encerrar uma conexão entre o nó local e um nó remoto.

Se ProtocolCmCloseCall for passado um CallMgrPartyContext explícito, a chamada que está sendo encerrada será uma chamada de vários pontos. O gerenciador de chamadas ou o driver MCM devem executar qualquer comunicação de rede necessária com seu hardware de rede, conforme apropriado para seu tipo de mídia, para encerrar a chamada como uma chamada de vários pontos.

O NDIS pode passar ProtocolCmCloseCall um ponteiro para um buffer que contém dados fornecidos pelo cliente na chamada para NdisClClose. Esses dados podem ser dados de diagnóstico que indicam por que a chamada foi fechada ou quaisquer outros dados exigidos pelo protocolo de sinalização. ProtocolCmCloseCall deve enviar esses dados pela rede antes de concluir o encerramento da chamada. Se não houver suporte para o envio simultâneo de dados com uma conexão que está sendo encerrada, um gerenciador de chamadas ou driver MCM deverá retornar NDIS_STATUS_INVALID_DATA.

ProtocolCmCloseCall pode ser concluído de forma síncrona ou, provavelmente, de forma assíncrona com NdisCmCloseCallComplete(no caso de um gerenciador de chamadas) ou NdisMCmCloseCallComplete(no caso de um driver MCM). Uma chamada para Ndis(M)CmCloseCallComplete faz com que o NDIS chame a função ProtocolClCloseCallComplete do cliente.

O gerenciador de chamadas ou o driver MCM devem iniciar a desativação da VC usada para a chamada chamando respectivamente NdisCmDeactivateVc ou NdisMCmDeactivateVc (consulte Desativando uma VC). O criador da VC (cliente, gerenciador de chamadas ou driver MCM) pode, opcionalmente, iniciar a exclusão da VC (consulte Excluindo uma VC).