Funzione GetIpInterfaceEntry
La funzione GetIpInterfaceEntry recupera le informazioni IP per l'interfaccia specificata in un computer locale.
Sintassi
NETIOAPI_API GetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
Parametri
- Riga [in, out]
Puntatore a una struttura MIB_IPINTERFACE_ROW che, in caso di esito positivo, riceve informazioni per un'interfaccia nel computer locale. In input, il driver deve impostare il membro InterfaceLuid o il membro InterfaceIndex del MIB_IPINTERFACE_ROW sull'interfaccia per recuperare informazioni.
Valore restituito
GetIpInterfaceEntry restituisce STATUS_SUCCESS se la funzione ha esito positivo.
Se la funzione ha esito negativo, GetIpInterfaceEntry restituisce uno dei codici di errore seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_INVALID_PARAMETER | Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se un puntatore NULL viene passato nel parametro Row , il membro Famiglia della struttura MIB_IPINTERFACE_ROW che il parametro Row punta a non è stato specificato come AF_INET o AF_INET6 o 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
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. Quindi, se InterfaceLuid viene specificato, 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 , GetIpInterfaceEntry riempie i membri rimanenti della struttura MIB_IPINTERFACE_ROW a cui punta il parametro Row .
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 .
L'accesso simultaneo non privilegiato a più reti di diversi requisiti di sicurezza crea un buco di sicurezza e consente a un driver non privato 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 l'accesso simultaneo aumentando la metrica di route di tutte le route predefinite su altre interfacce. Pertanto, tutto il traffico viene instradato tramite l'interfaccia VPN, interrompendo la connettività di rete.
In Windows Vista e versioni successive dei sistemi operativi Windows, per impostazione predefinita viene usato un modello host sicuro. Se viene specificato un indirizzo IP di origine 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 a Internet. Il driver può usare il membro DisableDefaultRoutes del 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 tunneling di divisione quando il tunneling diviso 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 |