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 |
---|---|
|
L’opération s’est terminée avec succès. |
|
L’opération a échoué en raison de ressources insuffisantes. |
|
Échec de NdisIfRegisterInterface , car certains paramètres d’entrée ne sont pas valides. |
|
É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) |