Création d’un vc
Avant d’effectuer un appel sortant, un client orienté connexion lance la création d’une connexion virtuelle (VC). Avant d’indiquer un appel entrant à un client orienté connexion, un gestionnaire d’appels ou un pilote MCM lance la création d’un vc . Une fois que le VC a été configuré et activé, les données client peuvent être transmises ou reçues sur le vc.
Un gestionnaire d’appels ou un pilote MCM peut également lancer la création d’un vc sur lequel les messages de signalisation sont échangés avec des composants réseau, tels qu’un commutateur réseau.
Client-Initiated Création d’un vc
Avant d’effectuer un appel avec NdisClMakeCall, un client orienté connexion appelle NdisCoCreateVc pour lancer la création d’un vc.
La figure suivante montre un client d’un gestionnaire d’appels qui lance la création d’un vc.
La figure suivante montre un client d’un pilote MCM qui lance la création d’un vc.
Lorsqu’un client orienté connexion d’un gestionnaire d’appels appelle NdisCoCreateVc, NDIS appelle, en tant qu’opération synchrone, la fonction ProtocolCoCreateVc du gestionnaire d’appels et la fonction MiniportCoCreateVc du pilote miniport sous-jacent (voir la première figure de cette rubrique). NDIS transmet un NdisVcHandle qui représente le vc à ProtocolCoCreateVc et à MiniportCoCreateVc. Si l’appel à NdisCoCreateVc réussit, NDIS retourne le NdisVcHandle à NdisCoCreateVc.
ProtocolCoCreateVc alloue et initialise toutes les ressources et structures dynamiques dont le gestionnaire d’appels a besoin pour effectuer les opérations suivantes sur un vc qui sera activé. MiniportCoCreateVc alloue et initialise toutes les ressources dont le pilote miniport a besoin pour conserver les informations d’état sur le VC. ProtocolCoCreateVc et MiniportCoCreateVc stockent le NdisVcHandle .
Lorsqu’un client orienté connexion d’un pilote MCM, l’appel à NdisCoCreateVc amène NDIS à appeler la fonction ProtocolCoCreateVc du pilote MCM (voir Client-Initiated Création d’un vc (MCM Driver Present)). Dans ce cas, ProtocolCoCreateVc effectue l’allocation et l’initialisation nécessaires des ressources pour le vc. Il n’y a pas d’appel (interne ou autre) à MiniportCoCreateVc, car un pilote MCM ne fournit pas une telle fonction.
Appeler Manager-Initiated création d’un vc
Avant d’indiquer un appel entrant à un client orienté connexion avec NdisCmDispatchIncomingCall, un gestionnaire d’appels appelle NdisCoCreateVc pour lancer la création d’un vc (voir la figure suivante).
Lorsqu’un gestionnaire d’appels appelle NdisCoCreateVc, NDIS appelle, en tant qu’opération synchrone, la fonction ProtocolCoCreateVc du client orienté connexion qui a inscrit le SAP sur lequel l’appel est reçu, ainsi que la fonction MiniportCoCreateVc du miniport sous-jacent. NDIS transmet un NdisVcHandle qui représente le vc à ProtocolCoCreateVc et à MiniportCoCreateVc. Si l’appel à NdisCoCreateVc réussit, NDIS retourne le NdisVcHandle à NdisCoCreateVc.
MCM Driver-Initiated Création d’un vc
Avant d’indiquer un appel entrant à un client orienté connexion avec NdisMCmDispatchIncomingCall, un pilote MCM appelle NdisMCmCreateVc pour lancer la création d’un vc (voir la figure suivante).
Lorsqu’un pilote MCM appelle NdisMCmCreateVc, NDIS appelle, en tant qu’opération synchrone avant que NdisMCmCreateVc ne retourne NdisMCmCreateVc , la fonction ProtocolCoCreateVc du client orienté connexion qui a inscrit le SAP sur lequel l’appel est reçu. NDIS transmet un NdisVcHandle qui représente le vc à ProtocolCoCreateVc. Si l’appel à NdisMCmCreateVc réussit, NDIS retourne le NdisVcHandle à NdisMCmCreateVc.
ProtocolCoCreateVc alloue et initialise toutes les ressources et structures dynamiques dont le client a besoin pour effectuer les opérations suivantes sur le vc. ProtocolCoCreateVc stocke également le NdisVcHandle .
Notez que lorsqu’un pilote MCM crée un VC pour échanger des messages de signalisation avec un composant réseau, il n’utilise pas d’appels NdisXxx pour créer un vc. En fait, un pilote MCM n’utilise pas d’appels NdisXxx pour créer, activer, désactiver ou supprimer ces machines virtuelles. Au lieu de cela, un pilote MCM effectue ces opérations en interne. Ces machines virtuelles sont donc opaques pour NDIS.