Condividi tramite


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

Vedi anche

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2