Descartando uma parte de uma chamada de vários pontos
Um cliente orientado a conexão que serve como a raiz de uma chamada de vários pontos deve, eventualmente, remover cada parte dessa chamada com NdisClDropParty ou NdisClCloseCall.
Um cliente remove uma parte de uma chamada nas seguintes situações:
Antes de iniciar a remoção de uma chamada de vários pontos com NdisClCloseCall(consulte Solicitação iniciada pelo cliente para fechar uma chamada), um cliente deve remover todos, exceto a última parte, com chamadas sucessivas para NdisClDropParty. O cliente especifica a última parte a ser retirada da chamada com NdisClCloseCall.
Em resposta à solicitação de uma parte remota para ser removida de uma chamada de vários pontos (consulte Solicitação de entrada para remover uma parte de uma chamada de vários pontos), um cliente, de sua função ProtocolClIncomingDropParty , chama NdisClDropParty.
A chamada de um cliente para NdisClDropParty faz com que o NDIS chame a função ProtocolCmDropParty do gerenciador de chamadas ou driver MCM que compartilha o mesmo NdisVcHandle para a VC de vários pontos.
A figura a seguir mostra o cliente de um gerenciador de chamadas solicitando a remoção de uma parte de uma chamada de vários pontos.
A figura a seguir mostra o cliente de um driver MCM solicitando remover uma parte de uma chamada de vários pontos.
ProtocolCmDropParty comunica-se com dispositivos de controle de rede para remover uma parte de uma chamada de vários pontos existente. O NDIS pode passar para ProtocolCmDropParty um ponteiro para um buffer que contém dados (fornecidos ao cliente na chamada para NdisClDropParty). ProtocolCmDropParty deve enviar esses dados pela rede antes que a conexão seja descartada.
ProtocolCmDropParty pode ser concluído de forma síncrona ou, provavelmente, de forma assíncrona com NdisCmDropPartyComplete, no caso de um gerenciador de chamadas, ou NdisMCmDropPartyComplete, no caso de um driver MCM.
A chamada para Ndis(M)CmDropPartyComplete faz com que o NDIS chame a função ProtocolClDropPartyComplete do cliente. Se o cliente estiver em processo de desativação de uma VC de vários pontos que ele criou, ProtocolClDropPartyComplete poderá chamar NdisClDropParty com qualquer NdisPartyHandle válido para uma das partes restantes na VC multipoint ativa do cliente. Se apenas uma parte permanecer em sua VC de vários pontos, o cliente deverá descartar essa parte passando seu NdisPartyHandle para NdisClCloseCall (consulte Solicitação iniciada pelo cliente para fechar uma chamada).