Funzione GetBestRoute2
La funzione GetBestRoute2 recupera la voce di route IP in un computer locale per la route migliore all'indirizzo IP di destinazione specificato.
Sintassi
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
);
Parametri
InterfaceLuid [in, facoltativo]
Identificatore univoco locale (LUID) per specificare l'interfaccia di rete associata a una voce di route IP.InterfaceIndex [in]
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, in modo che questo valore non sia persistente.SourceAddress [in, facoltativo]
Indirizzo IP di origine. Il driver può omettere questo parametro e passare un puntatore NULL .DestinationAddress [in]
Indirizzo IP di destinazione.AddressSortOptions [in]
Set di opzioni che influiscono sulla modalità di ordinamento degli indirizzi IP. Questo parametro non viene attualmente utilizzato.BestRoute [out]
Puntatore alla struttura MIB_IPFORWARD_ROW2 per la route migliore dall'indirizzo IP di origine all'indirizzo IP di destinazione.BestSourceAddress [out]
Puntatore all'indirizzo IP di origine migliore.
Valore restituito
GetBestRoute2 restituisce STATUS_SUCCESS se la funzione ha esito positivo.
Se la funzione ha esito negativo, GetBestRoute2 restituisce uno dei codici di errore seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_INVALID_PARAMETER | Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se un puntatore NULL viene passato nei parametri DestinationAddress, BestSourceAddress o BestRoute . Questo errore viene restituito anche se i parametri InterfaceLuid e InterfaceIndex non sono stati specificati. Questo errore viene restituito anche se il parametro DestinationAddress non specifica un indirizzo e una famiglia IPv4 o IPv6 |
STATUS_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 . |
STATUS_NOT_SUPPORTED | La richiesta non è supportata. Questo errore viene restituito se non si trova alcun stack IPv4 nel computer locale e nel parametro DestinationAddress è stato specificato un indirizzo e una famiglia IPv4 oppure se non si trova alcun stack IPv6 nel computer locale e nel parametro DestinationAddress è stato specificato un indirizzo E una famiglia IPv4. |
Altri | Utilizzare la funzione FormatMessage per ottenere la stringa di messaggio per l'errore restituito. |
Commenti
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.
All'input, il driver deve inizializzare i parametri seguenti.
DestinationAddress
Impostare su un indirizzo e una famiglia IPv4 o IPv6 validi.InterfaceLuid o InterfaceIndex
Questi parametri vengono usati nell'ordine elencato in precedenza. Se quindi si specifica InterfaceLuid , questo parametro viene usato per determinare l'interfaccia. Se non è stato impostato alcun valore per il membro InterfaceLuid (il valore di questo parametro è stato impostato su zero), il parametro InterfaceIndex viene usato successivamente per determinare l'interfaccia.
Inoltre, all'input, il driver può inizializzare il parametro SourceAddress per l'indirizzo e la famiglia IPv4 o IPv6 preferiti.
Quando la chiamata ha esito positivo, GetBestRoute2 recupera una struttura MIB_IPFORWARD_ROW2 per la route migliore dall'indirizzo IP di origine l'indirizzo IP di destinazione.
Requisiti
Piattaforma di destinazione |
Universale |
Versione |
Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
Intestazione |
Netioapi.h (include Netioapi.h) |
Libreria |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |