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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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 |