Partager via


Fonction NdisMCmRegisterAddressFamilyEx (ndis.h)

La fonction NdisMCmRegisterAddressFamilyEx enregistre une famille d’adresses (AF) pour la communication entre un gestionnaire d’appels miniport (MCM) et les clients CoNDIS.

Syntaxe

NDIS_STATUS NdisMCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        MiniportAdapterHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

Paramètres

[in] MiniportAdapterHandle

Handle fourni par NDIS qui identifie un adaptateur miniport. Ce handle est un paramètre d’entrée du MCM Fonction MiniportInitializeEx .

[in] AddressFamily

Pointeur vers une structure de CO_ADDRESS_FAMILY qui identifie l’AF pris en charge par le pilote MCM.

Le pointeur devient un paramètre d’entrée vers le Fonctions ProtocolCoAfRegisterNotify de tous les clients CoNDIS liés à ce pilote MCM.

Valeur retournée

NdisMCmRegisterAddressFamilyEx peut retourner l’un des éléments suivants :

Code de retour Description
NDIS_STATUS_SUCCESS
Pilote miniport inscrit auprès de NDIS en tant que gestionnaire d’appels pour l’AF que le paramètre AddressFamily a spécifié. De sorte que NDIS appelle le Fonctions ProtocolCoAfRegisterNotify de tous les clients qui se lient au pilote MCM.
NDIS_STATUS_RESOURCES
L’opération demandée a échoué, car NDIS n’a pas pu allouer suffisamment de mémoire ou initialiser les informations d’état qu’il utilise pour suivre le pilote MCM en tant que gestionnaire d’appels de l’AF spécifié.
NDIS_STATUS_FAILURE
NDIS a échoué à l’appel à NdisMCmRegisterAddressFamilyEx, probablement pour l’une des raisons suivantes :
  • L’appelant n’a pas été enregistré en tant que pilote miniport orienté connexion.
  • L’appelant a essayé d’inscrire un af dupliqué pour un adaptateur miniport donné.

Remarques

Machines virtuelles NDIS, qui s’inscrivent en tant que pilotes miniport NDIS en appelant le La fonction NdisMRegisterMiniportDriver doit appeler la fonction NdisMCmRegisterAddressFamilyEx pour inscrire un AF. Les gestionnaires d’appels autonomes doivent plutôt appeler le Fonction NdisCmRegisterAddressFamilyEx .

Pour inscrire un af pour un adaptateur miniport, le MCM doit appeler NdisMCmRegisterAddressFamilyEx à partir de la fonction MiniportInitializeEx .

Le pilote de n’importe quel carte d’interface réseau qui prend en charge la signalisation orientée connexion peut s’inscrire en tant que pilote MCM pour de meilleures performances dans la gestion des appels. Si un pilote s’inscrit en tant que pilote MCM, tout gestionnaire d’appels autonome avec le propre support de gestion des appels du pilote de carte réseau est déplacé.

Un pilote MCM appelle NdisMCmRegisterAddressFamilyEx après avoir déterminé qu’une carte réseau est entièrement opérationnelle et que le pilote peut effectuer des opérations d’E/S réseau. Autrement dit, un tel MCM s’inscrit en tant que gestionnaire d’appels et publie ses services de signalisation spécifiques pour les clients CoNDIS.

Une fois que MiniportInitializeEx retourne le contrôle avec une inscription réussie en tant que gestionnaire d’appels, NDIS appelle les fonctions ProtocolBindAdapterEx des clients potentiels, puis, le Fonctions ProtocolCoAfRegisterNotify de tous les clients qui se lient à l’adaptateur miniport MCM associé. Ces clients obligent ensuite NDIS à appeler la fonction ProtocolCmOpenAf du MCM.

Un MCM peut prendre en charge plusieurs af pour une seule carte réseau qu’il gère. Le pilote MCM doit appeler NdisMCmRegisterAddressFamilyEx une fois pour chaque af qu’il inscrit pour un adaptateur miniport. Un seul pilote MCM peut prendre en charge un type particulier d’AF pour les clients liés à un adaptateur miniport donné.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL PASSIVE_LEVEL
Règles de conformité DDI Irql_MCM_Function(ndis)

Voir aussi

CO_ADDRESS_FAMILY

MiniportInitializeEx

NdisCmRegisterAddressFamilyEx

NdisMRegisterMiniportDriver

ProtocolBindAdapterEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc

ProtocolCoDeleteVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete