CreateIpForwardEntry2-Funktion
Die CreateIpForwardEntry2--Funktion erstellt einen neuen IP-Routeneintrag auf einem lokalen Computer.
Syntax
NETIOAPI_API CreateIpForwardEntry2(
_In_ const MIB_IPFORWARD_ROW2 *Row
);
Parameter
-
Zeile [in]
Ein Zeiger auf einen MIB_IPFORWARD_ROW2 Struktureintrag für einen IP-Routeneintrag.
Rückgabewert
CreateIpForwardEntry2 gibt STATUS_SUCCESS zurück, wenn die Funktion erfolgreich ist.
Wenn die Funktion fehlschlägt, gibt CreateIpForwardEntry2 einen der folgenden Fehlercodes zurück:
Rückgabecode | Beschreibung |
---|---|
STATUS_INVALID_PARAMETER | An die Funktion wurde ein ungültiger Parameter übergeben. Dieser Fehler wird zurückgegeben, wenn eine der folgenden Situationen auftritt:
Dieser Fehler wird zurückgegeben, wenn ein NULL- Zeiger im parameter Row übergeben wird, das DestinationPrefix Member der MIB_IPFORWARD_ROW2 Struktur, auf die der parameter Row verweist, nicht angegeben wurde, das NextHop Member der MIB_IPFORWARD_ROW2 Struktur nicht angegeben wurde, oder sowohl InterfaceLuid als auch InterfaceIndex Member der MIB_IPFORWARD_ROW2 Struktur wurden nicht angegeben. Dieser Fehler wird auch zurückgegeben, wenn das PreferredLifetime-Element, das in der MIB_IPFORWARD_ROW2-Struktur angegeben ist, größer als das ValidLifetime Member ist, oder wenn die SitePrefixLength- in der MIB_IPFORWARD_ROW2-Struktur größer als die Präfixlänge ist, die im DestinationPrefix Member angegeben ist. |
STATUS_NOT_FOUND | Die angegebene Schnittstelle konnte nicht gefunden werden. Dieser Fehler wird zurückgegeben, wenn die Funktion die Netzwerkschnittstelle nicht finden kann, die durch die InterfaceLuid oder InterfaceIndex Member der MIB_IPNET_ROW2 Struktur angegeben wird, auf die der Row Parameter verweist. |
STATUS_NOT_SUPPORTED | Die Anforderung wird nicht unterstützt. Dieser Fehler wird zurückgegeben, wenn die angegebene Schnittstelle Keine Routen unterstützt. Dieser Fehler wird zurückgegeben, wenn sich kein IPv4-Stapel auf dem lokalen Computer befindet und AF_INET in der Adressfamilie im DestinationPrefix Mitglied der MIB_IPFORWARD_ROW2 Struktur angegeben wurde, auf die der Row Parameter verweist, oder wenn sich kein IPv6-Stapel auf dem lokalen Computer befindet und AF_INET6 für die Adressfamilie im DestinationPrefix Member angegeben wurde. |
ERROR_OBJECT_ALREADY_EXISTS | Das Objekt ist bereits vorhanden. Dieser Fehler wird zurückgegeben, wenn das DestinationPrefix Member der MIB_IPFORWARD_ROW2 Struktur, auf die der Row Parameter verweist, ein Duplikat eines vorhandenen IP-Routeneintrags auf der Schnittstelle ist, die durch das InterfaceLuid oder InterfaceIndex Member der MIB_IPFORWARD_ROW2 Struktur angegeben wird. |
Andere | Verwenden Sie die FormatMessage--Funktion, um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen. |
Bemerkungen
Die CreateIpForwardEntry2--Funktion wird verwendet, um einen neuen IP-Adresseintrag des Nachbarn auf einem lokalen Computer hinzuzufügen. Verwenden Sie die InitializeIpForwardEntry--Funktion, um die Elemente eines MIB_IPFORWARD_ROW2 Struktureintrags mit Standardwerten zu initialisieren. Ein Treiber kann dann die Member im MIB_IPFORWARD_ROW2 Eintrag ändern, den er ändern möchte, und dann CreateIpForwardEntry2aufrufen.
Der Treiber muss die folgenden Elemente der MIB_IPFORWARD_ROW2 Struktur initialisieren, auf die der parameter Row verweist:
Legen Sie DestinationPrefix- auf ein gültiges IPv4- oder IPv6-Adresspräfix fest.
Legen Sie NextHop- auf eine gültige IPv4- oder IPv6-Adresse und -Familie fest.
Legen Sie InterfaceLuid oder InterfaceIndex- auf die LUID oder den Indexwert der Schnittstelle fest.
Die InterfaceLuid- und InterfaceIndex- Member werden in der zuvor aufgeführten Reihenfolge verwendet. Wenn also das InterfaceLuid- angegeben ist, wird dieses Element verwendet, um die Schnittstelle zu bestimmen, um den IP-Routeneintrag hinzuzufügen. Wenn kein Wert für das InterfaceLuid Member festgelegt wurde (der Wert dieses Elements wurde auf Null festgelegt), wird das InterfaceIndex Member als Nächstes verwendet, um die Schnittstelle zu bestimmen.
Der routingmetrische Offset, der im Metric Member der MIB_IPFORWARD_ROW2 Struktur angegeben ist, auf die der Row Parameter verweist, um nur einen Teil der vollständigen Routenmetrik darzustellen. Die vollständige Metrik ist eine Kombination aus diesem Routingmetriksatz, der der Schnittstellenmetrik hinzugefügt wird, die im Metric Member der MIB_IPINTERFACE_ROW Struktur der zugeordneten Schnittstelle angegeben ist. Ein Treiber kann die Schnittstellenmetrik abrufen, indem die GetIpInterfaceEntry--Funktion aufgerufen wird.
Die Elemente Age und Origin der MIB_IPFORWARD_ROW2 Struktur, auf die der parameter Row verweist, werden ignoriert, wenn die CreateIpForwardEntry2--Funktion aufgerufen wird. Diese Elemente werden vom Netzwerkstapel festgelegt und können nicht mithilfe der CreateIpForwardEntry2--Funktion festgelegt werden.
Die CreateIpForwardEntry2--Funktion schlägt fehl, wenn die DestinationPrefix- und NextHop-Member der MIB_IPFORWARD_ROW2 Struktur, auf die der Row-Parameter verweist, ein Duplikat eines vorhandenen IP-Routeneintrags auf der Schnittstelle sind, die in der InterfaceLuid-- oder InterfaceIndex--Member angegeben ist.
Anforderungen
Zielplattform |
universelle |
Version |
Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Kopfball |
Netioapi.h (include Netioapi.h) |
Bibliothek |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |