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

Vedi anche

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceEntry

GetIpInterfaceTable

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

NotifyIpInterfaceChange