NdisReadNetworkAddress, fonction (ndis.h)

La fonction NdisReadNetworkAddress retourne l’adresse réseau configurable par logiciel qui a été stockée dans le Registre pour une carte réseau lors de son installation sur l’ordinateur.

Syntaxe

void NdisReadNetworkAddress(
  [out] PNDIS_STATUS Status,
  [out] PVOID        *NetworkAddress,
  [out] PUINT        NetworkAddressLength,
  [in]  NDIS_HANDLE  ConfigurationHandle
);

Paramètres

[out] Status

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne le status de l’appel comme suit :

NDIS_STATUS_SUCCESS

L’appelant peut utiliser l’adresse retournée dans NetworkAddress pour la carte réseau.

NDIS_STATUS_FAILURE

Aucune information d’adresse de carte réseau n’était disponible dans la clé paramètres de Registre de l’appelant ou la valeur stockée n’était pas une chaîne.

[out] NetworkAddress

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne un pointeur vers une mémoire tampon qui contient l’adresse réseau (généralement l’adresse MAC), stockée sous la forme d’une séquence d’entiers d’octets, si l’appel réussit.

[out] NetworkAddressLength

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne le nombre d’octets retournés dans NetworkAddress.

[in] ConfigurationHandle

Handle de configuration retourné par le Fonction NdisOpenConfigurationEx .

Valeur de retour

None

Remarques

NdisReadNetworkAddress recherche la clé Parameters de Registre désignée par le paramètre ConfigurationHandle donné pour l’mot clé NetworkAddress, convertit la valeur de cette entrée de type chaîne en une séquence d’entiers d’octets et stocke les informations demandées en interne. Le stockage que NDIS alloue pour une telle adresse reste valide jusqu’à ce que le pilote miniport appelle la fonction NdisCloseConfiguration , qui libère la mémoire.

L’appelant ne peut pas utiliser la variable sur NetworkAddress comme pointeur, sauf si NdisReadNetworkAddress retourne NDIS_STATUS_SUCCESS à l’état.

Le programme d’installation d’une carte réseau qui prend en charge l’adressage réseau configurable par logiciel doit stocker une entrée de valeur nommée avec l’mot clé NetworkAddress dans hkLM\System\CurrentControlSet\Control\Class{4d36e972...} \00xx key du Registre.

Un programme d’installation de carte réseau stocke généralement la valeur d’une entrée NetworkAddress dans le Registre sous la forme d’une chaîne de chiffres hexadécimaux. Si vous le souhaitez, un programme d’installation peut stocker une telle adresse sous la forme d’une chaîne de chiffres appairés, chaque paire étant séparée de la suivante par un trait d’union. NdisReadNetworkAddress ignore les traits d’union et convertit chacune de ces paires en un seul octet.

Dans les deux formes, NdisReadNetworkAddress convertit l’adresse spécifiée sous forme de chaîne, un caractère à la fois, en entier équivalent jusqu’à ce que la chaîne soit épuisée.

Dans le Registre de Windows 2000 et versions ultérieures, une chaîne d’adresse installée contient des caractères Unicode.

Notez que NDIS ne valide pas la valeur sur NetworkAddress. NDIS ne garantit pas que cette valeur est une adresse valide, que la valeur a la longueur appropriée, ou même que la valeur est une adresse réseau. L’appelant de NdisReadNetworkAddress ne doit donc pas faire d’hypothèses sur cette valeur et doit lui-même valider la valeur. Si l’appelant détermine que la valeur est hors limites, il ne doit pas utiliser la valeur ; au lieu de cela, il doit utiliser l’adresse MAC (Contrôle d’accès moyen permanent) ou une adresse par défaut.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et ultérieur dans Windows Vista et versions ultérieures. Pris en charge pour les pilotes NDIS 5.1 (voir NdisReadNetworkAddress (NDIS 5.1)) dans Windows XP et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL PASSIVE_LEVEL
Règles de conformité DDI Irql_Miscellaneous_Function(ndis)

Voir aussi

NdisCloseConfiguration

NdisOpenConfigurationEx