GetIpNetTable2-Funktion
Die GetIpNetTable2-Funktion ruft die IP-Nachbartabelle auf einem lokalen Computer ab.
Syntax
NETIOAPI_API GetIpNetTable2(
_In_ ADDRESS_FAMILY Family,
_Out_ PMIB_IPNET_TABLE2 *Table
);
Parameter
Familie [in]
Die abzurufende 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 Sie beide Konstanten verwenden können.
Unter Windows Vista und höheren Versionen der Windows-Betriebssysteme sind 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. Wenn dieser Wert angegeben wird, gibt diese Funktion die Tabelle der benachbarten IP-Adresse zurück, die nur IPv4-Einträge enthält.AF_INET6
Die IPv6-Adressfamilie. Wenn dieser Wert angegeben wird, gibt diese Funktion die Tabelle der benachbarten IP-Adresse zurück, die nur IPv6-Einträge enthält.AF_UNSPEC
Die Adressfamilie ist nicht angegeben. Wenn dieser Wert angegeben wird, gibt diese Funktion die Tabelle der benachbarten IP-Adresse zurück, die sowohl IPv4- als auch IPv6-Einträge enthält.
Tabelle [out]
Ein Zeiger auf eine MIB_IPNET_TABLE2-Struktur , die eine Tabelle mit benachbarten IP-Adresseinträgen auf dem lokalen Computer enthält.
Rückgabewert
GetIpNetTable2 gibt STATUS_SUCCESS zurück, wenn die Funktion erfolgreich ist.
Wenn die Funktion fehlschlägt, gibt GetIpNetTable2 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 im Table-Parameter ein NULL-Zeiger übergeben wird oder der Family-Parameter nicht als AF_INET, AF_INET6 oder AF_UNSPEC angegeben wurde. |
STATUS_NOT_ENOUGH_MEMORY | Es sind unzureichende Arbeitsspeicherressourcen verfügbar, um den Vorgang abzuschließen. |
STATUS_NOT_FOUND | Es wurden keine benachbarten IP-Adresseinträge gefunden, wie im Family-Parameter angegeben. |
STATUS_NOT_SUPPORTED | Die Anforderung wird nicht unterstützt. Dieser Fehler wird zurückgegeben, wenn sich kein IPv4-Stapel auf dem lokalen Computer befindet und AF_INET im Family-Parameter angegeben wurde, oder wenn sich kein IPv6-Stapel auf dem lokalen Computer befindet und AF_INET6 im Family-Parameter angegeben wurde. Dieser Fehler wird auch für Versionen von Windows zurückgegeben, bei 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 GetIpNetTable2-Funktion listet die benachbarten IP-Adressen auf einem lokalen Computer auf und gibt diese Informationen in einer MIB_IPNET_TABLE2-Struktur zurück.
GetIpNetTable2 gibt die Benachbarten IP-Adresseinträge in einer MIB_IPNET_TABLE2-Struktur im Puffer zurück, auf den der Table-Parameter verweist. Die MIB_IPNET_TABLE2-Struktur enthält die Anzahl der Einträge für benachbarte IP-Adressen und ein Array von MIB_IPNET_ROW2 Strukturen für jeden Nachbar-IP-Adresseintrag. Wenn diese zurückgegebenen Strukturen nicht mehr benötigt werden, sollte Ihr Treiber den Arbeitsspeicher durch Aufrufen von FreeMibTable freigeben.
Der Treiber muss den Family-Parameter entweder AF_INET, AF_INET6 oder AF_UNSPEC initialisieren.
Beachten Sie, dass die zurückgegebene MIB_IPNET_TABLE2 Struktur, auf die der Table-Parameter verweist, möglicherweise eine Auffüllung für die Ausrichtung zwischen dem NumEntries-Element und dem ersten MIB_IPNET_ROW2 Arrayeintrag im Table-Element der MIB_IPNET_TABLE2-Struktur enthalten kann. Zwischen den MIB_IPNET_ROW2 Arrayeinträgen kann auch ein Abstand für die Ausrichtung vorhanden sein. Bei jedem Zugriff auf einen MIB_IPNET_ROW2 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 (netioapi.h einschließen) |
Bibliothek |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |