Share via


NdisIfRegisterInterface, fonction (ndis.h)

La fonction NdisIfRegisterInterface inscrit une interface réseau NDIS.

Syntaxe

NDIS_STATUS NdisIfRegisterInterface(
  [in] NDIS_HANDLE         NdisProviderHandle,
  [in] NET_LUID            NetLuid,
  [in] NDIS_HANDLE         ProviderIfContext,
  [in] PNET_IF_INFORMATION pIfInfo,
       PNET_IFINDEX        pfIndex
);

Paramètres

[in] NdisProviderHandle

Handle qui identifie le fournisseur d’interface réseau qui inscrit l’interface. L’appelant a obtenu ce handle à partir d’un appel précédent à NdisIfRegisterProvider , fonction.

[in] NetLuid

Valeur de NET_LUID fournie par l’appelant qui est associée à l’interface. Le fournisseur d’interface a utilisé la macro NDIS_MAKE_NET_LUID pour créer cette valeur NET_LUID. Le fournisseur d’interface doit récupérer la valeur NET_LUID à partir du stockage persistant après le redémarrage de l’ordinateur et fournir la même valeur NET_LUID chaque fois qu’il inscrit une interface particulière.

[in] ProviderIfContext

Handle pour une zone de contexte allouée à l’appelant qui est associée à l’interface. NDIS transmet ce handle aux fonctions de rappel que l’appelant a inscrites auprès de NdisIfRegisterProvider.

[in] pIfInfo

Pointeur vers une structure de NET_IF_INFORMATION allouée par l’appelant qui fournit des informations sur l’interface. Cette structure contient des informations qui restent constantes tant que l’interface existe.

pfIndex

Pointeur vers une variable d’index d’interface fournie par l’appelant. Si NDIS inscrit correctement une interface, NDIS alloue un index d’interface pour cette interface et définit la valeur sur pIfIndex . L’index d’interface est une valeur 24 bits unique sur l’ordinateur local. NDIS peut ne pas retourner le même index d’interface chaque fois qu’un fournisseur inscrit une interface avec la même valeur NET_LUID . La valeur d’index d’interface zéro est réservée et NDIS ne l’affecte à aucune interface. Ne confondez pas l’index d’interface avec un index NET_LUID.

Valeur retournée

NdisIfRegisterInterface retourne l’une des valeurs de status suivantes :

Code de retour Description
NDIS_STATUS_SUCCESS
L’opération s’est terminée avec succès.
NDIS_STATUS_RESOURCES
L’opération a échoué en raison de ressources insuffisantes.
NDIS_STATUS_INVALID_PARAMETER
Échec de NdisIfRegisterInterface , car certains paramètres d’entrée ne sont pas valides.
NDIS_STATUS_DUPLICATE_OBJECTID
Échec de NdisIfRegisterInterface , car une interface est déjà inscrite avec la même valeur de NET_LUID que le paramètre NetLuid spécifié.

Remarques

Les fournisseurs d’interface NDIS appellent la fonction NdisIfRegisterInterface pour inscrire une interface réseau. Un appel à cette fonction n’implique pas que l’interface est active.

Chaque fois qu’un ordinateur redémarre, NDIS commence par une liste vide d’interfaces réseau inscrites. Un fournisseur d’interface appelle la fonction NdisIfRegisterInterface chaque fois qu’une interface est démarrée (ou détectée) et que l’interface est
NET_LUID est connu.

La méthode de détection ou de démarrage d’une interface dépend de l’application. Par exemple, si un pilote intermédiaire MUX LBFO est un fournisseur d’interface, ce pilote peut inscrire une interface interne lorsque NDIS appelle la fonction ProtocolBindAdapterEx du pilote pour le premier adaptateur miniport sous-jacent.

Un fournisseur d’interface peut placer des informations sur une interface dans un stockage persistant et restaurer l’interface en fonction des besoins de l’application. Par exemple, le fournisseur peut stocker des informations supplémentaires sur l’interface avec le NET_LUID et il peut réinscrire l’interface après le redémarrage de l’ordinateur.

Si NdisIfRegisterInterface réussit, NDIS ajoute l’interface à la liste des interfaces connues et alloue un nouvel index d’interface pour cette interface. Les fournisseurs d’interface doivent inscrire les interfaces activées et désactivées, dans la mesure du possible. Toutes les interfaces activées doivent être inscrites.

NDIS peut ne pas retourner le même index d’interface chaque fois qu’un fournisseur inscrit une interface avec la même valeur NET_LUID. Par exemple, NDIS n’affecte pas nécessairement le même index d’interface lorsqu’une interface est réinscrite après le redémarrage d’un ordinateur ou lorsque l’interface est désinscrire et réinscrite. La valeur d’index d’interface zéro est réservée et NDIS ne l’affecte à aucune interface.

Pour indiquer qu’une interface doit être supprimée de la liste des interfaces connues sur l’ordinateur, un fournisseur d’interface appelle le Fonction NdisIfDeregisterInterface , par exemple, car l’interface a été désinstallée. .

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_Interfaces_Function(ndis)

Voir aussi

NDIS_MAKE_NET_LUID

NET_IF_INFORMATION

NET_LUID

NdisIfDeregisterInterface

NdisIfRegisterProvider

ProtocolBindAdapterEx