Funzione CreateIpForwardEntry2
La funzione CreateIpForwardEntry2 crea una nuova voce di route IP in un computer locale.
Sintassi
NETIOAPI_API CreateIpForwardEntry2(
_In_ const MIB_IPFORWARD_ROW2 *Row
);
Parametri
- Riga [in]
Puntatore a una voce di struttura MIB_IPFORWARD_ROW2 per una voce di route IP.
Valore restituito
CreateIpForwardEntry2 restituisce STATUS_SUCCESS se la funzione ha esito positivo.
Se la funzione ha esito negativo, CreateIpForwardEntry2 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 si verifica una delle situazioni seguenti:
Questo errore viene restituito se nel parametro Row viene passato un puntatore NULL, il membro DestinationPrefix della struttura MIB_IPFORWARD_ROW2 a cui punta il parametro Row non è stato specificato, il membro NextHop della struttura MIB_IPFORWARD_ROW2 non è stato specificato o i membri InterfaceLuid e InterfaceIndex della struttura MIB_IPFORWARD_ROW2 non sono stati specificati. Questo errore viene restituito anche se il membro PreferredLifetime specificato nella struttura MIB_IPFORWARD_ROW2 è maggiore del membro ValidLifetime o se la struttura SitePrefixLength nella struttura MIB_IPFORWARD_ROW2 è maggiore della lunghezza del prefisso specificata nel membro DestinationPrefix . |
STATUS_NOT_FOUND | Impossibile trovare l'interfaccia specificata. Questo errore viene restituito se la funzione non riesce a trovare l'interfaccia di rete specificata dal membro InterfaceLuid o InterfaceIndex della struttura MIB_IPNET_ROW2 a cui punta il parametro Row . |
STATUS_NOT_SUPPORTED | La richiesta non è supportata. Questo errore viene restituito se l'interfaccia specificata non supporta le route. Questo errore viene restituito se non si trova alcun stack IPv4 nel computer locale e AF_INET è stato specificato nella famiglia di indirizzi nel membro DestinationPrefix della struttura MIB_IPFORWARD_ROW2 a cui punta il parametro Row o se non si trova alcun stack IPv6 nel computer locale e AF_INET6 è stato specificato per la famiglia di indirizzi nel membro DestinationPrefix . |
ERROR_OBJECT_ALREADY_EXISTS | L'oggetto esiste già. Questo errore viene restituito se il membro DestinationPrefix della struttura MIB_IPFORWARD_ROW2 a cui punta il parametro Row è un duplicato di una voce di route IP esistente nell'interfaccia specificata dal membro InterfaceLuid o InterfaceIndex della struttura MIB_IPFORWARD_ROW2. |
Altri | Utilizzare la funzione FormatMessage per ottenere la stringa di messaggio per l'errore restituito. |
Commenti
La funzione CreateIpForwardEntry2 viene usata per aggiungere una nuova voce di indirizzo IP adiacente in un computer locale. Utilizzare la funzione InitializeIpForwardEntry per inizializzare i membri di una voce di struttura MIB_IPFORWARD_ROW2 con valori predefiniti. Un driver può quindi modificare i membri nella voce MIB_IPFORWARD_ROW2 che vuole modificare e quindi chiamare CreateIpForwardEntry2.
Il driver deve inizializzare i membri seguenti della struttura MIB_IPFORWARD_ROW2 a cui punta il parametro Row :
Impostare DestinationPrefix su un prefisso di indirizzo IPv4 o IPv6 valido.
Impostare NextHop su un indirizzo e una famiglia IPv4 o IPv6 validi.
Impostare InterfaceLuid o InterfaceIndex sul valore luid o indice dell'interfaccia.
I membri InterfaceLuid e InterfaceIndex vengono usati nell'ordine elencato in precedenza. Pertanto, se si specifica InterfaceLuid , questo membro viene usato per determinare l'interfaccia in cui aggiungere la voce di route IP. Se non è stato impostato alcun valore per il membro InterfaceLuid (il valore di questo membro è stato impostato su zero), il membro InterfaceIndex viene usato successivamente per determinare l'interfaccia.
Offset della metrica di route specificato nel membro Metric della struttura MIB_IPFORWARD_ROW2 che il parametro Row punta a rappresenta solo parte della metrica di route completa. La metrica completa è una combinazione di questo offset della metrica di route aggiunto alla metrica di interfaccia specificata nel membro Metrica della struttura MIB_IPINTERFACE_ROW dell'interfaccia associata. Un driver può recuperare la metrica dell'interfaccia chiamando la funzione GetIpInterfaceEntry .
I membri Age e Origin della struttura MIB_IPFORWARD_ROW2 a cui punta il parametro Row vengono ignorati quando viene chiamata la funzione CreateIpForwardEntry2 . Questi membri vengono impostati dallo stack di rete e non possono essere impostati tramite la funzione CreateIpForwardEntry2 .
La funzione CreateIpForwardEntry2 ha esito negativo se i membri DestinationPrefix e NextHop della struttura MIB_IPFORWARD_ROW2 a cui punta il parametro Row sono duplicati di una voce di route IP esistente nell'interfaccia specificata nei membri InterfaceLuid o InterfaceIndex .
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 |