Função GetBestRoute2
A função GetBestRoute2 recupera a entrada de rota IP em um computador local para obter a melhor rota para o endereço IP de destino especificado.
Sintaxe
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]
O LUID (identificador exclusivo local) para especificar o adaptador de rede associado a uma entrada de rota IP.InterfaceIndex [in]
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, em seguida, habilitado ou em outras circunstâncias, portanto, esse valor não é persistente.SourceAddress [in, opcional]
Endereço IP de origem. O driver pode omitir esse parâmetro e passar um ponteiro NULL .DestinationAddress [in]
Endereço IP de destino.AddressSortOptions [in]
Um conjunto de opções que afetam como os endereços IP são classificados. Esse parâmetro não é usado atualmente.BestRoute [out]
Um ponteiro para a estrutura MIB_IPFORWARD_ROW2 para a melhor rota do endereço IP de origem para o endereço IP de destino.BestSourceAddress [out]
Um ponteiro para o melhor endereço IP de origem.
Retornar valor
GetBestRoute2 retornará STATUS_SUCCESS se a função for bem-sucedida.
Se a função falhar, GetBestRoute2 retornará um dos seguintes códigos de erro:
Código de retorno | Descrição |
---|---|
STATUS_INVALID_PARAMETER | Um parâmetro inválido foi passado para a função. Esse erro será retornado se um ponteiro NULL for passado nos parâmetros DestinationAddress, BestSourceAddress ou BestRoute . Esse erro também será retornado se os parâmetros InterfaceLuid e InterfaceIndex não forem especificados. Esse erro também será retornado se o parâmetro DestinationAddress não especificar um endereço IPv4 ou IPv6 e uma família |
STATUS_NOT_FOUND | Não foi possível encontrar a interface especificada. Esse erro será retornado se não for possível encontrar o adaptador de rede especificado pelo parâmetro InterfaceLuid ou InterfaceIndex . |
STATUS_NOT_SUPPORTED | A solicitação não terá suporte. Esse erro será retornado se nenhuma pilha IPv4 estiver localizada no computador local e um endereço IPv4 e uma família tiverem sido especificados no parâmetro DestinationAddress ou se nenhuma pilha IPv6 estiver localizada no computador local e um endereço IPv4 e uma família tiverem sido especificados no parâmetro DestinationAddress . |
Outros | Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado. |
Comentários
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 driver deve inicializar os parâmetros a seguir.
DestinationAddress
Defina como um endereço IPv4 ou IPv6 válido e uma família.InterfaceLuid ou InterfaceIndex
Esses parâmetros são usados na ordem listada anteriormente. Portanto, se InterfaceLuid for especificado, esse parâmetro será usado para determinar a interface. Se nenhum valor tiver sido definido para o membro InterfaceLuid (o valor desse parâmetro foi definido como zero), o parâmetro InterfaceIndex será usado em seguida para determinar a interface.
Além disso, na entrada, o driver pode inicializar o parâmetro SourceAddress para o endereço IPv4 ou IPv6 preferencial e a família.
Na saída, quando a chamada é bem-sucedida, GetBestRoute2 recupera uma estrutura MIB_IPFORWARD_ROW2 para a melhor rota do endereço IP de origem do endereço IP de destino.
Requisitos
Plataforma de destino |
Universal |
Versão |
Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
parâmetro |
Netioapi.h (inclua Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |