Freigeben über


GetIpInterfaceEntry-Funktion

Die GetIpInterfaceEntry-Funktion ruft IP-Informationen für die angegebene Schnittstelle auf einem lokalen Computer ab.

Syntax

NETIOAPI_API GetIpInterfaceEntry(
  _Inout_ PMIB_IPINTERFACE_ROW Row
);

Parameter

  • Zeile [ein, ausgehend]
    Ein Zeiger auf eine MIB_IPINTERFACE_ROW Struktur, die bei erfolgreicher Rückgabe Informationen für eine Schnittstelle auf dem lokalen Computer empfängt. Bei der Eingabe muss Ihr Treiber das InterfaceLuid-Element oder das InterfaceIndex-Element des MIB_IPINTERFACE_ROW auf die Schnittstelle festlegen, für die Informationen abgerufen werden sollen.

Rückgabewert

GetIpInterfaceEntry gibt STATUS_SUCCESS zurück, wenn die Funktion erfolgreich ist.

Wenn die Funktion fehlschlägt, gibt GetIpInterfaceEntry einen der folgenden Fehlercodes zurück:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER

Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn ein NULL-Zeiger im Row-Parameter übergeben wird, das Family-Element der MIB_IPINTERFACE_ROW-Struktur, auf die der Row-Parameter verweist, nicht als AF_INET oder AF_INET6 angegeben wurde oder die Member InterfaceLuid und InterfaceIndex der MIB_IPINTERFACE_ROW-Struktur nicht angegeben wurden.

STATUS_NOT_FOUND

Die angegebene Schnittstelle konnte nicht gefunden werden. Dieser Fehler wird zurückgegeben, wenn die Funktion die Netzwerkschnittstelle nicht finden kann, die vom InterfaceLuid - oder InterfaceIndex-Member der MIB_IPINTERFACE_ROW Struktur angegeben wird, auf die der Row-Parameter verweist.

Andere

Verwenden Sie die FormatMessage-Funktion , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Bemerkungen

Bei der Eingabe muss der Treiber die folgenden Member der MIB_IPINTERFACE_ROW-Struktur initialisieren, auf die der Row-Parameter verweist.

  • Familie
    Legen Sie entweder auf AF_INET oder AF_INET6 fest.

  • InterfaceLuid oder InterfaceIndex
    Diese Member werden in der zuvor aufgeführten Reihenfolge verwendet. Wenn Also InterfaceLuid angegeben ist, wird dieser Member verwendet, um die Schnittstelle zu bestimmen. Wenn kein Wert für das InterfaceLuid-Element festgelegt wurde (der Wert dieses Members wurde auf 0 festgelegt), wird als Nächstes das InterfaceIndex-Element verwendet, um die Schnittstelle zu bestimmen.

Bei der Ausgabe füllt GetIpInterfaceEntry die verbleibenden Member der MIB_IPINTERFACE_ROW-Struktur aus, auf die der Row-Parameter verweist.

Ihr Treiber muss die InitializeIpInterfaceEntry-Funktion verwenden, um die Felder eines MIB_IPINTERFACE_ROW Struktureintrags mit Standardwerten zu initialisieren. Ein Treiber kann dann die Felder im MIB_IPINTERFACE_ROW Eintrag ändern, den er ändern möchte, und dann die SetIpInterfaceEntry-Funktion aufrufen.

Ein nicht privilegierter gleichzeitiger Zugriff auf mehrere Netzwerke mit unterschiedlichen Sicherheitsanforderungen führt zu einer Sicherheitslücke und ermöglicht es einem nicht privilegierten Treiber, versehentlich Daten zwischen den beiden Netzwerken zu weiterleiten. Ein typisches Beispiel ist der gleichzeitige Zugriff auf ein virtuelles privates Netzwerk (VPN) und das Internet. Die Betriebssysteme Windows Server 2003 und Windows XP verwenden ein schwaches Hostmodell, bei dem ras (Remote Access Service) 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, wodurch andere Netzwerkkonnektivitäten unterbrochen werden.

Unter Windows Vista und höheren Versionen der Windows-Betriebssysteme wird standardmäßig ein starkes Hostmodell verwendet. Wenn eine Quell-IP-Adresse in der Routensuche mithilfe der GetBestRoute2-Funktion angegeben wird, ist die Routensuche auf die Schnittstelle der Quell-IP-Adresse beschränkt. Die Änderung der Routenmetrik durch RAS hat keine Auswirkung, da die Liste der potenziellen Routen nicht einmal die Route für die VPN-Schnittstelle enthält, die Datenverkehr in das Internet ermöglicht. Ihr Treiber kann das DisableDefaultRoutes-Element des MIB_IPINTERFACE_ROW verwenden, um die Standardroute auf einer Schnittstelle zu deaktivieren. VPN-Clients können diesen Member als Sicherheitsmaßnahme verwenden, um geteiltes Tunneling einzuschränken, wenn vom VPN-Client kein geteiltes Tunneling erforderlich ist. Ein VPN-Client kann die SetIpInterfaceEntry-Funktion aufrufen, um das DisableDefaultRoutes-Element bei Bedarf auf TRUE festzulegen. Ein VPN-Client kann den aktuellen Status des DisableDefaultRoutes-Elements abfragen, indem er die GetIpInterfaceEntry-Funktion aufruft .

Anforderungen

Zielplattform

Universell

Version

Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.

Header

Netioapi.h (netioapi.h einschließen)

Bibliothek

Netio.lib

IRQL

< DISPATCH_LEVEL

Weitere Informationen

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceTable

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

SetIpInterfaceEntry