Freigeben über


GetIpForwardTable2-Funktion

Die GetIpForwardTable2-Funktion ruft die IP-Routeneinträge auf einem lokalen Computer ab.

Syntax

NETIOAPI_API GetIpForwardTable2(
  _In_  ADDRESS_FAMILY        Family,
  _Out_ PMIB_IPFORWARD_TABLE2 *Table
);

Parameter

  • Familie [in]
    Die abzurufende Adressfamilie.

    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. Wenn dieser Wert angegeben wird, gibt diese Funktion die IP-Routingtabelle zurück, die nur IPv4-Einträge enthält.

    • AF_INET6
      Die IPv6-Adressfamilie. Wenn dieser Wert angegeben wird, gibt diese Funktion die IP-Routingtabelle 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 IP-Routingtabelle zurück, die sowohl IPv4- als auch IPv6-Einträge enthält.

  • Tabelle [out]
    Ein Zeiger auf eine MIB_IPFORWARD_TABLE2-Struktur , die eine Tabelle mit IP-Routeneinträgen auf dem lokalen Computer enthält.

Rückgabewert

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

Wenn die Funktion fehlschlägt, gibt GetIpForwardTable2 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-Routeneinträ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 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 GetIpForwardTable2-Funktion listet die IP-Routeneinträge auf einem lokalen Computer auf und gibt diese Informationen in einer MIB_IPFORWARD_TABLE2 Struktur zurück.

Die IP-Routeneinträge werden in einer MIB_IPFORWARD_TABLE2 Struktur im Puffer zurückgegeben, auf den der Table-Parameter verweist. Die MIB_IPFORWARD_TABLE2-Struktur enthält eine IP-Routeneintragsanzahl und ein Array von MIB_IPFORWARD_ROW2 Strukturen für jeden IP-Routeneintrag. Wenn diese zurückgegebenen Strukturen nicht mehr erforderlich sind, sollte Ihr Treiber den Speicher durch Aufrufen von FreeMibTable freigeben.

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

Beachten Sie, dass die zurückgegebene MIB_IPFORWARD_TABLE2-Struktur, auf die der Table-Parameter verweist, eine Auffüllung für die Ausrichtung zwischen dem NumEntries-Element und dem ersten MIB_IPFORWARD_ROW2 Arrayeintrag im Table-Element der MIB_IPFORWARD_TABLE2-Struktur enthalten kann. Zwischen den MIB_IPFORWARD_ROW2 Arrayeinträgen kann auch ein Abstand für die Ausrichtung vorhanden sein. Bei jedem Zugriff auf einen MIB_IPFORWARD_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 (einschließlich Netioapi.h)

Bibliothek

Netio.lib

IRQL

< DISPATCH_LEVEL

Weitere Informationen

CreateIpForwardEntry2

DeleteIpForwardEntry2

FreeMibTable

GetBestRoute2

GetIpForwardEntry2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2