Freigeben über


GetBestRoute2-Funktion

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

Syntax

NETIOAPI_API GetBestRoute2(
  _In_opt_       NET_LUID            *InterfaceLuid,
  _In_           NET_IFINDEX         InterfaceIndex,
  _In_opt_ const SOCKADDR_INET       *SourceAddress,
  _In_     const SOCKADDR_INET       *DestinationAddress,
  _In_           ULONG               AddressSortOptions,
  _Out_          PMIB_IPFORWARD_ROW2 BestRoute,
  _Out_          SOCKADDR_INET       *BestSourceAddress
);

Parameter

  • InterfaceLuid- [in, optional]
    Die lokal eindeutige ID (LUID), um die Netzwerkschnittstelle anzugeben, die einem IP-Routeneintrag zugeordnet ist.

  • InterfaceIndex- [in]
    Der lokale Indexwert, um die Netzwerkschnittstelle anzugeben, die einem IP-Routeneintrag zugeordnet ist. Dieser Indexwert kann sich ändern, wenn ein Netzwerkadapter deaktiviert und dann aktiviert ist, oder unter anderen Umständen, sodass dieser Wert nicht dauerhaft ist.

  • SourceAddress- [in, optional]
    Die QUELL-IP-Adresse. Der Treiber kann diesen Parameter weglassen und einen NULL- Zeiger übergeben.

  • DestinationAddress- [in]
    Die Ziel-IP-Adresse.

  • AddressSortOptions- [in]
    Eine Reihe von Optionen, die sich darauf auswirken, wie IP-Adressen sortiert werden. Dieser Parameter wird derzeit nicht verwendet.

  • BestRoute [out]
    Ein Zeiger auf die MIB_IPFORWARD_ROW2 Struktur, um die beste Route von der Quell-IP-Adresse zur Ziel-IP-Adresse zu erhalten.

  • BestSourceAddress [out]
    Ein Zeiger auf die beste IP-Adresse der Quelle.

Rückgabewert

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

Wenn die Funktion fehlschlägt, gibt GetBestRoute2- 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 ein NULL- Zeiger in den Parametern DestinationAddress, BestSourceAddressoder BestRoute übergeben wird. Dieser Fehler wird auch zurückgegeben, wenn sowohl InterfaceLuid als auch InterfaceIndex Parameter nicht angegeben wurden. Dieser Fehler wird auch zurückgegeben, wenn der parameter DestinationAddress keine IPv4- oder IPv6-Adresse und -Familie angibt.

STATUS_NOT_FOUND

Die angegebene Schnittstelle konnte nicht gefunden werden. Dieser Fehler wird zurückgegeben, wenn die Netzwerkschnittstelle, die die InterfaceLuid oder InterfaceIndex- parameter angibt, nicht gefunden werden konnte.

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 eine IPv4-Adresse und Familie im parameter DestinationAddress angegeben wurde oder wenn sich kein IPv6-Stapel auf dem lokalen Computer befindet und eine IPv4-Adresse und Familie im DestinationAddress Parameter angegeben wurde.

Andere

Verwenden Sie die FormatMessage--Funktion, um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Bemerkungen

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

Bei der Eingabe muss der Treiber die folgenden Parameter initialisieren.

  • DestinationAddress-
    Auf eine gültige IPv4- oder IPv6-Adresse und -Familie festgelegt.

  • InterfaceLuid oder InterfaceIndex-
    Diese Parameter werden in der Reihenfolge verwendet, die zuvor aufgeführt ist. Wenn also InterfaceLuid- angegeben wird, wird dieser Parameter verwendet, um die Schnittstelle zu bestimmen. Wenn kein Wert für das InterfaceLuid Member festgelegt wurde (der Wert dieses Parameters wurde auf Null festgelegt), wird der InterfaceIndex Parameter als Nächstes verwendet, um die Schnittstelle zu bestimmen.

Darüber hinaus kann Ihr Treiber bei der Eingabe den SourceAddress Parameter für die bevorzugte IPv4- oder IPv6-Adresse und -Familie initialisieren.

Wenn der Anruf erfolgreich ist, ruft GetBestRoute2 eine MIB_IPFORWARD_ROW2 Struktur für die beste Route von der Quell-IP-Adresse der Ziel-IP-Adresse ab.

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

Siehe auch

CreateIpForwardEntry2

DeleteIpForwardEntry2-

GetIpForwardEntry2

GetIpForwardTable2-

InitializeIpForwardEntry-

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2-

SetIpForwardEntry2-