Partager via


Désactivation d’un vc

Un gestionnaire d’appels appelle NdisCmDeactivateVc comme étape essentielle pour fermer un appel sortant ou entrant, généralement après l’échange de paquets avec des composants réseau qui suppriment l’appel (voir Demande lancée par le client pour fermer un appel et Demande entrante pour fermer un appel). Un pilote MCM fait la même chose en appelant NdisMCmDeactivateVc.

L’appel à NdisCmDeactivateVc amène NDIS à appeler la fonction MiniportCoDeactivateVc du pilote miniport sous-jacent (voir la figure suivante). MiniportCoDeactivateVc communique avec sa carte réseau pour mettre fin à toutes les communications entre ce vc (par exemple, l’effacement des mémoires tampons de réception ou d’envoi sur l’adaptateur).

Diagramme montrant un gestionnaire d’appels à l’origine de la désactivation de vc.

Avant de désactiver un vc, le pilote miniport doit effectuer tous les transferts en attente sur le vc. Autrement dit, le pilote miniport doit attendre qu’il ait terminé tous les envois en cours et que tous les paquets de réception qu’il a indiqué lui soient retournés. Après la désactivation du vc, le pilote miniport ne peut pas indiquer les réceptions ou les envois sur le vc.

Notez que MiniportCoDeactivateVc ne supprime pas le vc. Le créateur (client, gestionnaire d’appels ou pilote MCM) d’un vc particulier qui ne sera pas réutilisé appelle NdisCoDeleteVc pour détruire ce vc. Un vc désactivé peut être réactivé par un client orienté connexion, un gestionnaire d’appels ou un pilote MCM.

MiniportCoDeactivateVc peut se terminer de manière synchrone ou asynchrone. Un appel à NdisMCoDeactivateVcComplete. amène NDIS à appeler la fonction ProtocolCmDeactivateVcComplete du gestionnaire d’appels qui a initialement demandé la désactivation du vc. L’achèvement de la désactivation signifie que tous les paramètres d’appel du vc utilisé lors de l’activation ne sont plus valides. Toute autre utilisation du vc est interdit, sauf pour la réactiver avec un nouvel ensemble de paramètres d’appel.

L’appel d’un pilote MCM à NdisMCmDeactivateVc informe NDIS qu’il a désactivé un vc ou modifié les paramètres d’appel sur un vc établi (voir la figure suivante). NDIS termine la séquence de désactivation en appelant la fonction ProtocolCmDeactivateVcComplete du pilote MCM.

Diagramme illustrant un pilote MCM à l’origine de la désactivation de VC.

Un pilote MCM n’appelle pas NdisMCmDeactivateVc pour désactiver les machines virtuelles utilisées pour échanger des messages de signalisation entre le pilote MCM et les composants réseau tels qu’un commutateur. Un pilote MCM désactive un vc de signalisation en interne sans appeler une fonction NdisXxx .