Partager via


Inscription et ouverture d’une famille d’adresses

Un gestionnaire d’appels doit inscrire une famille d’adresses pour chaque carte réseau sur laquelle il fournit des services de gestionnaire d’appels aux clients orientés connexion. De même, un pilote MCM doit inscrire une famille d’adresses pour la carte réseau qu’il gère.

En inscrivant une famille d’adresses, un gestionnaire d’appels ou un pilote MCM amène NDIS à publier les services du gestionnaire d’appels ou du pilote MCM à tous les clients orientés connexion qui se lient à l’adaptateur.

Si un client orienté connexion peut utiliser les services publiés par un gestionnaire d’appels ou un pilote MCM, il peut ouvrir une famille d’adresses avec le gestionnaire d’appels ou le pilote MCM.

Inscription d’une famille d’adresses à partir d’un gestionnaire d’appels

Une fois que sa fonction ProtocolBindAdapterEx est liée à un pilote miniport sous-jacent avec NdisOpenAdapterEx, un gestionnaire d’appels appelle NdisCmRegisterAddressFamilyEx pour inscrire une famille d’adresses pour la liaison (voir la figure suivante).

Diagramme illustrant le processus d’inscription et d’ouverture d’une famille d’adresses auprès d’un gestionnaire d’appels.

L’appel à NdisCmRegisterAddressFamilyEx publie les services de signalisation spécifiques du gestionnaire d’appels. Un gestionnaire d’appels doit inscrire une famille d’adresses chaque fois que sa fonction ProtocolBindAdapterEx est appelée et se lie correctement à une carte réseau avec NdisOpenAdapterEx.

Le gestionnaire d’appels peut prendre en charge plusieurs familles d’adresses sur tous les pilotes miniport auxquels il est lié. Le gestionnaire d’appels peut également prendre en charge plusieurs familles d’adresses sur une seule carte réseau à laquelle il est lié. Le gestionnaire d’appels doit inscrire les mêmes points d’entrée pour chaque famille d’adresses sur la liaison. Un seul gestionnaire d’appels peut prendre en charge un type particulier de famille d’adresses pour les clients liés à un pilote miniport particulier. Pour plus d’informations sur l’inscription des points d’entrée pour un gestionnaire d’appels, consultez Inscription CoNDIS.

Inscription d’une famille d’adresses à partir d’un pilote MCM

Un pilote MCM appelle NdisMCmRegisterAddressFamilyEx à partir de sa fonction MiniportInitializeEx après avoir inscrit ses points d’entrée de pilote miniport auprès de NdisMRegisterMiniportDriver. Pour plus d’informations sur les points d’entrée de regsitering, consultez Inscription CoNDIS. Un pilote MCM appelle NdisMCmRegisterAddressFamilyEx une fois pour publier ses services aux clients orientés connexion (voir la figure suivante).

Diagramme illustrant le processus d’inscription et d’ouverture d’une famille d’adresses avec un pilote MCM.

Un pilote miniport d’une carte réseau qui prend en charge la signalisation orientée connexion intégré peut s’inscrire en tant que pilote MCM, même si un gestionnaire d’appels peut être disponible. Ce faisant, un tel pilote MCM préempte le gestionnaire d’appels comme gestionnaire d’appels pour cette carte réseau.

Ouverture d’une famille d’adresses

L’appel d’un gestionnaire d’appels ou d’un pilote MCM à Ndis(M)CmRegisterAddressFamily amène NDIS à appeler la fonction ProtocolCoAfRegisterNotify de chaque client orienté connexion sur la liaison (comme illustré dans deux illustrations précédentes).

ProtocolCoAfRegisterNotify examine les données de famille d’adresses pour déterminer si le client peut utiliser les services de ce pilote CM ou MCM particulier. Le fait que le client puisse apporter des modifications aux données de famille d’adresses fournies par (M)CM dépend de la prise en charge particulière du protocole de signalisation du gestionnaire d’appels ou du pilote MCM.

Si le client trouve les services de gestion des appels proposés acceptables, ProtocolCoAfRegisterNotify alloue une zone de contexte par AF pour le client et appelle NdisClOpenAddressFamilyEx. NdisClOpenAddressFamilyEx n’inscrit pas les points d’entrée orientés connexion du client auprès de NDIS. Pour plus d’informations sur l’inscription des points d’entrée orientés connexion auprès de NDIS, consultez Inscription CoNDIS.

L’appel à NdisClOpenAddressFamilyEx amène NDIS à appeler la fonction ProtocolCmOpenAf du gestionnaire d’appels ou du pilote MCM (comme indiqué dans les deux figures précédentes). ProtocolCmOpenAf garantit que le client a passé une famille d’adresses valide et alloue et initialise les ressources nécessaires pour effectuer des opérations pour le compte du client qui ouvre cette instance de la famille d’adresses. ProtocolCmOpenAf stocke également un NdisAfHandle fourni par NDIS qui représente l’association entre le gestionnaire d’appels et le client pour la famille d’adresses ouverte.

ProtocolCmOpenAf peut se terminer de manière synchrone ou asynchrone. Pour effectuer une opération asynchrone, la fonction ProtocolCmOpenAf d’un gestionnaire d’appels appelle NdisCmOpenAddressFamilyComplete ; La fonction ProtocolCmOpenAf d’un pilote MCM appelle NdisMCmOpenAddressFamilyComplete. L’appel à Ndis(M)CmOpenAddressFamilyComplete amène NDIS à appeler la fonction ProtocolOpenAfComplete du client qui a initialement appelé NdisClOpenAddressFamilyEx.

Si l’appel du client à NdisClOpenAddressFamilyEx réussit, NDIS renvoie au client un NdisAfHandle qui représente l’association entre le gestionnaire d’appels et le client pour la famille d’adresses ouvertes.

Si un client accepte les appels entrants, il inscrit généralement un ou plusieurs SAP à partir de sa fonction ProtocolClOpenAfCompleteEx en appelant NdisClRegisterSap après son appel réussi à NdisClOpenAddressFamilyEx.

Si un client effectue des appels sortants, il peut créer un ou plusieurs contrôleurs virtuels dans sa fonction ProtocolClOpenAfCompleteEx en prévision d’une demande d’un ou de plusieurs clients d’effectuer un appel sortant.