MIB_IPINTERFACE_ROW struttura (netioapi.h)

La struttura MIB_IPINTERFACE_ROW archivia le informazioni di gestione delle interfacce per una determinata famiglia di indirizzi IP in un'interfaccia di rete.

Sintassi

typedef struct _MIB_IPINTERFACE_ROW {
  ADDRESS_FAMILY                 Family;
  NET_LUID                       InterfaceLuid;
  NET_IFINDEX                    InterfaceIndex;
  ULONG                          MaxReassemblySize;
  ULONG64                        InterfaceIdentifier;
  ULONG                          MinRouterAdvertisementInterval;
  ULONG                          MaxRouterAdvertisementInterval;
  BOOLEAN                        AdvertisingEnabled;
  BOOLEAN                        ForwardingEnabled;
  BOOLEAN                        WeakHostSend;
  BOOLEAN                        WeakHostReceive;
  BOOLEAN                        UseAutomaticMetric;
  BOOLEAN                        UseNeighborUnreachabilityDetection;
  BOOLEAN                        ManagedAddressConfigurationSupported;
  BOOLEAN                        OtherStatefulConfigurationSupported;
  BOOLEAN                        AdvertiseDefaultRoute;
  NL_ROUTER_DISCOVERY_BEHAVIOR   RouterDiscoveryBehavior;
  ULONG                          DadTransmits;
  ULONG                          BaseReachableTime;
  ULONG                          RetransmitTime;
  ULONG                          PathMtuDiscoveryTimeout;
  NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
  ULONG                          LinkLocalAddressTimeout;
  ULONG                          ZoneIndices[ScopeLevelCount];
  ULONG                          SitePrefixLength;
  ULONG                          Metric;
  ULONG                          NlMtu;
  BOOLEAN                        Connected;
  BOOLEAN                        SupportsWakeUpPatterns;
  BOOLEAN                        SupportsNeighborDiscovery;
  BOOLEAN                        SupportsRouterDiscovery;
  ULONG                          ReachableTime;
  NL_INTERFACE_OFFLOAD_ROD       TransmitOffload;
  NL_INTERFACE_OFFLOAD_ROD       ReceiveOffload;
  BOOLEAN                        DisableDefaultRoutes;
} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;

Members

Family

Tipo: ADDRESS_FAMILY

Famiglia di indirizzi. I valori possibili per la famiglia di indirizzi sono elencati nel file di intestazione Winsock2.h . Si noti che i valori per la famiglia di indirizzi AF_ e le costanti della famiglia di protocolli di PF_ sono identiche (ad esempio, AF_INET e PF_INET), in modo che sia possibile usare una costante.

In Windows Vista e versioni successive, nonché nella Windows SDK, l'organizzazione dei file di intestazione è stata modificata e i valori possibili per questo membro vengono definiti nel file di intestazione Ws2def.h. Si noti che il file di intestazione Ws2def.h viene incluso automaticamente in Winsock2.h e non deve mai essere usato direttamente.

I valori attualmente supportati sono AF_INET o AF_INET6, ovvero i formati della famiglia di indirizzi Internet per IPv4 e IPv6.

Valore Significato
AF_UNSPEC
0
La famiglia di indirizzi non è specificata.
AF_INET
2
Famiglia di indirizzi Internet Protocol versione 4 (IPv4).
AF_INET6
23
Famiglia di indirizzi IPv6 (Internet Protocol 6).

InterfaceLuid

Tipo: NET_LUID

Identificatore univoco locale (LUID) per l'interfaccia di rete.

InterfaceIndex

Tipo: NET_IFINDEX

Valore dell'indice locale per l'interfaccia di rete. Questo valore di indice può cambiare quando una scheda di rete è disabilitata e quindi abilitata o in altre circostanze e non deve essere considerata persistente.

MaxReassemblySize

Tipo: ULONG

Dimensioni massime di riassemblaggio, in byte, di un pacchetto IP frammentato. Questo membro è attualmente impostato su zero e riservato per l'uso futuro.

InterfaceIdentifier

Tipo: ULONG64

Riservato per utilizzi futuri. Questo membro è attualmente impostato su zero.

MinRouterAdvertisementInterval

Tipo: ULONG

Intervallo minimo di annuncio router, in millisecondi, su questa interfaccia IP. Questo membro viene predefinito su 200 per IPv6. Questo membro è applicabile solo se il membro AdvertisingEnabled è impostato su TRUE.

MaxRouterAdvertisementInterval

Tipo: ULONG

Intervallo massimo di annunci router, in millisecondi, su questa interfaccia IP. Questo membro viene predefinito su 600 per IPv6. Questo membro è applicabile solo se il membro AdvertisingEnabled è impostato su TRUE.

AdvertisingEnabled

Tipo: BOOLEAN

Valore che indica se la pubblicità del router è abilitata in questa interfaccia IP. Il valore predefinito per IPv6 è che l'annuncio del router è abilitato solo se l'interfaccia è configurata per agire come router. Il valore predefinito per IPv4 è che l'annuncio del router è disabilitato.

ForwardingEnabled

Tipo: BOOLEAN

Valore che indica se l'inoltro IP è abilitato in questa interfaccia IP.

WeakHostSend

Tipo: BOOLEAN

Valore che indica se la modalità di invio host debole è abilitata in questa interfaccia IP.

WeakHostReceive

Tipo: BOOLEAN

Valore che indica se la modalità di ricezione host debole è abilitata in questa interfaccia IP.

UseAutomaticMetric

Tipo: BOOLEAN

Valore che indica se l'interfaccia IP usa la metrica automatica.

UseNeighborUnreachabilityDetection

Tipo: BOOLEAN

Valore che indica se il rilevamento dell'impossibilità vicina è abilitato in questa interfaccia IP.

ManagedAddressConfigurationSupported

Tipo: BOOLEAN

Valore che indica se l'interfaccia IP supporta la configurazione dell'indirizzo gestito tramite DHCP.

OtherStatefulConfigurationSupported

Tipo: BOOLEAN

Valore che indica se l'interfaccia IP supporta altre configurazioni con stato (ad esempio la configurazione della route).

AdvertiseDefaultRoute

Tipo: BOOLEAN

Valore che indica se l'interfaccia IP annuncia la route predefinita. Questo membro è applicabile solo se il membro AdvertisingEnabled è impostato su TRUE.

RouterDiscoveryBehavior

Tipo: NL_ROUTER_DISCOVERY_BEHAVIOR

Comportamento di individuazione del router. Questo membro può essere uno dei valori del tipo di enumerazione NL_ROUTER_DISCOVERY_BEHAVIOR definito nel file di intestazione Nldef.h . Il membro è descritto in RFC 2461. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2461.txt.

Valore Significato
RouterDiscoveryDisabled
0
L'individuazione del router è disabilitata.
RouterDiscoveryEnabled
1
L'individuazione del router è abilitata. Si tratta del valore predefinito per IPv6.
RouterDiscoveryDhcp
2
L'individuazione del router è configurata in base a DHCP. Si tratta del valore predefinito per IPv4.
RouterDiscoveryUnchanged
-1
Questo valore viene usato quando si impostano le proprietà per un'interfaccia IP quando il valore per l'individuazione del router deve essere invariato.

DadTransmits

Tipo: ULONG

Numero di messaggi consecutivi inviati durante l'esecuzione del rilevamento degli indirizzi duplicati in un indirizzo IP unicast tentativo. Un valore pari a zero indica che il rilevamento degli indirizzi duplicati non viene eseguito su indirizzi IP provvisori. Un valore di uno indica una singola trasmissione senza ritrasmissione di completamento. Per IPv4, l'impostazione predefinita per questo membro è 3. Per IPv6, l'impostazione predefinita per questo membro è 1. Per IPv6, questi messaggi verranno inviati come richieste di richiesta vicina. Questo membro viene definito come DupAddrDetectTransmits in RFC 2462. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2462.txt.

BaseReachableTime

Tipo: ULONG

Base per il tempo raggiungibile casuale, in millisecondi. Il membro è descritto in RFC 2461. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2461.txt.

RetransmitTime

Tipo: ULONG

Timeout di sollecitazione adiacente, espresso in millisecondi. Il membro è descritto in RFC 2461. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2461.txt.

PathMtuDiscoveryTimeout

Tipo: ULONG

Timeout di individuazione MTU del percorso, espresso in millisecondi.

LinkLocalAddressBehavior

Tipo: NL_LINK_LOCAL_ADDRESS_BEHAVIOR

Comportamento dell'indirizzo locale del collegamento. Questo membro può essere uno dei valori del tipo di enumerazione NL_LINK_LOCAL_ADDRESS_BEHAVIOR definito nel file di intestazione Nldef.h .

Valore Significato
LinkLocalAlwaysOff
0
Non usare mai un indirizzo IP locale di collegamento.
LinkLocalDelayed
1
Usare un indirizzo IP locale di collegamento solo se non è disponibile alcun altro indirizzo. Questa è l'impostazione predefinita per un'interfaccia IPv4.
LinkLocalAlwaysOn
2
Usare sempre un indirizzo IP locale di collegamento. Questa è l'impostazione predefinita per un'interfaccia IPv6.
LinkLocalUnchanged
-1
Questo valore viene usato quando si impostano le proprietà per un'interfaccia IP quando il valore per il comportamento dell'indirizzo locale del collegamento deve essere invariato.

LinkLocalAddressTimeout

Tipo: ULONG

Timeout dell'indirizzo IP locale del collegamento, espresso in millisecondi.

ZoneIndices[ScopeLevelCount]

Tipo: ULONG[ScopeLevelCount]

Matrice che specifica la parte della zona degli ID ambito.

SitePrefixLength

Tipo: ULONG

Lunghezza del prefisso del sito, in bit, dell'indirizzo dell'interfaccia IP. Lunghezza, in bit, del prefisso del sito o parte di rete dell'indirizzo dell'interfaccia IP. Per un indirizzo IPv4, qualsiasi valore maggiore di 32 è un valore non valido. Per un indirizzo IPv6, qualsiasi valore maggiore di 128 è un valore non valido. Il valore 255 viene comunemente usato per rappresentare un valore non valido.

Metric

Tipo: ULONG

Metrica dell'interfaccia. Si noti che la metrica di route effettiva usata per calcolare la preferenza di route è la somma dell'offset della metrica di route specificato nel membro Metric della struttura MIB_IPFORWARD_ROW2 e la metrica di interfaccia specificata in questo membro.

NlMtu

Tipo: ULONG

Dimensioni MTU del livello di rete, in byte.

Connected

Tipo: BOOLEAN

Valore che indica se l'interfaccia è connessa a un punto di accesso di rete.

SupportsWakeUpPatterns

Tipo: BOOLEAN

Valore che specifica se l'interfaccia di rete supporta riattivazione LAN.

SupportsNeighborDiscovery

Tipo: BOOLEAN

Valore che specifica se l'interfaccia IP supporta l'individuazione adiacente.

SupportsRouterDiscovery

Tipo: BOOLEAN

Valore che specifica se l'interfaccia IP supporta l'individuazione del router.

ReachableTime

Tipo: ULONG

Timeout raggiungibile, espresso in millisecondi.

TransmitOffload

Tipo: NL_INTERFACE_OFFLOAD_ROD

Set di flag che indicano le funzionalità di offload di trasmissione per l'interfaccia IP. La struttura NL_INTERFACE_OFFLOAD_ROD è definita nel file di intestazione Nldef.h .

ReceiveOffload

Tipo: NL_INTERFACE_OFFLOAD_ROD

Set di flag che indicano le funzionalità di offload di ricezione per l'interfaccia IP. La struttura NL_INTERFACE_OFFLOAD_ROD è definita nel file di intestazione Nldef.h .

DisableDefaultRoutes

Tipo: BOOLEAN

Valore che indica se usare la route predefinita nell'interfaccia deve essere disabilitato. Questo membro può essere usato dai client VPN per limitare il split tunneling.

Commenti

La struttura MIB_IPINTERFACE_ROW è definita in Windows Vista e versioni successive.

I membri Family, InterfaceLuid e InterfaceIndex identificano in modo univoco una voce MIB_IPINTERFACE_ROW .

Quando un pacchetto unicast arriva a un host, l'indirizzo IP deve determinare se il pacchetto è destinato localmente (la destinazione corrisponde a un indirizzo assegnato a un'interfaccia dell'host). Le implementazioni IP che seguono un modello host debole accettano qualsiasi pacchetto destinato in locale, indipendentemente dall'interfaccia in cui è stato ricevuto il pacchetto. Le implementazioni IP che seguono il modello host sicuro accettano pacchetti destinati in locale solo se l'indirizzo di destinazione nel pacchetto corrisponde a un indirizzo assegnato all'interfaccia in cui è stato ricevuto il pacchetto. Il modello host debole offre una migliore connettività di rete. Tuttavia, rende gli host sensibili agli attacchi di rete multihome.

L'implementazione IPv4 corrente in Windows Server 2003 e Windows XP usa il modello host debole. In questo caso, tutti i pacchetti unicast vengono inviati all'interfaccia con la metrica più bassa per una route.

Lo stack TCP/IP in Windows Vista e versioni successive supporta il modello host sicuro sia per IPv4 che per IPv6 ed è configurato per l'uso della modalità host complessa per impostazione predefinita (i membri WeakHostReceive e WeakHostSend sono impostati su FALSE). Con la modalità host sicuro, è possibile inviare un pacchetto unicast a un'interfaccia specifica che non ha la metrica più bassa per una route associando il socket all'indirizzo di origine dell'interfaccia specifica.

Lo stack TCP/IP in Windows Vista e versioni successive può essere configurato per l'uso di un modello host debole.

Una metrica è un valore assegnato a una route IP per una particolare interfaccia di rete che identifica il costo associato all'uso di tale route. Ad esempio, la metrica può essere valutata in termini di velocità di collegamento, conteggio hop o ritardo di tempo. La metrica automatica è una funzionalità di Windows XP e versioni successive che configura automaticamente la metrica per le route locali basate sulla velocità di collegamento. La funzionalità di metrica automatica è abilitata per impostazione predefinita ( UseAutomaticMetric è impostata su TRUE) in Windows XP e versioni successive. Può anche essere configurato manualmente per assegnare una metrica specifica a una route IP.

La funzionalità di metrica automatica può essere utile quando la tabella di routing contiene più route per la stessa destinazione. Ad esempio, un computer con un'interfaccia di rete a 10 megabit e un'interfaccia di rete a 100 megabit ha un gateway predefinito configurato in entrambe le interfacce di rete. Quando UseAutomaticMetric è TRUE, questa funzionalità può forzare tutto il traffico destinato a Internet, ad esempio, per usare l'interfaccia di rete più veloce disponibile.

La metrica di interfaccia specificata nel membro Metric rappresenta solo la metrica per l'interfaccia. La metrica di routing completa è una combinazione di questa metrica di interfaccia aggiunta all'offset della metrica di route specificato nel membro Metric della struttura MIB_IPFORWARD_ROW2 di una voce di route specificata in questa interfaccia.

L'accesso simultaneo senza privilegi a più reti di requisiti di sicurezza diversi crea un foro di sicurezza e consente a un'applicazione senza privilegi di inoltrare accidentalmente i dati tra le due reti. Un esempio tipico è l'accesso simultaneo a una rete privata virtuale (VPN) e a Internet. Windows Server 2003 e Windows XP usano un modello host debole, in cui RAS impedisce tale accesso simultaneo aumentando la metrica di route di tutte le route predefinite su altre interfacce. Di conseguenza, tutto il traffico viene instradato attraverso l'interfaccia VPN, interrompendo la connettività di rete.

In Windows Vista e versioni successive viene usato un modello host sicuro per impostazione predefinita. Se un indirizzo IP di origine viene specificato nella ricerca della route usando GetBestRoute2 o GetBestRoute, la ricerca della route è limitata all'interfaccia dell'indirizzo IP di origine. La modifica della metrica di route da RAS non ha alcun effetto perché l'elenco di potenziali route non ha nemmeno la route per l'interfaccia VPN consentendo così il traffico verso Internet. Il membro DisableDefaultRoutes della struttura MIB_IPINTERFACE_ROW può essere usato per disabilitare l'uso della route predefinita in un'interfaccia. Questo membro può essere usato come misura di sicurezza da parte dei client VPN per limitare il split tunneling quando il split tunneling non è richiesto dal client VPN. Un client VPN può chiamare la funzione SetIpInterfaceEntry per impostare il membro DisableDefaultRoutes su TRUE quando necessario. Un client VPN può eseguire una query sullo stato corrente del membro DisableDefaultRoutes chiamando la funzione GetIpInterfaceEntry .

Si noti che il file di intestazione Netioapi.h viene incluso automaticamente nel file di intestazione Iphlpapi.h . Il file di intestazione Netioapi.h non deve mai essere usato direttamente.

Esempio

Per visualizzare un esempio che recupera la struttura MIB_IPINTERFACE_TABLE e quindi stampa alcuni membri delle voci della struttura MIB_IPINTERFACE_ROW in questa tabella, vedere la funzione GetIpInterfaceTable .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione netioapi.h (include Iphlpapi.h)

Vedi anche

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry