Partager via


GetBestRoute2, fonction (netioapi.h)

La fonction GetBestRoute2 récupère l’entrée d’itinéraire IP sur l’ordinateur local pour le meilleur itinéraire vers l’adresse IP de destination spécifiée.

Syntaxe

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

Paramètres

[in, optional] InterfaceLuid

Identificateur unique local (LUID) pour spécifier l’interface réseau associée à une entrée de route IP.

[in] InterfaceIndex

Valeur d’index local pour spécifier l’interface réseau associée à une entrée de route IP. Cette valeur d’index peut changer lorsqu’une carte réseau est désactivée puis activée, ou dans d’autres circonstances, et ne doit pas être considérée comme persistante.

[in] SourceAddress

Adresse IP de la source. Ce paramètre peut être omis et passé en tant que pointeur NULL .

[in] DestinationAddress

Adresse IP de la destination.

[in] AddressSortOptions

Ensemble d’options qui affectent la façon dont les adresses IP sont triées. Ce paramètre n’est pas utilisé actuellement.

[out] BestRoute

Pointeur vers le MIB_IPFORWARD_ROW2 pour le meilleur itinéraire de l’adresse IP source vers l’adresse IP de destination.

[out] BestSourceAddress

Pointeur vers la meilleure adresse IP source.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si un pointeur NULL est passé dans le paramètre DestinationAddress, BestSourceAddress ou BestRoute . Cette erreur est également retournée si le paramètre DestinationAddress ne spécifie pas d’adresse et de famille IPv4 ou IPv6.
ERROR_FILE_NOT_FOUND
L’interface spécifiée est introuvable. Cette erreur est retournée si l’interface réseau spécifiée par le paramètre InterfaceLuid ou InterfaceIndex est introuvable.
ERROR_NOT_SUPPORTED
La demande n'est pas prise en charge. Cette erreur est retournée si aucune pile IPv4 ne se trouve sur l’ordinateur local et qu’une adresse et une famille IPv4 ont été spécifiées dans le paramètre DestinationAddress . Cette erreur est également retournée si aucune pile IPv6 ne se trouve sur l’ordinateur local et si une adresse et une famille IPv6 ont été spécifiées dans le paramètre DestinationAddress .
Autres
Utilisez FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

La fonction GetBestRoute2 est définie sur Windows Vista et versions ultérieures.

La fonction GetBestRoute2 permet de récupérer une entrée de structure MIB_IPFORWARD_ROW2 pour la meilleure route d’une adresse IP source vers une adresse IP de destination.

Lors de l’entrée, le paramètre DestinationAddress doit être initialisé sur une adresse et une famille IPv4 ou IPv6 valides. Lors de l’entrée, le paramètre SourceAddress peut être initialisé sur l’adresse et la famille IPv4 ou IPv6 préférées. En outre, au moins un des paramètres suivants doit être initialisé : InterfaceLuid ou InterfaceIndex.

Les paramètres sont utilisés dans l’ordre indiqué ci-dessus. Par conséquent, si l’interfaceLuid est spécifiée, ce membre est utilisé pour déterminer l’interface. Si aucune valeur n’a été définie pour le membre InterfaceLuid (les valeurs de ce membre ont été définies sur zéro), le membre InterfaceIndex est ensuite utilisé pour déterminer l’interface.

Lors de la sortie lorsque l’appel réussit, GetBestRoute2 récupère et MIB_IPFORWARD_ROW2 structure pour le meilleur itinéraire à partir de l’adresse IP source de l’adresse IP de destination.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête netioapi.h (inclure Iphlpapi.h)
Bibliothèque Iphlpapi.lib
DLL Iphlpapi.dll

Voir aussi

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2