Condividi tramite


Funzione GetBestRoute2 (netioapi.h)

La funzione GetBestRoute2 recupera la voce di route IP nel computer locale per la route migliore all'indirizzo IP di destinazione specificato.

Sintassi

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

Parametri

[in, optional] InterfaceLuid

Identificatore univoco locale (LUID) per specificare l'interfaccia di rete associata a una voce di route IP.

[in] InterfaceIndex

Valore dell'indice locale per specificare l'interfaccia di rete associata a una voce di route IP. Questo valore di indice può cambiare quando una scheda di rete è disabilitata e quindi abilitata o in altre circostanze e non deve essere considerata persistente.

[in] SourceAddress

Indirizzo IP di origine. Questo parametro può essere omesso e passato come puntatore NULL .

[in] DestinationAddress

Indirizzo IP di destinazione.

[in] AddressSortOptions

Set di opzioni che influiscono sulla modalità di ordinamento degli indirizzi IP. Questo parametro non è attualmente utilizzato.

[out] BestRoute

Puntatore al MIB_IPFORWARD_ROW2 per la route migliore dall'indirizzo IP di origine all'indirizzo IP di destinazione.

[out] BestSourceAddress

Puntatore all'indirizzo IP di origine migliore.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene NO_ERROR.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_INVALID_PARAMETER
Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se un puntatore NULL viene passato nel parametro DestinationAddress, BestSourceAddress o BestRoute . Questo errore viene restituito anche se il parametro DestinationAddress non specifica un indirizzo e una famiglia IPv4 o IPv6.
ERROR_FILE_NOT_FOUND
Impossibile trovare l'interfaccia specificata. Questo errore viene restituito se non è stato possibile trovare l'interfaccia di rete specificata dal parametro InterfaceLuid o InterfaceIndex .
ERROR_NOT_SUPPORTED
La richiesta non è supportata. Questo errore viene restituito se nel computer locale non è presente alcun stack IPv4 e nel parametro DestinationAddress è stato specificato un indirizzo e una famiglia IPv4. Questo errore viene restituito anche se non è presente alcun stack IPv6 nel computer locale e nel parametro DestinationAddress è stato specificato un indirizzo e una famiglia IPv6.
Altri
Usare FormatMessage per ottenere la stringa del messaggio per l'errore restituito.

Commenti

La funzione GetBestRoute2 viene definita in Windows Vista e versioni successive.

La funzione GetBestRoute2 viene usata per recuperare una voce di struttura MIB_IPFORWARD_ROW2 per la route migliore da un indirizzo IP di origine a un indirizzo IP di destinazione.

In base all'input, il parametro DestinationAddress deve essere inizializzato in un indirizzo e una famiglia IPv4 o IPv6 validi. In input, il parametro SourceAddress può essere inizializzato nell'indirizzo e nella famiglia IPv4 o IPv6 preferiti. Inoltre, è necessario inizializzare almeno uno dei parametri seguenti: InterfaceLuid o InterfaceIndex.

I parametri vengono usati nell'ordine indicato in precedenza. Quindi, se si specifica InterfaceLuid , questo membro viene usato per determinare l'interfaccia. Se non è stato impostato alcun valore per il membro InterfaceLuid (i valori di questo membro sono stati impostati su zero), il membro InterfaceIndex viene usato successivamente per determinare l'interfaccia.

In caso di esito positivo della chiamata, GetBestRoute2 recupera e MIB_IPFORWARD_ROW2 struttura per la route migliore dall'indirizzo IP di origine all'indirizzo IP di destinazione.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione netioapi.h (include Iphlpapi.h)
Libreria Iphlpapi.lib
DLL Iphlpapi.dll

Vedi anche

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2