OID_GEN_NETWORK_LAYER_ADDRESSES

Come set, l'OID OID_GEN_NETWORK_LAYER_ADDRESSES invia una notifica al driver miniport sottostante e ad altri driver a più livelli sull'elenco di indirizzi a livello di rete associati alle istanze associate.

Informazioni sulla versione

Windows Vista e versioni successive di Windows
Supportata.

Driver miniport NDIS 6.0 e versioni successive
Facoltativa.

Driver miniport NDIS 5.1
Facoltativa.

Windows XP
Supportata.

Driver miniport NDIS 5.1
Facoltativa.

Commenti

Un'istanza associata è l'associazione tra il trasporto chiamante e un driver configurato da una chiamata a NdisOpenAdapterEx. I trasporti usano strutture TRANSPORT_ADDRESS e TA_ADDRESS per notificare ai driver miniport sottostanti e ad altri driver a più livelli l'elenco di indirizzi a livello di rete. I driver Miniport e altri driver a più livelli usano strutture compatibili NETWORK_ADDRESS_LIST e NETWORK_ADDRESS, definite come indicato di seguito, per impostare l'elenco di indirizzi a livello di rete su un'interfaccia associata.

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

I membri di questa struttura contengono le informazioni seguenti:

AddressCount
Specifica il numero di indirizzi a livello di rete elencati nella matrice nel membro Address .

AddressType
Specifica il tipo di protocollo che invia questo OID. Questo membro è valido solo se il membro AddressCount è impostato su zero. Il membro AddressCount è impostato su zero per notificare a un driver miniport o a un altro driver a più livelli di cancellare l'elenco di indirizzi a livello di rete in un'interfaccia associata. Il protocollo può essere uno dei valori seguenti:

NDIS_PROTOCOL_ID_DEFAULT
Protocollo predefinito

NDIS_PROTOCOL_ID_TCP_IP
Protocollo TCP/IP

NDIS_PROTOCOL_ID_IPX
Protocollo IPX NetWare

NDIS_PROTOCOL_ID_NBF
Protocollo NetBIOS

Indirizzo
Matrice di indirizzi a livello di rete di tipo NETWORK_ADDRESS. Il membro AddressCount specifica il numero di elementi in questa matrice.

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

I membri di questa struttura contengono le informazioni seguenti:

AddressLength
Specifica le dimensioni, in byte, di questo indirizzo a livello di rete. Il membro Address contiene la matrice di byte che specificano questo indirizzo.

AddressType
Specifica il tipo di protocollo che invia questo OID e questo indirizzo a livello di rete. Questo membro è valido solo se il membro AddressCount nella struttura NETWORK_ADDRESS_LIST è impostato su un valore diverso da zero. Il membro AddressCount in NETWORK_ADDRESS_LIST è impostato su un valore diverso da zero per notificare a un driver miniport o a un altro driver a più livelli di modificare l'elenco di indirizzi a livello di rete in un'interfaccia associata. I tipi di protocollo sono definiti nell'elenco precedente.

Indirizzo
Matrice di byte che specificano questo indirizzo a livello di rete. Il membro AddressLength specifica il numero di byte in questa matrice.

Il trasporto può chiamare la funzione NdisOidRequest e può passare una struttura NDIS_OID_REQUEST riempita con il codice OID_GEN_NETWORK_LAYER_ADDRESSES. Questa chiamata notifica a un'istanza associata di una modifica negli indirizzi associati a tale istanza. In questa chiamata, il trasporto passa anche l'istanza associata nel parametro NdisBindingHandle . L'istanza associata è l'associazione configurata tra il trasporto e il driver miniport sottostante o un altro driver a più livelli. Per questa chiamata, il trasporto deve riempire il membro InformationBuffer di NDIS_OID_REQUEST con un puntatore a una struttura TRANSPORT_ADDRESS. TRANSPORT_ADDRESS corrisponde a una struttura NETWORK_ADDRESS_LIST e deve contenere l'elenco di indirizzi a livello di rete.

Si supponga che un trasporto passi gli indirizzi attraverso un driver intermedio fino a un driver miniport sottostante. Se il driver intermedio richiede anche gli indirizzi, deve prendere nota di loro prima di passarli al driver miniport sottostante. Un driver miniport sottostante, in particolare un driver precedente, può restituire un valore di stato di NDIS_STATUS_NOT_SUPPORTED o NDIS_STATUS_SUCCESS. Il driver miniport sottostante propaga lo stato dell'operazione di backup verso il trasporto. Se il driver intermedio deve continuare a ricevere le notifiche degli indirizzi e, se necessario, il driver intermedio deve modificare lo stato in NDIS_STATUS_SUCCESS. In caso contrario, il trasporto potrebbe interpretare NDIS_STATUS_NOT_SUPPORTED come un'indicazione che il driver miniport sottostante non richiede che il trasporto rilasci ulteriori aggiornamenti degli indirizzi. Se NDIS_STATUS_SUCCESS viene restituito, i trasporti sono obbligati a continuare a notificare ai driver sottostanti qualsiasi modifica degli indirizzi associati, inclusa l'aggiunta e l'eliminazione degli indirizzi.

Un protocollo può impostare il membro AddressCount di TRANSPORT_ADDRESS su zero per notificare a un driver miniport o a un altro driver a più livelli di cancellare l'elenco di indirizzi a livello di rete su un'interfaccia associata. Se AddressCount è impostato su zero, il membro AddressType in NETWORK_ADDRESS_LIST è valido e i membri AddressType nelle strutture NETWORK_ADDRESS non sono validi. D'altra parte, un protocollo può impostare AddressCount su un valore diverso da zero per notificare a un driver miniport o a un altro driver a più livelli di modificare l'elenco di indirizzi a livello di rete in un'interfaccia associata. In questo caso, il membro AddressType in NETWORK_ADDRESS_LIST non è valido e i membri AddressType nelle strutture NETWORK_ADDRESS sono validi.

Requisiti

Intestazione

Ntddndis.h (include Ndis.h)

Vedi anche

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx