Función RtmAddRoute

[Esta API se ha reemplazado por la API del Administrador de tablas de enrutamiento versión 2 y no estará disponible más allá de Windows Server 2003. Las aplicaciones deben usar la API routing Table Manager versión 2.]

La función RtmAddRoute agrega una entrada de ruta o actualiza una entrada de ruta existente.

Sintaxis

DWORD RtmAddRoute(
  _In_  HANDLE ClientHandle,
  _In_  PVOID  Route,
  _In_  DWORD  TimeToLive,
  _Out_ DWORD  Flags,
  _Out_ PVOID  CurBestRoute,
  _Out_ PVOID  PrevBestRoute
);

Parámetros

ClientHandle [in]

Identificador que identifica al cliente y, por lo tanto, el protocolo de enrutamiento, que agregó o actualizó la ruta. Obtenga este identificador llamando a RtmRegisterClient.

Ruta [in]

Puntero a una estructura específica de la familia de protocolos que especifica la ruta nueva o actualizada. El administrador de tablas de enrutamiento usa los siguientes campos para actualizar la tabla de enrutamiento:

Valor Significado
RR_Network
Especifica el número de red de destino.
RR_InterfaceID
Especifica el índice de la interfaz a través de la cual se recibió la ruta.
RR_NextHopAddress
Especifica la dirección del enrutador de próximo salto.
RR_FamilySpecificData
Especifica los datos específicos de la familia de protocolos. Aunque los datos son transparentes para el administrador de tablas de enrutamiento, se considera al comparar rutas para determinar si ha cambiado la información de ruta. Los datos también se usan para establecer valores de métrica que son independientes del protocolo de enrutamiento. Por lo tanto, estos datos se usan para determinar la mejor ruta para la red de destino.
RR_ProtocolSpecificData
Especifica los datos específicos del protocolo de enrutamiento que proporcionó la ruta.
RR_TimeStamp
Especifica la hora actual del sistema. El administrador de tablas de enrutamiento establece este campo.

TimeToLive [in]

Especifica el número de segundos que se debe mantener la ruta especificada en la tabla de enrutamiento. Si este parámetro se establece en INFINITE, la ruta se mantiene hasta que se elimina explícitamente. El límite actual de TimeToLive es 2147483 s (24 días más).

Marcas [out]

Puntero a una variable DWORD . El administrador de tablas de enrutamiento establece el valor de esta variable. El valor indica el tipo del cambio y qué información se devolvió en los búferes proporcionados. Este parámetro es uno de los siguientes.

Marcas Significado
RTM_NO_CHANGE
La adición o actualización no cambió ninguno de los parámetros de ruta significativos o la entrada de ruta afectada no es la mejor ruta entre las entradas de la red de destino.
RTM_ROUTE_ADDED
La ruta se agregó para la red de destino. El parámetro CurBestRoute apunta a la información de la ruta agregada.
RTM_ROUTE_CHANGED
Se cambió al menos uno de los parámetros significativos para la mejor ruta a la red de destino. Los parámetros significativos son:
Identificador de protocolo
Índice de interfaz
Dirección del próximo salto
Datos específicos de la familia de protocolos (incluidas las métricas de ruta)

El parámetro PrevBestRoute apunta a la información de ruta tal como estaba antes del cambio. El parámetro CurBestRoute apunta a la información de ruta actual (es decir, después del cambio).

CurBestRoute [out]

Puntero a una estructura que recibe la información de la mejor ruta actual, si existe. El tipo de la estructura es específico de la familia de protocolos, por ejemplo, IP o IPX.

Este parámetro es opcional. Si el autor de la llamada especifica NULL para este parámetro, no se devuelve la información de la mejor ruta actual.

PrevBestRoute [out]

Puntero a una estructura que recibe la información de la mejor ruta anterior, si existe. El tipo de la estructura es específico de la familia de protocolos, por ejemplo, IP o IPX.

Este parámetro es opcional. Si el autor de la llamada especifica NULL para este parámetro, no se devuelve la información de la mejor ruta anterior.

Valor devuelto

El valor devuelto es uno de los siguientes códigos.

Valor Descripción
NO_ERROR
La ruta se agregó o actualizó correctamente.
ERROR_INVALID_HANDLE
El parámetro de identificador de cliente no es un identificador válido.
ERROR_INVALID_PARAMETER
La estructura de ruta contiene un parámetro no válido.
ERROR_NO_SYSTEM_RESOURCES
No hay recursos suficientes para llevar a cabo la operación.
ERROR_NOT_ENOUGH_MEMORY
No hay memoria suficiente para asignar la entrada de ruta.

Observaciones

La función genera un mensaje de cambio de ruta si la mejor ruta a una red de destino ha cambiado como resultado de esta operación. Sin embargo, el mensaje de cambio de ruta no se envía al cliente que realiza esta llamada. En su lugar, esta función devuelve información relevante directamente a ese cliente a través de los parámetros Flags, CurBestRoute y PrevBestRoute .

Requisitos

Requisito Value
Cliente mínimo compatible
No se admite ninguno
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Fin de compatibilidad de servidor
Windows Server 2003
Encabezado
Rtm.h
Biblioteca
Rtm.lib
Archivo DLL
Rtm.dll

Vea también

Referencia del Administrador de tablas de enrutamiento versión 1

Funciones del Administrador de tablas de enrutamiento versión 1

RtmDeleteRoute

RtmDequeueRouteChangeMessage