Partager via


Activation d’un vc

Une fois qu’une connexion virtuelle (VC) a été créée (voir Création d’un vc), elle doit être activée pour que les données puissent être transmises ou reçues sur celle-ci. Un gestionnaire d’appels lance l’activation d’un vc en appelant NdisCmActivateVc (voir la figure suivante).

Diagramme illustrant un gestionnaire d’appels qui lance l’activation de vc.

Un pilote MCM lance l’activation d’un vc en appelant NdisMCmActivateVc (voir la figure suivante).

Diagramme illustrant un pilote MCM qui lance l’activation de vc.

Un gestionnaire d’appels ou un pilote MCM peut lancer la réactivation d’un vc actif si le client local ou un tiers distant négocie correctement une modification des paramètres d’appel sur ce vc (voir Demande lancée par le client pour fermer un appel et Demande entrante pour modifier les paramètres d’appel). Le gestionnaire d’appels ou le pilote MCM peut appeler Ndis(M)CmActivateVc plusieurs fois pour qu’un seul vc modifie les paramètres d’appel d’un appel déjà actif.

Pour un appel sortant initié par le client, un gestionnaire d’appels ou un pilote MCM appelle généralement Ndis(M)CmActivateVc immédiatement après l’échange de paquets confirmant un accord négocié avec la cible distante de l’appel ou une configuration d’appel réussie au niveau du commutateur. Le gestionnaire d’appels ou le pilote MCM appelle Ndis(M)CmActivateVc avant d’avertir NDIS (et le client) de l’achèvement des appels sortants avec Ndis(M)CmMakeCallComplete(voir Effectuer un appel). Pour un appel entrant, un gestionnaire d’appels ou un pilote MCM appelle généralement Ndis(M)CmActivateVc après avoir appelé NdisCo(MCm)CreateVc avec succès et avant d’appeler Ndis(M)CmDispatchIncomingCall(voir Indication d’un appel entrant).

L’appel d’un gestionnaire d’appels à NdisCmActivateVc amène NDIS à appeler la fonction MiniportCoActivateVc du pilote miniport sous-jacent. MiniportCoActivateVc doit valider les paramètres d’appel de ce vc afin de vérifier que l’adaptateur peut prendre en charge l’appel demandé. Si les paramètres d’appel sont acceptables, MiniportCoActivateVc communique avec son adaptateur en fonction des besoins pour préparer l’adaptateur à recevoir ou à transmettre des données via la connexion virtuelle (par exemple, la programmation de mémoires tampons de réception). Si les paramètres d’appel demandés ne peuvent pas être pris en charge, le pilote miniport échoue à la demande.

MiniportCoActivateVc peut se terminer de manière synchrone ou asynchrone. L’appel à NdisMCoActivateVcComplete amène NDIS à appeler la fonction ProtocolCmActivateVcComplete du gestionnaire d’appels. ProtocolCmActivateVcComplete doit case activée le status retourné par NdisMCoActivateVcComplete pour garantir que la connexion virtuelle a été correctement activée. Si le pilote miniport n’a pas correctement activé le vc, le gestionnaire d’appels ne doit pas tenter de communiquer sur le vc. ProtocolCmActivateVcComplete doit également effectuer tout traitement requis par le média réseau pour s’assurer que la connexion virtuelle est prête pour la transmission de données avant de retourner le contrôle à NDIS.

L’appel d’un pilote MCM à NdisMCmActivateVc informe NDIS qu’il a configuré des paramètres d’appel et de média sur un vc nouvellement créé ou qu’il a modifié les paramètres d’appel sur un vc établi. Cette action informe NDIS que le pilote MCM a rendu une carte réseau prête pour les transferts sur le vc. NDIS termine la séquence d’activation en appelant la fonction ProtocolCmActivateVcComplete du pilote MCM.

Un pilote MCM appelle NdisMCmActivateVc pour activer uniquement les machines virtuelles utilisées pour transmettre et/ou recevoir des données client, mais pas pour activer 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 active un vc de signalisation en interne sans appeler une fonction NdisXxx . Toute vc qu’un pilote MCM configure à ses propres fins de signalisation est donc opaque à NDIS.