Función SetIpInterfaceEntry
La función SetIpInterfaceEntry establece las propiedades de una interfaz IP en un equipo local.
Sintaxis
NETIOAPI_API SetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
Parámetros
- Fila [in, out]
Puntero a una entrada de estructura MIB_IPINTERFACE_ROW para una interfaz. En la entrada, el controlador debe establecer el miembro Family del MIB_IPINTERFACE_ROW en AF_INET6 o AF_INET y el controlador debe especificar el miembro InterfaceLuid o el miembro InterfaceIndex de MIB_IPINTERFACE_ROW. Si se devuelve correctamente, el miembro InterfaceLuid del MIB_IPINTERFACE_ROW se rellena si se especificó el miembro InterfaceIndex de la entrada MIB_IPINTERFACE_ROW.
Valor devuelto
SetIpInterfaceEntry devuelve STATUS_SUCCESS si la función se realiza correctamente.
Si se produce un error en la función, SetIpInterfaceEntry 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 del error devuelto. |
Observaciones
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 desea modificar y, a continuación, llamar a la función SetIpInterfaceEntry .
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 que se muestra 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, el miembro InterfaceLuid de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row se rellena si se especificó InterfaceIndex .
SetIpInterfaceEntry omite los miembros MaxReassemblySize, MinRouterAdvertisementInterval, MaxRouterAdvertisementInterval, Connected, SupportsWakeUpPatterns, SupportsNeighborDiscovery, SupportsRouterDiscovery, ReachableTime, TransmitOffload y ReceiveOffload de la estructura MIB_IPINTERFACE_ROW a la que apunta el parámetro Row . La pila de red establece estos miembros y no se puede cambiar mediante la función SetIpInterfaceEntry .
El acceso simultáneo sin privilegios a varias redes de requisitos de seguridad diferentes crea un agujero de seguridad y permite a un controlador sin privilegios retransmitir 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 la 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 rutas mediante la función GetBestRoute2 , la búsqueda de rutas se restringe 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 de la interfaz VPN, lo que permite el tráfico a Internet. El controlador puede usar el miembro DisableDefaultRoutes de la estructura 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 |