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 |
---|---|
|
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. |
|
Impossibile trovare l'interfaccia specificata. Questo errore viene restituito se non è stato possibile trovare l'interfaccia di rete specificata dal parametro InterfaceLuid o InterfaceIndex . |
|
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. |
|
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 |