Suppression d’une partie d’un appel multipoint
Un client orienté connexion qui sert de racine d’un appel multipoint doit finalement supprimer chaque partie de cet appel avec NdisClDropParty ou NdisClCloseCall.
Un client supprime une partie d’un appel dans les situations suivantes :
Avant de lancer le démontage d’un appel multipoint avec NdisClCloseCall (voir Demande de fermeture d’un appel lancée par le client), un client doit supprimer tout sauf la dernière partie avec des appels successifs à NdisClDropParty. Le client spécifie la dernière partie à supprimer de l’appel avec NdisClCloseCall.
En réponse à la demande de suppression d’un appel multipoint d’une partie distante (voir Demande entrante de suppression d’une partie à partir d’un appel multipoint), un client, à partir de sa fonction ProtocolClIncomingDropParty , appelle NdisClDropParty.
L’appel d’un client à NdisClDropParty amène NDIS à appeler la fonction ProtocolCmDropParty du gestionnaire d’appels ou du pilote MCM qui partage le même NdisVcHandle avec le vc multipoint.
La figure suivante montre le client d’un gestionnaire d’appels demandant à supprimer une partie d’un appel multipoint.
La figure suivante montre le client d’un pilote MCM demandant à supprimer une partie d’un appel multipoint.
ProtocolCmDropParty communique avec les appareils de contrôle réseau pour supprimer une partie d’un appel multipoint existant. NDIS peut passer à ProtocolCmDropParty un pointeur vers une mémoire tampon qui contient des données (fournies au client dans l’appel à NdisClDropParty). ProtocolCmDropParty doit envoyer ces données sur le réseau avant que la connexion ne soit supprimée.
ProtocolCmDropParty peut effectuer une exécution synchrone, ou plus probablement, asynchrone avec NdisCmDropPartyComplete, dans le cas d’un gestionnaire d’appels, ou NdisMCmDropPartyComplete, dans le cas d’un pilote MCM.
L’appel à Ndis(M)CmDropPartyComplete entraîne l’appel de la fonction ProtocolClDropPartyComplete du client. Si le client est en train de détruire un vc multipoint qu’il a créé, ProtocolClDropPartyComplete peut appeler NdisClDropParty avec n’importe quel NdisPartyHandle valide à l’une des parties restantes sur le vc multipoint actif du client. Si une seule partie reste sur son vc multipoint, le client doit supprimer cette partie en passant son NdisPartyHandle à NdisClCloseCall (voir Demande lancée par le client pour fermer un appel).