Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A função GetBestRoute2 recupera a entrada de rota IP em um computador local para 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 identificador exclusivo local (LUID) para especificar a interface de rede associada a uma entrada de rota IP.InterfaceIndex [em]
O valor de índice local para especificar a interface de rede associada a uma entrada de rota IP. Esse valor de índice pode mudar quando um adaptador de rede é desativado e, em seguida, habilitado, ou em outras circunstâncias, para que esse valor não persista.SourceAddress [in, opcional]
O endereço IP de origem. Seu driver pode omitir esse parâmetro e passar um ponteiro de NULL.DestinationAddress [em]
O endereço IP de destino.AddressSortOptions [em]
Um conjunto de opções que afetam a forma como os endereços IP são classificados. Este parâmetro não é usado no momento.BestRoute [saída]
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 [saída]
Um ponteiro para o melhor endereço IP de origem.
Valor de retorno
GetBestRoute2 retorna 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. Este erro é retornado se um ponteiro de NULL é passado no DestinationAddress, BestSourceAddressou parâmetros BestRoute. Este erro também é retornado se parâmetros InterfaceLuid e InterfaceIndex não foram especificados. Este erro também é retornado se o parâmetro DestinationAddress não especificar um endereço IPv4 ou IPv6 e família |
| STATUS_NOT_FOUND | A interface especificada não pôde ser encontrada. Este erro é retornado se a interface de rede que o InterfaceLuid ou parâmetro InterfaceIndex especifica não pôde ser encontrada. |
| STATUS_NOT_SUPPORTED | A solicitação não é suportada. Este 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
O função GetBestRoute2 é usado 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 seguintes parâmetros.
DestinationAddress
Defina como um endereço e uma família IPv4 ou IPv6 válidos.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 foi 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 preferido e família.
Na saída, quando a chamada é bem-sucedida, GetBestRoute2 recupera uma estrutura de MIB_IPFORWARD_ROW2 para a melhor rota do endereço IP de origem o endereço IP de destino.