Función CreateIpForwardEntry2
La función CreateIpForwardEntry2 crea una nueva entrada de ruta IP en un equipo local.
Sintaxis
NETIOAPI_API CreateIpForwardEntry2(
_In_ const MIB_IPFORWARD_ROW2 *Row
);
Parámetros
- Fila [in]
Puntero a una entrada de estructura MIB_IPFORWARD_ROW2 para una entrada de ruta IP.
Valor devuelto
CreateIpForwardEntry2 devuelve STATUS_SUCCESS si la función se realiza correctamente.
Si se produce un error en la función, CreateIpForwardEntry2 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 produce una de las situaciones siguientes:
Este error se devuelve si se pasa un puntero NULL en el parámetro Row , no se especificó el miembro DestinationPrefix de la estructura MIB_IPFORWARD_ROW2 a la que apunta el parámetro Row , no se especificó el miembro NextHop de la estructura MIB_IPFORWARD_ROW2, o no se especificaron los miembros InterfaceLuid e InterfaceIndex de la estructura MIB_IPFORWARD_ROW2. Este error también se devuelve si el miembro PreferredLifetime especificado en la estructura MIB_IPFORWARD_ROW2 es mayor que el miembro ValidLifetime , o si el elemento SitePrefixLength de la estructura MIB_IPFORWARD_ROW2 es mayor que la longitud del prefijo especificada en el miembro DestinationPrefix . |
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_IPNET_ROW2 a la que apunta el parámetro Row . |
STATUS_NOT_SUPPORTED | No se admite la solicitud. Este error se devuelve si la interfaz especificada no admite rutas. Este error se devuelve si no se encuentra ninguna pila IPv4 en el equipo local y AF_INET se especificó en la familia de direcciones del miembro DestinationPrefix de la estructura MIB_IPFORWARD_ROW2 a la que apunta el parámetro Row , o si no se encuentra ninguna pila IPv6 en el equipo local y AF_INET6 se especificó para la familia de direcciones en el miembro DestinationPrefix . |
ERROR_OBJECT_ALREADY_EXISTS | El objeto ya existe. Este error se devuelve si el miembro DestinationPrefix de la estructura MIB_IPFORWARD_ROW2 a la que apunta el parámetro Row es un duplicado de una entrada de ruta IP existente en la interfaz especificada por el miembro InterfaceLuid o InterfaceIndex de la estructura MIB_IPFORWARD_ROW2. |
Otros | Use la función FormatMessage para obtener la cadena de mensaje del error devuelto. |
Observaciones
La función CreateIpForwardEntry2 se usa para agregar una nueva entrada de dirección IP vecina en un equipo local. Use la función InitializeIpForwardEntry para inicializar los miembros de una entrada de estructura de MIB_IPFORWARD_ROW2 con valores predeterminados. A continuación, un controlador puede cambiar los miembros de la entrada MIB_IPFORWARD_ROW2 que desea modificar y, a continuación, llamar a CreateIpForwardEntry2.
El controlador debe inicializar los siguientes miembros de la estructura MIB_IPFORWARD_ROW2 a los que apunta el parámetro Row :
Establezca DestinationPrefix en un prefijo de dirección IPv4 o IPv6 válido.
Establezca NextHop en una dirección y familia IPv4 o IPv6 válidas.
Establezca InterfaceLuid o InterfaceIndex en el LUID o el valor de índice de la interfaz.
Los miembros InterfaceLuid e InterfaceIndex se usan en el orden enumerado anteriormente. Por lo tanto, si se especifica InterfaceLuid , este miembro se usa para determinar la interfaz en la que se agrega la entrada de ruta IP. 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.
Desplazamiento de métrica de ruta que se especifica en el miembro Métrica de la estructura MIB_IPFORWARD_ROW2 que apunta el parámetro Row para que represente solo parte de la métrica de ruta completa. La métrica completa es una combinación de este desplazamiento de métrica de ruta agregado a la métrica de interfaz que se especifica en el miembro Métrica de la estructura MIB_IPINTERFACE_ROW de la interfaz asociada. Un controlador puede recuperar la métrica de interfaz llamando a la función GetIpInterfaceEntry .
Los miembros Age y Origin de la estructura MIB_IPFORWARD_ROW2 a los que apunta el parámetro Row se omiten cuando se llama a la función CreateIpForwardEntry2 . Estos miembros se establecen mediante la pila de red y no se pueden establecer mediante la función CreateIpForwardEntry2 .
Se produce un error en la función CreateIpForwardEntry2 si los miembros DestinationPrefix y NextHop de la estructura MIB_IPFORWARD_ROW2 a la que apunta el parámetro Row son un duplicado de una entrada de ruta IP existente en la interfaz especificada en los miembros InterfaceLuid o InterfaceIndex .
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 |