Delen via


GetBestRoute2, functie

De functie GetBestRoute2 haalt de IP-routevermelding op een lokale computer op voor de beste route naar het opgegeven doel-IP-adres.

Syntaxis

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
);

Parameters

  • InterfaceLuid [in, optioneel]
    De lokaal unieke id (LUID) om de netwerkinterface op te geven die is gekoppeld aan een IP-routevermelding.

  • InterfaceIndex [in]
    De lokale indexwaarde om de netwerkinterface op te geven die is gekoppeld aan een IP-routevermelding. Deze indexwaarde kan veranderen wanneer een netwerkadapter is uitgeschakeld en vervolgens is ingeschakeld, of onder andere omstandigheden, zodat deze waarde niet persistent is.

  • SourceAddress [in, optioneel]
    Het ip-adres van de bron. Uw stuurprogramma kan deze parameter weglaten en een NULL- aanwijzer doorgeven.

  • DestinationAddress [in]
    Het doel-IP-adres.

  • AddressSortOptions [in]
    Een set opties die van invloed zijn op hoe IP-adressen worden gesorteerd. Deze parameter wordt momenteel niet gebruikt.

  • BestRoute [out]
    Een aanwijzer naar de MIB_IPFORWARD_ROW2 structuur voor de beste route van het bron-IP-adres naar het doel-IP-adres.

  • BestSourceAddress [out]
    Een aanwijzer naar het beste bron-IP-adres.

Retourwaarde

GetBestRoute2 retourneert STATUS_SUCCESS als de functie slaagt.

Als de functie mislukt, retourneert GetBestRoute2 een van de volgende foutcodes retourneert:

Retourcode Beschrijving
STATUS_INVALID_PARAMETER

Er is een ongeldige parameter doorgegeven aan de functie. Deze fout wordt geretourneerd als een NULL--aanwijzer wordt doorgegeven in de parameters DestinationAddress, BestSourceAddressof BestRoute parameters. Deze fout wordt ook geretourneerd als zowel InterfaceLuid als InterfaceIndex parameters niet zijn opgegeven. Deze fout wordt ook geretourneerd als de parameter DestinationAddress geen IPv4- of IPv6-adres en -familie opgeeft

STATUS_NOT_FOUND

Kan de opgegeven interface niet vinden. Deze fout wordt geretourneerd als de netwerkinterface die de InterfaceLuid of InterfaceIndex parameter specificeert, niet kan worden gevonden.

STATUS_NOT_SUPPORTED

De aanvraag wordt niet ondersteund. Deze fout wordt geretourneerd als er geen IPv4-stack zich op de lokale computer bevindt en er een IPv4-adres en -familie is opgegeven in de parameter DestinationAddress, of als er geen IPv6-stack zich op de lokale computer bevindt en er een IPv4-adres en -familie is opgegeven in de DestinationAddress-parameter.

Overige

Gebruik de functie FormatMessage om de berichttekenreeks voor de geretourneerde fout op te halen.

Opmerkingen

De functie GetBestRoute2 wordt gebruikt om een MIB_IPFORWARD_ROW2 structuurvermelding op te halen voor de beste route van een bron-IP-adres naar een doel-IP-adres.

Bij invoer moet uw stuurprogramma de volgende parameters initialiseren.

  • DestinationAddress-
    Ingesteld op een geldig IPv4- of IPv6-adres en -gezin.

  • InterfaceLuid of InterfaceIndex
    Deze parameters worden gebruikt in de volgorde die eerder wordt vermeld. Dus als InterfaceLuid- is opgegeven, wordt deze parameter gebruikt om de interface te bepalen. Als er geen waarde is ingesteld voor het InterfaceLuid lid (de waarde van deze parameter is ingesteld op nul), wordt de parameter InterfaceIndex naast het bepalen van de interface gebruikt.

Bovendien kan uw stuurprogramma bij invoer het SourceAddress- parameter initialiseren naar het voorkeurs-IPv4- of IPv6-adres en -gezin.

Wanneer de aanroep is geslaagd, haalt GetBestRoute2 een MIB_IPFORWARD_ROW2 structuur op voor de beste route van het bron-IP-adres van het doel-IP-adres.

Eisen

Doelplatform

Universal

Versie

Beschikbaar in Windows Vista en latere versies van de Windows-besturingssystemen.

Rubriek

Netioapi.h (inclusief Netioapi.h)

Bibliotheek

Netio.lib

IRQL

< DISPATCH_LEVEL

Zie ook

CreateIpForwardEntry2-

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2-

InitializeIpForwardEntry-

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2-

SetIpForwardEntry2