Función GetBestRoute2 (netioapi.h)

La función GetBestRoute2 recupera la entrada de ruta IP en el equipo local para obtener la mejor ruta a la dirección IP de destino especificada.

Sintaxis

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

Parámetros

[in, optional] InterfaceLuid

Identificador único local (LUID) para especificar la interfaz de red asociada a una entrada de ruta IP.

[in] InterfaceIndex

Valor de índice local para especificar la interfaz de red asociada a una entrada de ruta IP. Este valor de índice puede cambiar cuando un adaptador de red está deshabilitado y, a continuación, habilitado, o en otras circunstancias, y no debe considerarse persistente.

[in] SourceAddress

La dirección IP de origen. Este parámetro se puede omitir y pasar como puntero NULL .

[in] DestinationAddress

La dirección IP de destino.

[in] AddressSortOptions

Conjunto de opciones que afectan a cómo se ordenan las direcciones IP. Este parámetro no se usa actualmente.

[out] BestRoute

Puntero al MIB_IPFORWARD_ROW2 para la mejor ruta desde la dirección IP de origen a la dirección IP de destino.

[out] BestSourceAddress

Puntero a la mejor dirección IP de origen.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es NO_ERROR.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función. Este error se devuelve si se pasa un puntero NULL en destinationAddress, BestSourceAddress o el parámetro BestRoute . Este error también se devuelve si el parámetro DestinationAddress no especifica una dirección y una familia IPv4 o IPv6.
ERROR_FILE_NOT_FOUND
No se encontró la interfaz especificada. Este error se devuelve si no se encontró la interfaz de red especificada por el parámetro InterfaceLuid o InterfaceIndex .
ERROR_NOT_SUPPORTED
No se admite la solicitud. Este error se devuelve si no hay ninguna pila IPv4 en el equipo local y se especificó una dirección IPv4 y una familia en el parámetro DestinationAddress . Este error también se devuelve si no hay ninguna pila IPv6 en el equipo local y se especificó una dirección IPv6 y una familia en el parámetro DestinationAddress .
Otros
Use FormatMessage para obtener la cadena de mensaje del error devuelto.

Comentarios

La función GetBestRoute2 se define en Windows Vista y versiones posteriores.

La función GetBestRoute2 se usa para recuperar una entrada de estructura de MIB_IPFORWARD_ROW2 para la mejor ruta de una dirección IP de origen a una dirección IP de destino.

En la entrada, el parámetro DestinationAddress debe inicializarse en una dirección y familia IPv4 o IPv6 válidas. En la entrada, el parámetro SourceAddress se puede inicializar en la dirección y familia IPv4 o IPv6 preferidas. Además, se debe inicializar al menos uno de los parámetros siguientes: InterfaceLuid o InterfaceIndex.

Los parámetros se usan en el orden indicado anteriormente. Por lo tanto, si se especifica InterfaceLuid , este miembro se usa para determinar la interfaz. Si no se estableció ningún valor para el miembro InterfaceLuid (los valores de este miembro se establecieron en cero), el miembro InterfaceIndex se usa a continuación para determinar la interfaz.

Cuando la llamada se realiza correctamente, GetBestRoute2 recupera y MIB_IPFORWARD_ROW2 estructura para la mejor ruta desde la dirección IP de origen la dirección IP de destino.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado netioapi.h (incluya Iphlpapi.h)
Library Iphlpapi.lib
Archivo DLL Iphlpapi.dll

Consulte también

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2