Función GetBestRoute2
La función GetBestRoute2 recupera la entrada de ruta IP en un equipo local para obtener la mejor ruta a la dirección IP de destino especificada.
Sintaxis
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
);
Parámetros
InterfaceLuid [in, opcional]
Identificador único local (LUID) para especificar la interfaz de red asociada a una entrada de ruta IP.InterfaceIndex [in]
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, por lo que este valor no es persistente.sourceAddress [in, opcional]
Dirección IP de origen. El controlador puede omitir este parámetro y pasar un puntero de NULL NULL.DestinationAddress [in]
Dirección IP de destino.addressSortOptions [in]
Conjunto de opciones que afectan a cómo se ordenan las direcciones IP. Este parámetro no se usa actualmente.BestRoute [out]
Puntero a la estructura MIB_IPFORWARD_ROW2 para la mejor ruta desde la dirección IP de origen a la dirección IP de destino.BestSourceAddress [out]
Puntero a la mejor dirección IP de origen.
Valor devuelto
GetBestRoute2 devuelve STATUS_SUCCESS si la función se ejecuta correctamente.
Si se produce un error en la función, GetBestRoute2 devuelve uno de los siguientes códigos de error:
Código devuelto | Descripción |
---|---|
STATUS_INVALID_PARAMETER | Se pasó un parámetro no válido a la función . Este error se devuelve si se pasa un puntero de null null en los parámetros DestinationAddress , BestSourceAddresso BestRoute. Este error también se devuelve si no se especificaron los parámetros InterfaceLuid InterfaceLuid y InterfaceIndex. Este error también se devuelve si el parámetro DestinationAddress no especifica una dirección IPv4 o IPv6 y una familia |
STATUS_NOT_FOUND | No se encontró la interfaz especificada. Este error se devuelve si no se encontró la interfaz de red InterfaceLuid o parámetro InterfaceIndex. |
STATUS_NOT_SUPPORTED | No se admite la solicitud. Este error se devuelve si no hay ninguna pila IPv4 ubicada en el equipo local y se especificó una dirección IPv4 y una familia en el parámetro DestinationAddress, o si no hay ninguna pila IPv6 ubicada en el equipo local y se especificó una dirección IPv4 y una familia en el parámetro DestinationAddress. |
otros | Use la función FormatMessage para obtener la cadena del mensaje para el error devuelto. |
Observaciones
La función GetBestRoute2 se usa para recuperar una entrada de estructura de MIB_IPFORWARD_ROW2 para obtener la mejor ruta de una dirección IP de origen a una dirección IP de destino.
En la entrada, el controlador debe inicializar los parámetros siguientes.
DestinationAddress
Establézcalo en una dirección y familia IPv4 o IPv6 válidas.InterfaceLuid o InterfaceIndex
Estos parámetros se usan en el orden que se muestra anteriormente. Por lo tanto, si se especifica InterfaceLuid, este parámetro se usa para determinar la interfaz. Si no se estableció ningún valor para el miembro InterfaceLuid (el valor de este parámetro se estableció en cero), el parámetro InterfaceIndex se usa a continuación para determinar la interfaz.
Además, en la entrada, el controlador puede inicializar el parámetro SourceAddress a la dirección y familia IPv4 o IPv6 preferidas.
En la salida, cuando la llamada se realiza correctamente, GetBestRoute2 recupera una estructura de MIB_IPFORWARD_ROW2 para obtener la mejor ruta desde la dirección IP de origen a la dirección IP de destino.
Requisitos
Plataforma de destino |
universal |
Versión |
Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Encabezado |
Netioapi.h (incluya Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |