MIB_IPINTERFACE_ROW-Struktur (netioapi.h)

Die MIB_IPINTERFACE_ROW-Struktur speichert Schnittstellenverwaltungsinformationen für eine bestimmte IP-Adressfamilie auf einer Netzwerkschnittstelle.

Syntax

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;

Member

Family

Typ: ADDRESS_FAMILY

Die Adressfamilie. Mögliche Werte für die Adressfamilie sind in der Winsock2.h-Headerdatei aufgeführt. Beachten Sie, dass die Werte für die AF_ Adressfamilie und PF_ Protokollfamilienkonstanten identisch sind (z. B. AF_INET und PF_INET), sodass beide Konstanten verwendet werden können.

Unter Windows Vista und höher sowie auf dem Windows SDK hat sich die organization der Headerdateien geändert, und mögliche Werte für diesen Member werden in der Ws2def.h-Headerdatei definiert. Beachten Sie, dass die Ws2def.h-Headerdatei automatisch in Winsock2.h enthalten ist und niemals direkt verwendet werden sollte.

Die derzeit unterstützten Werte sind AF_INET oder AF_INET6, d. h. die Internetadressfamilienformate für IPv4 und IPv6.

Wert Bedeutung
AF_UNSPEC
0
Die Adressfamilie ist nicht angegeben.
AF_INET
2
Die IPv4-Adressfamilie (Internet Protocol Version 4).
AF_INET6
23
Die IPv6-Adressfamilie (Internet Protocol Version 6).

InterfaceLuid

Typ: NET_LUID

Der lokal eindeutige Bezeichner (LUID) für die Netzwerkschnittstelle.

InterfaceIndex

Typ: NET_IFINDEX

Der lokale Indexwert für die Netzwerkschnittstelle. Dieser Indexwert kann sich ändern, wenn ein Netzwerkadapter deaktiviert und dann aktiviert wird, oder unter anderen Umständen, und er sollte nicht als persistent betrachtet werden.

MaxReassemblySize

Typ: ULONG

Die maximale Größe der Neuassembly eines fragmentierten IP-Pakets in Byte. Dieser Member ist derzeit auf 0 (null) festgelegt und für die zukünftige Verwendung reserviert.

InterfaceIdentifier

Typ: ULONG64

Für die zukünftige Verwendung reserviert. Dieser Member ist derzeit auf 0 (null) festgelegt.

MinRouterAdvertisementInterval

Typ: ULONG

Das minimale Router-Ankündigungsintervall in Millisekunden für diese IP-Schnittstelle. Dieser Member ist für IPv6 standardmäßig 200. Dieser Member ist nur anwendbar, wenn das AdvertisingEnabled-Element auf TRUE festgelegt ist.

MaxRouterAdvertisementInterval

Typ: ULONG

Das maximale Router-Ankündigungsintervall in Millisekunden auf dieser IP-Schnittstelle. Dieser Member ist für IPv6 standardmäßig 600. Dieser Member ist nur anwendbar, wenn das AdvertisingEnabled-Element auf TRUE festgelegt ist.

AdvertisingEnabled

Typ: BOOLEAN

Ein Wert, der angibt, ob Routerwerbung auf dieser IP-Schnittstelle aktiviert ist. Die Standardeinstellung für IPv6 ist, dass router advertisement nur aktiviert ist, wenn die Schnittstelle so konfiguriert ist, dass sie als Router fungiert. Die Standardeinstellung für IPv4 ist, dass router advertisement deaktiviert ist.

ForwardingEnabled

Typ: BOOLEAN

Ein -Wert, der angibt, ob die IP-Weiterleitung auf dieser IP-Schnittstelle aktiviert ist.

WeakHostSend

Typ: BOOLEAN

Ein -Wert, der angibt, ob der schwache Host-Sendemodus für diese IP-Schnittstelle aktiviert ist.

WeakHostReceive

Typ: BOOLEAN

Ein -Wert, der angibt, ob der schwache Host-Empfangsmodus auf dieser IP-Schnittstelle aktiviert ist.

UseAutomaticMetric

Typ: BOOLEAN

Ein -Wert, der angibt, ob die IP-Schnittstelle eine automatische Metrik verwendet.

UseNeighborUnreachabilityDetection

Typ: BOOLEAN

Ein -Wert, der angibt, ob die Erkennung der Nichterreichbarkeit von Nachbarn auf dieser IP-Schnittstelle aktiviert ist.

ManagedAddressConfigurationSupported

Typ: BOOLEAN

Ein -Wert, der angibt, ob die IP-Schnittstelle die Konfiguration verwalteter Adressen mithilfe von DHCP unterstützt.

OtherStatefulConfigurationSupported

Typ: BOOLEAN

Ein -Wert, der angibt, ob die IP-Schnittstelle eine andere zustandsbehaftete Konfiguration (z. B. Routenkonfiguration) unterstützt.

AdvertiseDefaultRoute

Typ: BOOLEAN

Ein -Wert, der angibt, ob die IP-Schnittstelle die Standardroute angibt. Dieser Member ist nur anwendbar, wenn das AdvertisingEnabled-Element auf TRUE festgelegt ist.

RouterDiscoveryBehavior

Typ: NL_ROUTER_DISCOVERY_BEHAVIOR

Das Verhalten der Routerermittlung. Dieser Member kann einer der Werte aus dem NL_ROUTER_DISCOVERY_BEHAVIOR Enumerationstyp sein, der in der Headerdatei Nldef.h definiert ist. Das Element wird in RFC 2461 beschrieben. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2461.txt.

Wert Bedeutung
RouterDiscoveryDisabled
0
Die Routerermittlung ist deaktiviert.
RouterDiscoveryEnabled
1
Die Routerermittlung ist aktiviert. Dies ist der Standardwert für IPv6.
RouterDiscoveryDhcp
2
Die Routerermittlung wird basierend auf DHCP konfiguriert. Dies ist der Standardwert für IPv4.
RouterDiscoveryUnchanged
-1
Dieser Wert wird verwendet, wenn die Eigenschaften für eine IP-Schnittstelle festgelegt werden, wenn der Wert für die Routerermittlung unverändert sein soll.

DadTransmits

Typ: ULONG

Die Anzahl der aufeinanderfolgenden Nachrichten, die bei der Erkennung doppelter Adressen für eine vorläufige IP-Unicastadresse gesendet werden. Der Wert 0 (null) gibt an, dass die Erkennung doppelter Adressen für vorläufige IP-Adressen nicht durchgeführt wird. Der Wert 1 gibt eine einzelne Übertragung ohne Folgeweiterübertragungen an. Für IPv4 ist der Standardwert für dieses Element 3. Für IPv6 ist der Standardwert für dieses Element 1. Für IPv6 werden diese Nachrichten als Nachbaranfragen gesendet. Dieses Element ist in RFC 2462 als DupAddrDetectTransmits definiert. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2462.txt.

BaseReachableTime

Typ: ULONG

Die Basis für zufällig erreichbare Zeit in Millisekunden. Das Element wird in RFC 2461 beschrieben. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2461.txt.

RetransmitTime

Typ: ULONG

Das Timeout für die Nachbaranfrage in Millisekunden. Das Element wird in RFC 2461 beschrieben. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2461.txt.

PathMtuDiscoveryTimeout

Typ: ULONG

Das Pfad-MTU-Ermittlungstimeout in Millisekunden.

LinkLocalAddressBehavior

Typ: NL_LINK_LOCAL_ADDRESS_BEHAVIOR

Das Linkverhalten der lokalen Adresse. Dieser Member kann einer der Werte aus dem NL_LINK_LOCAL_ADDRESS_BEHAVIOR Enumerationstyp sein, der in der Headerdatei Nldef.h definiert ist.

Wert Bedeutung
LinkLocalAlwaysOff
0
Verwenden Sie niemals eine link-lokale IP-Adresse.
LinkLocalDelayed
1
Verwenden Sie eine link-lokale IP-Adresse nur, wenn keine andere Adresse verfügbar ist. Dies ist die Standardeinstellung für eine IPv4-Schnittstelle.
LinkLocalAlwaysOn
2
Verwenden Sie immer eine link-lokale IP-Adresse. Dies ist die Standardeinstellung für eine IPv6-Schnittstelle.
LinkLocalUnchanged
-1
Dieser Wert wird verwendet, wenn die Eigenschaften für eine IP-Schnittstelle festgelegt werden, wenn der Wert für das Verhalten der lokalen Linkadresse unverändert sein soll.

LinkLocalAddressTimeout

Typ: ULONG

Das Timeout für die lokale IP-Adresse des Links in Millisekunden.

ZoneIndices[ScopeLevelCount]

Typ: ULONG[ScopeLevelCount]

Ein Array, das den Zonenteil der Bereichs-IDs angibt.

SitePrefixLength

Typ: ULONG

Die Standortpräfixlänge in Bits der IP-Schnittstellenadresse. Die Länge des Standortpräfixes oder des Netzwerkteils der IP-Schnittstellenadresse in Bits. Bei einer IPv4-Adresse ist jeder Wert größer als 32 ein unzulässiger Wert. Bei einer IPv6-Adresse ist jeder Wert größer als 128 ein unzulässiger Wert. Ein Wert von 255 wird häufig verwendet, um einen ungültigen Wert darzustellen.

Metric

Typ: ULONG

Die Schnittstellenmetrik. Beachten Sie, dass die tatsächliche Routenmetrik, die zum Berechnen der Routeneinstellung verwendet wird, die Summe des Routingmetrikenoffsets ist, der im Metrikelement der MIB_IPFORWARD_ROW2-Struktur und der in diesem Element angegebenen Schnittstellenmetrik angegeben ist.

NlMtu

Typ: ULONG

Die MTU-Größe auf Netzwerkebene in Bytes.

Connected

Typ: BOOLEAN

Ein Wert, der angibt, ob die Schnittstelle mit einem Netzwerkzugriffspunkt verbunden ist.

SupportsWakeUpPatterns

Typ: BOOLEAN

Ein Wert, der angibt, ob die Netzwerkschnittstelle Wake on LAN unterstützt.

SupportsNeighborDiscovery

Typ: BOOLEAN

Ein Wert, der angibt, ob die IP-Schnittstelle die Nachbarermittlung unterstützt.

SupportsRouterDiscovery

Typ: BOOLEAN

Ein Wert, der angibt, ob die IP-Schnittstelle die Routerermittlung unterstützt.

ReachableTime

Typ: ULONG

Das erreichbare Timeout in Millisekunden.

TransmitOffload

Typ: NL_INTERFACE_OFFLOAD_ROD

Eine Reihe von Flags, die die Übertragungsauslagerungsfunktionen für die IP-Schnittstelle angeben. Die NL_INTERFACE_OFFLOAD_ROD-Struktur ist in der Headerdatei Nldef.h definiert.

ReceiveOffload

Typ: NL_INTERFACE_OFFLOAD_ROD

Eine Reihe von Flags, die die Empfangsauslagerungsfunktionen für die IP-Schnittstelle angeben. Die NL_INTERFACE_OFFLOAD_ROD-Struktur ist in der Headerdatei Nldef.h definiert.

DisableDefaultRoutes

Typ: BOOLEAN

Ein Wert, der angibt, ob die Verwendung der Standardroute für die Schnittstelle deaktiviert werden soll. Dieses Element kann von VPN-Clients verwendet werden, um das Split Tunneling einzuschränken.

Hinweise

Die MIB_IPINTERFACE_ROW-Struktur wird unter Windows Vista und höher definiert.

Die Member Family, InterfaceLuid und InterfaceIndex identifizieren einen MIB_IPINTERFACE_ROW Eintrag eindeutig.

Wenn ein Unicastpaket auf einem Host eintrifft, muss die IP-Adresse ermitteln, ob das Paket lokal bestimmt ist (sein Ziel entspricht einer Adresse, die einer Schnittstelle des Hosts zugewiesen ist). IP-Implementierungen, die einem schwachen Hostmodell folgen, akzeptieren alle lokal bestimmten Pakete, unabhängig von der Schnittstelle, über die das Paket empfangen wurde. IP-Implementierungen, die dem starken Hostmodell folgen, akzeptieren nur lokal bestimmte Pakete, wenn die Zieladresse im Paket mit einer Adresse übereinstimmt, die der Schnittstelle zugewiesen ist, auf der das Paket empfangen wurde. Das schwache Hostmodell bietet eine bessere Netzwerkkonnektivität. Dies macht Hosts jedoch auch anfällig für Angriffe auf mehrere Heimnetzwerke.

Die aktuelle IPv4-Implementierung in Windows Server 2003 und Windows XP verwendet das schwache Hostmodell. In diesem Fall werden alle Unicastpakete über die Schnittstelle mit der niedrigsten Metrik für eine Route gesendet.

Der TCP/IP-Stapel unter Windows Vista und höher unterstützt das starke Hostmodell sowohl für IPv4 als auch für IPv6 und ist standardmäßig für die Verwendung des starken Hostmodus konfiguriert (die Member WeakHostReceive und WeakHostSend sind auf FALSE festgelegt). Mit dem starken Hostmodus kann ein Unicastpaket an eine bestimmte Schnittstelle gesendet werden, die nicht über die niedrigste Metrik für eine Route verfügt, indem der Socket an die Quelladresse der spezifischen Schnittstelle gebunden wird.

Der TCP/IP-Stapel unter Windows Vista und höher kann für die Verwendung eines schwachen Hostmodells konfiguriert werden.

Eine Metrik ist ein Wert, der einer IP-Route für eine bestimmte Netzwerkschnittstelle zugewiesen ist, die die Kosten identifiziert, die mit der Verwendung dieser Route verbunden sind. Die Metrik kann beispielsweise in Bezug auf Linkgeschwindigkeit, Hopanzahl oder Zeitverzögerung geschätzt werden. Die automatische Metrik ist ein Feature unter Windows XP und höher, das automatisch die Metrik für die lokalen Routen konfiguriert, die auf der Verbindungsgeschwindigkeit basieren. Das Feature für automatische Metriken ist unter Windows XP und höher standardmäßig aktiviert ( UseAutomaticMetric ist auf TRUE festgelegt). Sie kann auch manuell konfiguriert werden, um einer IP-Route eine bestimmte Metrik zuzuweisen.

Das Feature für automatische Metriken kann nützlich sein, wenn die Routingtabelle mehrere Routen für dasselbe Ziel enthält. Beispielsweise verfügt ein Computer mit einer 10-Megabit-Netzwerkschnittstelle und einer 100-Megabit-Netzwerkschnittstelle über ein Standardgateway, das auf beiden Netzwerkschnittstellen konfiguriert ist. Wenn UseAutomaticMetricTRUE ist, kann dieses Feature den gesamten Datenverkehr erzwingen, der für das Internet bestimmt ist, z. B. die schnellste verfügbare Netzwerkschnittstelle zu verwenden.

Die im Metrikelement "Metrik " angegebene Schnittstellenmetrik stellt nur die Metrik für die Schnittstelle dar. Die vollständige Routingmetrik ist eine Kombination dieser Schnittstellenmetrik, die dem Routingmetrikoff hinzugefügt wird, der im Metrikelement der MIB_IPFORWARD_ROW2 Struktur eines Routeneintrags angegeben ist, der für diese Schnittstelle angegeben ist.

Ein nicht privilegierter gleichzeitiger Zugriff auf mehrere Netzwerke mit unterschiedlichen Sicherheitsanforderungen schafft eine Sicherheitslücke und ermöglicht es einer nicht privilegierten Anwendung, Daten versehentlich zwischen den beiden Netzwerken weiterzuspeichern. Ein typisches Beispiel ist der gleichzeitige Zugriff auf ein virtuelles privates Netzwerk (VPN) und das Internet. Windows Server 2003 und Windows XP verwenden ein schwaches Hostmodell, bei dem RAS einen solchen gleichzeitigen Zugriff verhindert, indem die Routenmetrik aller Standardrouten über andere Schnittstellen erhöht wird. Daher wird der gesamte Datenverkehr über die VPN-Schnittstelle weitergeleitet, was die andere Netzwerkkonnektivität beeinträchtigt.

Unter Windows Vista und höher wird standardmäßig ein starkes Hostmodell verwendet. Wenn eine Quell-IP-Adresse in der Routensuche mithilfe von GetBestRoute2 oder GetBestRoute angegeben wird, ist die Routensuche auf die Schnittstelle der Quell-IP-Adresse beschränkt. Die Änderung der Routenmetrik durch RAS hat keine Auswirkungen, da die Liste der potenziellen Routen nicht einmal die Route für die VPN-Schnittstelle enthält, wodurch Datenverkehr ins Internet zugelassen wird. Das DisableDefaultRoutes-Element der MIB_IPINTERFACE_ROW-Struktur kann verwendet werden, um die Standardroute für eine Schnittstelle zu deaktivieren. Dieser Member kann als Sicherheitsmaßnahme von VPN-Clients verwendet werden, um das Split Tunneling einzuschränken, wenn das Split Tunneling vom VPN-Client nicht erforderlich ist. Ein VPN-Client kann die SetIpInterfaceEntry-Funktion aufrufen, um den DisableDefaultRoutes-Member bei Bedarf auf TRUE festzulegen. Ein VPN-Client kann den aktuellen Zustand des DisableDefaultRoutes-Members abfragen, indem er die GetIpInterfaceEntry-Funktion aufruft .

Beachten Sie, dass die Headerdatei Netioapi.h automatisch in der Headerdatei Iphlpapi.h enthalten ist. Die Netioapi.h-Headerdatei sollte nie direkt verwendet werden.

Beispiele

Ein Beispiel, das die MIB_IPINTERFACE_TABLE-Struktur abruft und dann einige Member der MIB_IPINTERFACE_ROW Struktureinträge in dieser Tabelle ausgibt, finden Sie in der GetIpInterfaceTable-Funktion .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile netioapi.h (include Iphlpapi.h)

Weitere Informationen

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry