Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Seul le client orienté connexion, le gestionnaire d’appels ou le pilote MCM qui a initié la création d’un circuit virtuel (VC) peut initier la suppression de ce VC. Par conséquent, un client supprime un vc qu’il a créé précédemment pour un appel sortant, un gestionnaire d’appels ou un pilote MCM supprime un vc qu’il a créé précédemment pour un appel entrant sur le réseau, et un gestionnaire d’appels supprime un vc qu’il a créé précédemment pour échanger des messages de signalisation sur le réseau. (Un pilote MCM n’appelle pas NDIS pour supprimer un vc qu’il a créé pour échanger des messages de signalisation. Le pilote MCM supprime une telle vc avec une opération interne opaque à NDIS.)
Un client orienté connexion ou un gestionnaire d’appels lance la suppression d’un VC avec NdisCoDeleteVc.
La figure suivante montre un client d’un gestionnaire d’appels qui lance la suppression d’un VC.
La figure suivante montre un client d’un pilote MCM qui lance la suppression d’un VC.
La figure suivante montre un gestionnaire d’appels lançant la suppression d’un VC.
Lorsqu’un client ou un gestionnaire d’appels appelle NdisCoDeleteVc ou lorsqu’un pilote MCM appelle NdisMCmDeleteVc, il ne doit pas y avoir d’appels en attente sur le vc donné et que vc doit déjà avoir été désactivé . Pour répondre à ces exigences, cela implique que les conditions suivantes soient satisfaites :
Le client a déjà appelé NdisClCloseCall avec le NdisVcHandle donné et sa demande de fermeture d’appel s’est terminée avec succès.
Le gestionnaire d’appels a déjà appelé NdisCmDeactivateVc ou le pilote MCM a déjà appelé NdisMCmDeactivateVc avec le NdisVcHandle donné et la demande de désactivation s’est terminée correctement (voir Requête entrante pour fermer un appel).
L’appel d’un client ou d’un gestionnaire d’appels à NdisCoDeleteVc entraîne NDIS à appeler à la fois la fonction MiniportCoDeleteVc du pilote miniport sous-jacent et la fonction ProtocolCoDeleteVc du client ou du gestionnaire d'appels avec lequel l’appelant partage le NdisVcHandle (voir les trois figures précédentes).
MiniportCoDeleteVc libère toutes les ressources allouées pour le VC, ainsi que le contexte du pilote de miniport pour le VC. ProtocolCoDeleteVc libère toutes les ressources que le client ou le gestionnaire d’appels a utilisées pour effectuer des opérations sur le VC et pour suivre son état. Tant MiniportCoDeleteVc que ProtocolCoDeleteVc sont des fonctions synchrones qui ne peuvent pas retourner NDIS_STATUS_PENDING.
Un pilote MCM lance la suppression d’un vc avec NdisMCmDeleteVc(voir la figure suivante).
L’appel d’un pilote MCM à NdisMCmDeleteVc pousse NDIS à appeler la fonction ProtocolCoDeleteVc du client avec lequel le pilote MCM a partagé le NdisVcHandle.
Quand NdisCoDeleteVc ou NdisMCmDeleteVc retourne le contrôle, le NdisVcHandle n’est plus valide.