Compartir a través de


Función RtmCreateDestEnum (rtmv2.h)

La función RtmCreateDestEnum inicia una enumeración de los destinos de la tabla de enrutamiento. Un cliente puede enumerar destinos para una o varias vistas, o para todas las vistas.

Sintaxis

DWORD RtmCreateDestEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  NetAddress,
  [in]  ULONG             ProtocolId,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

Parámetros

[in] RtmRegHandle

Identificador para el cliente obtenido de una llamada anterior a RtmRegisterEntity.

[in] TargetViews

Especifica el conjunto de vistas que se van a usar al crear la enumeración. Se usan las marcas siguientes.

Constante Significado
RTM_VIEW_MASK_ANY
Devuelve destinos de todas las vistas. Este es el valor predeterminado.
RTM_VIEW_MASK_UCAST
Devuelve destinos de la vista de unidifusión.
RTM_VIEW_MASK_MCAST
Devuelve destinos de la vista de multidifusión.

[in] EnumFlags

Especifica los destinos que se van a incluir en la enumeración. Se usan dos conjuntos de marcas; use una marca de cada conjunto (por ejemplo, use RTM_ENUM_ALL_DESTS y RTM_ENUM_START).

Constante Significado
RTM_ENUM_ALL_DESTS
Devuelve todos los destinos.
RTM_ENUM_OWN_DESTS
Devuelve destinos para los que el cliente posee la mejor ruta a un destino en cualquiera de las vistas especificadas.
 
Constante Significado
RTM_ENUM_NEXT
Enumera los destinos a partir de la longitud especificada de la dirección/máscara (por ejemplo, 10/8). La enumeración continúa hasta el final de la tabla de enrutamiento.
RTM_ENUM_RANGE
Enumerar destinos en el intervalo especificado por la longitud de dirección/máscara (por ejemplo, 10/8).
RTM_ENUM_START
Enumerar destinos a partir del 0/0. Especifique NULL para NetAddress.

[in] NetAddress

Puntero a una estructura de RTM_NET_ADDRESS que contiene la dirección inicial de la enumeración. Especifique NULL si EnumFlags contiene RTM_ENUM_START.

[in] ProtocolId

Especifica el identificador de protocolo utilizado para determinar la mejor información de ruta devuelta por la función RtmGetEnumDests . ProtocolID no forma parte de los criterios de búsqueda. El administrador de tablas de enrutamiento usa este identificador para determinar qué información de ruta devolver (por ejemplo, si un cliente especifica el identificador del protocolo RIP, se devuelve la mejor ruta RIP, incluso si una ruta que no es RIP es la mejor ruta al destino).

Especifique RTM_BEST_PROTOCOL para devolver una ruta independientemente del protocolo que lo posee. Especifique RTM_THIS_PROTOCOL para devolver la mejor ruta para el protocolo de llamada.

[out] RtmEnumHandle

En la entrada, RtmEnumHandle es un puntero a NULL.

En la salida, RtmEnumHandle recibe un puntero a un identificador de la enumeración. Use este identificador en todas las llamadas posteriores a RtmGetEnumDests, RtmReleaseDests y RtmDeleteEnumHandle.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es NO_ERROR.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Valor Significado
ERROR_INVALID_PARAMETER
Un parámetro contiene información incorrecta.
ERROR_NOT_ENOUGH_MEMORY
No hay suficiente memoria para completar esta operación.
ERROR_NOT_SUPPORTED
No se admite una o varias de las vistas especificadas.

Comentarios

Si EnumFlags contiene RTM_ENUM_RANGE, use NetAddress para especificar el intervalo de la tabla de enrutamiento que se va a enumerar. Por ejemplo, si un cliente establece NetAddress en 10/8, se devuelven destinos del intervalo 10.0.0.0/8 a 10.255.255.255/32.

Cuando el identificador de enumeración ya no sea necesario, ábralo llamando a RtmDeleteEnumHandle.

Para obtener código de ejemplo con esta función, vea Enumerar todos los destinos.

Requisitos

Requisito Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado rtmv2.h
Library Rtm.lib
Archivo DLL Rtm.dll

Consulte también

RTM_NET_ADDRESS

RtmDeleteEnumHandle

RtmGetEnumDests

RtmReleaseDests