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 |