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 |