Partager via


OID_GEN_NETWORK_LAYER_ADDRESSES

En tant qu’ensemble, l’OID OID_GEN_NETWORK_LAYER_ADDRESSES informe le pilote miniport sous-jacent et d’autres pilotes en couche de la liste des adresses de couche réseau associées aux instances liées.

Informations sur la version

Windows Vista et versions ultérieures de Windows
Pris en charge.

Pilotes miniport NDIS 6.0 et ultérieur
Optionnel.

Pilotes miniport NDIS 5.1
Optionnel.

Windows XP
Pris en charge.

Pilotes miniport NDIS 5.1
Optionnel.

Notes

Une instance liée est la liaison entre le transport appelant et un pilote configuré par un appel à NdisOpenAdapterEx. Les transports utilisent des structures TRANSPORT_ADDRESS et TA_ADDRESS pour informer les pilotes miniport sous-jacents et d’autres pilotes en couche de la liste des adresses de couche réseau. Les pilotes Miniport et d’autres pilotes en couche utilisent des structures NETWORK_ADDRESS_LIST et NETWORK_ADDRESS compatibles, définies comme suit, pour définir la liste des adresses de la couche réseau sur une interface liée.

typedef struct _NETWORK_ADDRESS_LIST {
  LONG  AddressCount; 
  USHORT  AddressType; 
  NETWORK_ADDRESS  Address[1]; 
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;

Les membres de cette structure contiennent les informations suivantes :

AddressCount
Spécifie le nombre d’adresses de couche réseau répertoriées dans le tableau dans le membre Address .

AddressType
Spécifie le type de protocole qui envoie cet OID. Ce membre n’est valide que si le membre AddressCount est défini sur zéro. Le membre AddressCount est défini sur zéro pour avertir un pilote miniport ou un autre pilote en couche d’effacer la liste des adresses de couche réseau sur une interface liée. Le protocole peut être l’une des valeurs suivantes :

NDIS_PROTOCOL_ID_DEFAULT
Protocole par défaut

NDIS_PROTOCOL_ID_TCP_IP
Protocole TCP/IP

NDIS_PROTOCOL_ID_IPX
Protocole IPX NetWare

NDIS_PROTOCOL_ID_NBF
Protocole NetBIOS

Adresse
Tableau d’adresses de la couche réseau de type NETWORK_ADDRESS. Le membre AddressCount spécifie le nombre d’éléments dans ce tableau.

typedef struct _NETWORK_ADDRESS {
  USHORT  AddressLength; 
  USHORT  AddressType; 
  UCHAR   Address[1]; 
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;

Les membres de cette structure contiennent les informations suivantes :

AddressLength
Spécifie la taille, en octets, de cette adresse de la couche réseau. Le membre Address contient le tableau d’octets qui spécifient cette adresse.

AddressType
Spécifie le type de protocole qui envoie cet OID et cette adresse de la couche réseau. Ce membre est valide uniquement si le membre AddressCount dans la structure NETWORK_ADDRESS_LIST est défini sur une valeur différente de zéro. Le membre AddressCount dans NETWORK_ADDRESS_LIST est défini sur une valeur différente de zéro pour avertir un pilote miniport ou un autre pilote en couche de modifier la liste des adresses de couche réseau sur une interface liée. Les types de protocole sont définis dans la liste précédente.

Adresse
Tableau d’octets qui spécifient cette adresse de la couche réseau. Le membre AddressLength spécifie le nombre d’octets dans ce tableau.

Le transport peut appeler la fonction NdisOidRequest et peut passer une structure NDIS_OID_REQUEST qui est remplie avec le code OID_GEN_NETWORK_LAYER_ADDRESSES. Cet appel avertit un instance lié d’une modification des adresses associées à cette instance. Dans cet appel, le transport passe également la instance liée dans le paramètre NdisBindingHandle. Le instance lié est la liaison configurée entre le transport et le pilote miniport sous-jacent ou un autre pilote en couches. Pour cet appel, le transport doit remplir le membre InformationBuffer de NDIS_OID_REQUEST avec un pointeur vers une structure TRANSPORT_ADDRESS. TRANSPORT_ADDRESS correspond à une structure NETWORK_ADDRESS_LIST et doit contenir la liste des adresses de la couche réseau.

Supposons qu’un transport passe des adresses via un pilote intermédiaire à un pilote miniport sous-jacent. Si le pilote intermédiaire nécessite également les adresses, il doit en prendre note avant de les transmettre au pilote miniport sous-jacent. Un pilote miniport sous-jacent, en particulier un ancien pilote, peut retourner une valeur status de NDIS_STATUS_NOT_SUPPORTED ou de NDIS_STATUS_SUCCESS. Le pilote miniport sous-jacent propage la status de l’opération vers le transport. Si le pilote intermédiaire doit continuer à recevoir des notifications d’adresse, et si nécessaire, le pilote intermédiaire doit changer la status en NDIS_STATUS_SUCCESS. Sinon, le transport peut interpréter NDIS_STATUS_NOT_SUPPORTED comme une indication que le pilote miniport sous-jacent ne nécessite pas que le problème de transport soit mis à jour d’adresse supplémentaire. Si NDIS_STATUS_SUCCESS est retourné, les transports sont tenus de continuer à informer les pilotes sous-jacents de tout changement dans les adresses associées, y compris l’ajout et la suppression d’adresses.

Un protocole peut définir le membre AddressCount de TRANSPORT_ADDRESS sur zéro pour avertir un pilote miniport ou un autre pilote en couche d’effacer la liste des adresses de couche réseau sur une interface liée. Si AddressCount est défini sur zéro, le membre AddressType dans NETWORK_ADDRESS_LIST est valide et les membres AddressType dans NETWORK_ADDRESS structures ne sont pas valides. En revanche, un protocole peut définir AddressCount sur une valeur différente de zéro pour avertir un pilote miniport ou un autre pilote en couche de modifier la liste des adresses de couche réseau sur une interface liée. Dans ce cas, le membre AddressType dans NETWORK_ADDRESS_LIST n’est pas valide et les membres AddressType dans NETWORK_ADDRESS structures sont valides.

Spécifications

En-tête

Ntddndis.h (inclure Ndis.h)

Voir aussi

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx