Funzione SetIpInterfaceEntry
La funzione SetIpInterfaceEntry imposta le proprietà di un'interfaccia IP in un computer locale.
Sintassi
NETIOAPI_API SetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
Parametri
- Riga [in, out]
Puntatore a una voce di struttura MIB_IPINTERFACE_ROW per un'interfaccia. All'input, il driver deve impostare il membro Family del MIB_IPINTERFACE_ROW su AF_INET6 o AF_INET e il driver deve specificare il membro InterfaceLuid o il membro InterfaceIndex di MIB_IPINTERFACE_ROW. In caso di esito positivo, il membro InterfaceLuid del MIB_IPINTERFACE_ROW viene compilato se è stato specificato il membro InterfaceIndex della voce MIB_IPINTERFACE_ROW.
Valore restituito
SetIpInterfaceEntry restituisce STATUS_SUCCESS se la funzione ha esito positivo.
Se la funzione ha esito negativo, SetIpInterfaceEntry 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 nel parametro Row , il membro Family della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row non è stato specificato come AF_INET o AF_INET6 oppure i membri InterfaceLuid e InterfaceIndex della struttura MIB_IPINTERFACE_ROW non sono stati specificati. |
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_IPINTERFACE_ROW a cui punta il parametro Row . |
Altri | Utilizzare la funzione FormatMessage per ottenere la stringa di messaggio per l'errore restituito. |
Commenti
Il driver deve usare la funzione InitializeIpInterfaceEntry per inizializzare i campi di una voce di struttura MIB_IPINTERFACE_ROW con valori predefiniti. Un driver può quindi modificare i campi nella voce MIB_IPINTERFACE_ROW che vuole modificare e quindi chiamare la funzione SetIpInterfaceEntry .
In input, il driver deve inizializzare i membri seguenti della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row .
Famiglia
Impostare su AF_INET o AF_INET6.InterfaceLuid o InterfaceIndex
Questi membri vengono usati nell'ordine elencato in precedenza. Se quindi si specifica InterfaceLuid , questo membro viene usato per determinare l'interfaccia. 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.
Nell'output, il membro InterfaceLuid della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row viene compilato se è stato specificato InterfaceIndex .
SetIpInterfaceEntry ignora MaxReassemblySize, MinRouterAdvertisementInterval, MaxRouterAdvertisementInterval, Connected, SupportsWakeUpPatterns, SupportsNeighborDiscovery, SupportsRouterDiscovery, ReachableTime, TransmitOffload e ReceiveOffload della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row . Questi membri vengono impostati dallo stack di rete e non possono essere modificati tramite la funzione SetIpInterfaceEntry .
L'accesso simultaneo senza privilegi a più reti di requisiti di sicurezza diversi crea un foro di sicurezza e consente a un driver senza privilegi di inoltrare accidentalmente i dati tra le due reti. Un esempio tipico è l'accesso simultaneo a una rete privata virtuale (VPN) e a Internet. I sistemi operativi Windows Server 2003 e Windows XP usano un modello host debole, in cui il servizio di accesso remoto (RAS) impedisce tale accesso simultaneo aumentando la metrica di route di tutte le route predefinite su altre interfacce. Di conseguenza, tutto il traffico viene instradato attraverso l'interfaccia VPN, interrompendo la connettività di rete.
Per impostazione predefinita, in Windows Vista e versioni successive dei sistemi operativi Windows viene usato un modello host sicuro. Se un indirizzo IP di origine viene specificato nella ricerca della route usando la funzione GetBestRoute2 , la ricerca della route è limitata all'interfaccia dell'indirizzo IP di origine. La modifica della metrica di route da RAS non ha alcun effetto perché l'elenco di potenziali route non ha nemmeno la route per l'interfaccia VPN, che consente il traffico verso Internet. Il driver può usare il membro DisableDefaultRoutes della struttura MIB_IPINTERFACE_ROW per disabilitare l'uso della route predefinita in un'interfaccia. I client VPN possono usare questo membro come misura di sicurezza per limitare il split tunneling quando il split tunneling non è richiesto dal client VPN. Un client VPN può chiamare la funzione SetIpInterfaceEntry per impostare il membro DisableDefaultRoutes su TRUE quando è necessario. Un client VPN può eseguire una query sullo stato corrente del membro DisableDefaultRoutes chiamando la funzione GetIpInterfaceEntry .
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 |