Freigeben über


GetIpInterfaceTable-Funktion

Die GetIpInterfaceTable-Funktion ruft die IP-Schnittstelleneinträge auf einem lokalen Computer ab.

Syntax

NETIOAPI_API GetIpInterfaceTable(
  _In_  ADDRESS_FAMILY         Family,
  _Out_ PMIB_IPINTERFACE_TABLE *Table
);

Parameter

  • Familie [in]
    Die Adressfamilie der abzurufenden IP-Schnittstellen.

    Mögliche Werte für die Adressfamilie sind in der Headerdatei Winsock2.h 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 Sie beide Konstanten verwenden können.

    Unter Windows Vista und höheren Versionen der Windows-Betriebssysteme werden mögliche Werte für den Family-Parameter in der Ws2def.h-Headerdatei definiert. Beachten Sie, dass die Ws2def.h-Headerdatei automatisch in Netioapi.h enthalten ist und Sie Ws2def.h niemals direkt verwenden sollten.

    Die folgenden Werte werden derzeit für die Adressfamilie unterstützt:

    • AF_INET
      Die IPv4-Adressfamilie.

    • AF_INET6
      Die IPv6-Adressfamilie.

    • AF_UNSPEC
      Die Adressfamilie ist nicht angegeben. Wenn dieser Wert angegeben wird, gibt die GetIpInterfaceTable-Funktion die IP-Schnittstellentabelle zurück, die sowohl IPv4- als auch IPv6-Einträge enthält.

  • Tabelle [out]
    Ein Zeiger auf einen Puffer, der die Tabelle der IP-Schnittstelleneinträge in einer MIB_IPINTERFACE_TABLE-Struktur empfängt.

Rückgabewert

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

Wenn die Funktion fehlschlägt, gibt GetIpInterfaceTable 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 Table-Parameter übergeben oder der Family-Parameter nicht als AF_INET, AF_INET6 oder AF_UNSPEC angegeben wurde.

STATUS_NOT_ENOUGH_MEMORY

Für den Vorgang stehen nicht genügend Arbeitsspeicherressourcen zur Verfügung.

STATUS_NOT_FOUND

Es wurden keine IP-Schnittstelleneinträge gefunden, wie im Family-Parameter angegeben.

STATUS_NOT_SUPPORTED

Die Funktion wird nicht unterstützt. Dieser Fehler wird zurückgegeben, wenn der IP-Transport, der im Parameter Address angegeben ist, auf dem lokalen Computer nicht konfiguriert ist. Dieser Fehler wird auch bei Versionen von Windows zurückgegeben, in denen diese Funktion nicht unterstützt wird.

Andere

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

Bemerkungen

Die GetIpInterfaceTable-Funktion listet die IP-Schnittstellen auf einem lokalen Computer auf und gibt diese Informationen in einer MIB_IPINTERFACE_TABLE-Struktur zurück.

GetIpInterfaceTable gibt IP-Schnittstelleneinträge in einer MIB_IPINTERFACE_TABLE Struktur im Puffer zurück, auf den der Table-Parameter verweist. Die MIB_IPINTERFACE_TABLE-Struktur enthält eine IP-Schnittstelleneintragsanzahl und ein Array von MIB_IPINTERFACE_ROW Strukturen für jeden IP-Schnittstelleneintrag. Wenn diese zurückgegebenen Strukturen nicht mehr erforderlich sind, sollte Ihr Treiber den Speicher durch Aufrufen der FreeMibTable-Funktion freigeben.

Ihr Treiber muss den Family-Parameter initialisieren, um entweder AF_INET oder AF_INET6.

Beachten Sie, dass die zurückgegebene MIB_IPINTERFACE_TABLE Struktur, auf die der Table-Parameter verweist, möglicherweise eine Auffüllung für die Ausrichtung zwischen dem NumEntries-Member und dem ersten MIB_IPINTERFACE_ROW Arrayeintrag im Table-Member der MIB_IPINTERFACE_TABLE-Struktur enthalten kann. Zwischen den MIB_IPINTERFACE_ROW Arrayeinträgen kann auch ein Abstand für die Ausrichtung vorhanden sein. Bei jedem Zugriff auf einen MIB_IPINTERFACE_ROW Arrayeintrag sollte davon ausgegangen werden, dass eine Auffüllung vorhanden ist.

Anforderungen

Zielplattform

Universell

Version

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

Header

Netioapi.h (einschließlich Netioapi.h)

Bibliothek

Netio.lib

IRQL

< DISPATCH_LEVEL

Weitere Informationen

FreeMibTable

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

MIB_IPNET_ROW2

MIB_IPNET_TABLE2