GetBestRoute2-Funktion (netioapi.h)

Die GetBestRoute2-Funktion ruft den IP-Routeneintrag auf dem lokalen Computer ab, um die beste Route zur angegebenen Ziel-IP-Adresse zu erhalten.

Syntax

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetBestRoute2(
  [in, optional] NET_LUID            *InterfaceLuid,
  [in]           NET_IFINDEX         InterfaceIndex,
  [in]           const SOCKADDR_INET *SourceAddress,
  [in]           const SOCKADDR_INET *DestinationAddress,
  [in]           ULONG               AddressSortOptions,
  [out]          PMIB_IPFORWARD_ROW2 BestRoute,
  [out]          SOCKADDR_INET       *BestSourceAddress
);

Parameter

[in, optional] InterfaceLuid

Der lokal eindeutige Bezeichner (LUID), um die Netzwerkschnittstelle anzugeben, die einem IP-Routeneintrag zugeordnet ist.

[in] InterfaceIndex

Der lokale Indexwert zum Angeben der Netzwerkschnittstelle, die einem IP-Routeneintrag zugeordnet ist. Dieser Indexwert kann sich ändern, wenn ein Netzwerkadapter deaktiviert und dann aktiviert wird, oder unter anderen Umständen, und sollte nicht als persistent betrachtet werden.

[in] SourceAddress

Die Quell-IP-Adresse Dieser Parameter kann weggelassen und als NULL-Zeiger übergeben werden.

[in] DestinationAddress

Die Ziel-IP-Adresse

[in] AddressSortOptions

Eine Reihe von Optionen, die sich auf die Sortierung von IP-Adressen auswirken. Dieser Parameter wird derzeit nicht verwendet.

[out] BestRoute

Ein Zeiger auf den MIB_IPFORWARD_ROW2 für die beste Route von der Quell-IP-Adresse zur Ziel-IP-Adresse.

[out] BestSourceAddress

Ein Zeiger auf die beste Quell-IP-Adresse.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Rückgabecode Beschreibung
ERROR_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn ein NULL-Zeiger im Parameter DestinationAddress, BestSourceAddress oder BestRoute übergeben wird. Dieser Fehler wird auch zurückgegeben, wenn der Parameter DestinationAddress keine IPv4- oder IPv6-Adresse und -Familie angibt.
ERROR_FILE_NOT_FOUND
Die angegebene Schnittstelle konnte nicht gefunden werden. Dieser Fehler wird zurückgegeben, wenn die durch den Parameter InterfaceLuid oder InterfaceIndex angegebene Netzwerkschnittstelle nicht gefunden werden konnte.
ERROR_NOT_SUPPORTED
Die Anforderung wird nicht unterstützt. Dieser Fehler wird zurückgegeben, wenn sich auf dem lokalen Computer kein IPv4-Stapel befindet und im Parameter DestinationAddress eine IPv4-Adresse und -Familie angegeben wurde. Dieser Fehler wird auch zurückgegeben, wenn sich auf dem lokalen Computer kein IPv6-Stapel befindet und im Parameter DestinationAddress eine IPv6-Adresse und -Familie angegeben wurde.
Andere
Verwenden Sie FormatMessage , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die GetBestRoute2-Funktion ist unter Windows Vista und höher definiert.

Die GetBestRoute2-Funktion wird verwendet, um einen MIB_IPFORWARD_ROW2 Struktureintrag für die beste Route von einer Quell-IP-Adresse zu einer Ziel-IP-Adresse abzurufen.

Bei der Eingabe muss der Parameter DestinationAddress für eine gültige IPv4- oder IPv6-Adresse und -Familie initialisiert werden. Bei der Eingabe kann der SourceAddress-Parameter für die bevorzugte IPv4- oder IPv6-Adresse und -Familie initialisiert werden. Darüber hinaus muss mindestens einer der folgenden Parameter initialisiert werden: InterfaceLuid oder InterfaceIndex.

Die Parameter werden in der oben aufgeführten Reihenfolge verwendet. Wenn also interfaceLuid angegeben wird, wird dieses Element verwendet, um die Schnittstelle zu bestimmen. Wenn kein Wert für das InterfaceLuid-Element festgelegt wurde (die Werte dieses Members wurden auf Null festgelegt), wird das InterfaceIndex-Element als nächstes verwendet, um die Schnittstelle zu bestimmen.

Bei der Ausgabe, wenn der Aufruf erfolgreich ist, ruft GetBestRoute2 die Struktur für die beste Route von der Quell-IP-Adresse der Ziel-IP-Adresse ab und MIB_IPFORWARD_ROW2 Struktur für die beste Route.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile netioapi.h (include Iphlpapi.h)
Bibliothek Iphlpapi.lib
DLL Iphlpapi.dll

Weitere Informationen

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2