Función GetIpInterfaceEntry
La función GetIpInterfaceEntry recupera información de IP para la interfaz especificada en un equipo local.
Sintaxis
NETIOAPI_API GetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
Parámetros
- Fila [in, out]
Puntero a una estructura de MIB_IPINTERFACE_ROW que, al devolverse correctamente, recibe información de una interfaz en el equipo local. En la entrada, el controlador debe establecer el miembro InterfaceLuid o el miembro InterfaceIndex del MIB_IPINTERFACE_ROW en la interfaz para recuperar información.
Valor devuelto
GetIpInterfaceEntry devuelve STATUS_SUCCESS si la función se realiza correctamente.
Si se produce un error en la función, GetIpInterfaceEntry devuelve uno de los siguientes códigos de error:
Código devuelto | Descripción |
---|---|
STATUS_INVALID_PARAMETER | Se pasó un parámetro no válido a la función. Este error se devuelve si se pasa un puntero NULL en el parámetro Row , el miembro Family de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row no se especificó como AF_INET o AF_INET6, o los miembros InterfaceLuid e InterfaceIndex de la estructura MIB_IPINTERFACE_ROW no se especificaron. |
STATUS_NOT_FOUND | No se encontró la interfaz especificada. Este error se devuelve si la función no encuentra la interfaz de red especificada por el miembro InterfaceLuid o InterfaceIndex de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row . |
Otros | Use la función FormatMessage para obtener la cadena de mensaje para el error devuelto. |
Observaciones
En la entrada, el controlador debe inicializar los siguientes miembros de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row .
Familia
Establezca en AF_INET o en AF_INET6.InterfaceLuid o InterfaceIndex
Estos miembros se usan en el orden indicado anteriormente. Por lo tanto, si se especifica InterfaceLuid , este miembro se usa para determinar la interfaz. Si no se estableció ningún valor para el miembro InterfaceLuid (el valor de este miembro se estableció en cero), el miembro InterfaceIndex se usa a continuación para determinar la interfaz.
En la salida, GetIpInterfaceEntry rellena los miembros restantes de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row .
El controlador debe usar la función InitializeIpInterfaceEntry para inicializar los campos de una entrada de estructura de MIB_IPINTERFACE_ROW con valores predeterminados. A continuación, un controlador puede cambiar los campos de la entrada MIB_IPINTERFACE_ROW que quiere modificar y, a continuación, llamar a la función SetIpInterfaceEntry .
El acceso simultáneo sin privilegios a varias redes de diferentes requisitos de seguridad crea un agujero de seguridad y permite que un controlador sin privilegios retransmita accidentalmente los datos entre las dos redes. Un ejemplo típico es el acceso simultáneo a una red privada virtual (VPN) e Internet. Los sistemas operativos Windows Server 2003 y Windows XP usan un modelo de host débil, donde el Servicio de acceso remoto (RAS) impide este acceso simultáneo aumentando la métrica de ruta de todas las rutas predeterminadas en otras interfaces. Por lo tanto, todo el tráfico se enruta a través de la interfaz VPN, lo que interrumpe otra conectividad de red.
En Windows Vista y versiones posteriores de los sistemas operativos Windows, se usa de forma predeterminada un modelo de host seguro. Si se especifica una dirección IP de origen en la búsqueda de ruta mediante la función GetBestRoute2 , la búsqueda de rutas está restringida a la interfaz de la dirección IP de origen. La modificación de la métrica de ruta por RAS no tiene ningún efecto porque la lista de rutas potenciales ni siquiera tiene la ruta para la interfaz VPN, lo que permite el tráfico a Internet. El controlador puede usar el miembro DisableDefaultRoutes del MIB_IPINTERFACE_ROW para deshabilitar el uso de la ruta predeterminada en una interfaz. Los clientes VPN pueden usar este miembro como medida de seguridad para restringir la tunelización dividida cuando el cliente VPN no requiere la tunelización dividida. Un cliente VPN puede llamar a la función SetIpInterfaceEntry para establecer el miembro DisableDefaultRoutes en TRUE cuando sea necesario. Un cliente VPN puede consultar el estado actual del miembro DisableDefaultRoutes llamando a la función GetIpInterfaceEntry .
Requisitos
Plataforma de destino |
Universal |
Versión |
Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Encabezado |
Netioapi.h (incluya Netioapi.h) |
Biblioteca |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |