Compartilhar via


Função GetBestRoute2 (netioapi.h)

A função GetBestRoute2 recupera a entrada de rota IP no computador local para obter a melhor rota para o endereço IP de destino especificado.

Sintaxe

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

O LUID (identificador exclusivo local) para especificar o adaptador de rede associado a uma entrada de rota IP.

[in] InterfaceIndex

O valor do índice local para especificar o adaptador de rede associado a uma entrada de rota IP. Esse valor de índice pode ser alterado quando um adaptador de rede é desabilitado e habilitado, ou em outras circunstâncias, e não deve ser considerado persistente.

[in] SourceAddress

Endereço IP de origem. Esse parâmetro pode ser omitido e passado como um ponteiro NULL .

[in] DestinationAddress

Endereço IP de destino.

[in] AddressSortOptions

Um conjunto de opções que afetam a forma como os endereços IP são classificados. Esse parâmetro não é usado no momento.

[out] BestRoute

Um ponteiro para o MIB_IPFORWARD_ROW2 para a melhor rota do endereço IP de origem para o endereço IP de destino.

[out] BestSourceAddress

Um ponteiro para o melhor endereço IP de origem.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função. Esse erro será retornado se um ponteiro NULL for passado no parâmetro DestinationAddress, BestSourceAddress ou BestRoute . Esse erro também será retornado se o parâmetro DestinationAddress não especificar um endereço IPv4 ou IPv6 e uma família.
ERROR_FILE_NOT_FOUND
Não foi possível encontrar a interface especificada. Esse erro será retornado se o adaptador de rede especificado pelo parâmetro InterfaceLuid ou InterfaceIndex não puder ser encontrado.
ERROR_NOT_SUPPORTED
A solicitação não terá suporte. Esse erro será retornado se nenhuma pilha IPv4 estiver no computador local e um endereço IPv4 e uma família tiverem sido especificados no parâmetro DestinationAddress . Esse erro também será retornado se nenhuma pilha IPv6 estiver no computador local e um endereço IPv6 e uma família tiverem sido especificados no parâmetro DestinationAddress .
Outros
Use FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

A função GetBestRoute2 é definida no Windows Vista e posterior.

A função GetBestRoute2 é usada para recuperar uma entrada de estrutura MIB_IPFORWARD_ROW2 para a melhor rota de um endereço IP de origem para um endereço IP de destino.

Na entrada, o parâmetro DestinationAddress deve ser inicializado para um endereço IPv4 ou IPv6 válido e família. Na entrada, o parâmetro SourceAddress pode ser inicializado para o endereço IPv4 ou IPv6 preferencial e família. Além disso, pelo menos um dos seguintes parâmetros deve ser inicializado: InterfaceLuid ou InterfaceIndex.

Os parâmetros são usados na ordem listada acima. Portanto, se o InterfaceLuid for especificado, esse membro será usado para determinar a interface. Se nenhum valor tiver sido definido para o membro InterfaceLuid (os valores desse membro foram definidos como zero), o membro InterfaceIndex será usado em seguida para determinar a interface.

Na saída quando a chamada for bem-sucedida, GetBestRoute2 recuperará e MIB_IPFORWARD_ROW2 estrutura para obter a melhor rota do endereço IP de origem do endereço IP de destino.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho netioapi.h (inclua Iphlpapi.h)
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2