Partager via


Utilisation d’un index NET_LUID

NDIS fournit des fonctions pour allouer et libérer les index NET_LUID nécessaires à la création de valeurs NET_LUID. Un fournisseur d’interface NDIS doit allouer une valeur NET_LUID pour inscrire une interface.

Pour allouer un index NET_LUID, un fournisseur d’interface appelle la fonction NdisIfAllocateNetLuidIndex . Après avoir alloué l’index, le fournisseur d’interface appelle la macro NDIS_MAKE_NET_LUID pour générer la valeur NET_LUID. Pour libérer un index NET_LUID, un fournisseur d’interface appelle la fonction NdisIfFreeNetLuidIndex .

NdisIfAllocateNetLuidIndex tente d’allouer une valeur 24 bits associée au type d’interface que l’appelant a spécifié au paramètre IfType et qui est unique à l’ordinateur local. Si l’allocation d’index réussit, NdisIfAllocateNetLuidIndex retourne NDIS_STATUS_SUCCESS et fournit un index NET_LUID à l’adresse fournie dans le paramètre pNetLuidIndex . Si NDIS n’est pas en mesure de trouver un index de NET_LUID libre, NdisIfAllocateNetLuidIndex retourne NDIS_STATUS_RESOURCES. NdisIfAllocateNetLuidIndex peut retourner d’autres valeurs status NDIS pour indiquer des erreurs internes dans NDIS. NDIS enregistre l’allocation de cet index pour le redémarrage ultérieur de l’ordinateur. NDIS n’utilisera pas d’index particulier pour les futurs appelants, même après le redémarrage de l’ordinateur, tant que le fournisseur d’interface qui a alloué cet index appelle la fonction NdisIfFreeNetLuidIndex pour cet index.

NdisIfFreeNetLuidIndex libère un index NET_LUID précédemment alloué afin que NDIS puisse éventuellement réallouer cet index vers une autre interface. L’appelant doit passer le même type d’interface sur IfType que celui utilisé par l’appelant quand il a appelé NdisIfAllocateNetLuidIndex pour allouer l’index NET_LUID. Si l’opération gratuite réussit, NdisIfFreeNetLuidIndex retourne NDIS_STATUS_SUCCESS. Si l’appel à NdisIfFreeNetLuidIndex échoue, le fournisseur d’interface doit supprimer toutes les informations qu’il a enregistrées dans le stockage persistant lié à l’index NET_LUID. La suppression des informations garantit que le fournisseur ne continue pas à essayer de libérer un index déjà libéré après chaque redémarrage de l’ordinateur. Après avoir appelé NdisIfFreeNetLuidIndex, l’appelant ne doit plus utiliser la valeur NET_LUID, sauf s’il appelle à nouveau NdisIfAllocateNetLuidIndex pour le même type d’interface et reçoit le même index NET_LUID qu’il a libéré.

Pour inscrire une interface réseau, un fournisseur d’interface doit passer une valeur NET_LUID valide à la fonction NdisIfRegisterInterface . Pour plus d’informations sur l’inscription d’interfaces réseau, consultez Inscription d’une interface réseau.