Partager via


Suppression d’un vc

Seul le client orienté connexion, le gestionnaire d’appels ou le pilote MCM qui a lancé la création d’un circuit virtuel peut lancer 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 un tel vc avec une opération interne opaque à NDIS.)

Un client ou un gestionnaire d’appels orienté connexion 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.

Diagramme montrant 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.

Diagramme montrant un client d’un pilote MCM qui lance la suppression d’un vc.

La figure suivante montre un gestionnaire d’appels qui lance la suppression d’un vc.

Diagramme montrant un gestionnaire d’appels qui lance la suppression d’un vc.

Quand un client ou un gestionnaire d’appels appelle NdisCoDeleteVc ou lorsqu’un pilote MCM appelle NdisMCmDeleteVc, il ne doit y avoir aucun appel en attente sur le vc donné et ce vc doit déjà avoir été désactivé. Pour répondre à ces exigences, les conditions suivantes sont remplies :

L’appel d’un client ou d’un gestionnaire d’appels à NdisCoDeleteVc amè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 miniport pour le vc. ProtocolCoDeleteVc libère toutes les ressources utilisées par le client ou le gestionnaire d’appels pour effectuer des opérations sur et suivre l’état du vc. MiniportCoDeleteVc et 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).

Diagramme montrant un pilote MCM à l’origine de la suppression d’un vc.

L’appel d’un pilote MCM à NdisMCmDeleteVc amène NDIS à appeler la fonction ProtocolCoDeleteVc du client avec lequel le pilote MCM a partagé le NdisVcHandle .

Lorsque NdisCoDeleteVc ou NdisMCmDeleteVc retourne le contrôle, le NdisVcHandle n’est plus valide.