Compartir a través de


Función RtmCreateRouteEnum (rtmv2.h)

La función RtmCreateRouteEnum crea una enumeración de las rutas para un destino determinado o intervalo de destinos en la tabla de enrutamiento. Un cliente puede enumerar rutas para una o varias vistas, o para todas las vistas.

Sintaxis

DWORD RtmCreateRouteEnum(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  RTM_DEST_HANDLE   DestHandle,
  [in]  RTM_VIEW_SET      TargetViews,
  [in]  RTM_ENUM_FLAGS    EnumFlags,
  [in]  PRTM_NET_ADDRESS  StartDest,
  [in]  RTM_MATCH_FLAGS   MatchingFlags,
  [in]  PRTM_ROUTE_INFO   CriteriaRoute,
  [in]  ULONG             CriteriaInterface,
  [out] PRTM_ENUM_HANDLE  RtmEnumHandle
);

Parámetros

[in] RtmRegHandle

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

[in] DestHandle

Controle el destino para el que se van a enumerar las rutas. Este parámetro es opcional y se puede establecer en NULL; al especificar NULL se enumeran todas las rutas de todos los destinos. Especifique NULL si EnumFlags contiene RTM_ENUM_START.

[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 las rutas que se van a incluir en la enumeración. Se usan dos conjuntos de marcas; use una marca de cada conjunto (como RTM_ENUM_ALL_ROUTES y RTM_ENUM_START).

Constante Significado
RTM_ENUM_ALL_ROUTES
Devuelve todas las rutas.
RTM_ENUM_OWN_ROUTES
Devuelve solo las rutas que posee el cliente.
 
Constante Significado
RTM_ENUM_NEXT
Enumerar las rutas 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 rutas en el intervalo especificado especificado por la longitud de dirección/máscara (por ejemplo, 10/8).
RTM_ENUM_START
Enumerar rutas a partir del 0/0. Especifique NULL para NetAddress.

[in] StartDest

Puntero a una estructura de RTM_NET_ADDRESS que contiene la dirección inicial de la enumeración. Este parámetro se omite si EnumFlags contiene RTM_ENUM_START.

[in] MatchingFlags

Especifica los elementos de la ruta que se van a buscar coincidencias. Solo se devuelven las rutas que coinciden con los criterios especificados en CriteriaRoute y CriteriaInterface , a menos que se indique lo contrario. Se usan las marcas siguientes.

Constante Significado
RTM_MATCH_FULL
Hacer coincidir las rutas con todos los criterios.
RTM_MATCH_INTERFACE
Coincide con las rutas que se encuentran en la misma interfaz. El cliente puede especificar NULL para CriteriaRoute.
RTM_MATCH_NEIGHBOUR
Coincide con las rutas con el mismo vecino.
RTM_MATCH_NEXTHOP
Coincide con las rutas que tienen el mismo próximo salto.
RTM_MATCH_NONE
No coinciden con ninguno de los criterios; se devuelven todas las rutas para el destino. El parámetro CriteriaRoute se omite si se establece esta marca.
RTM_MATCH_OWNER
Hacer coincidir las rutas con el mismo propietario.
RTM_MATCH_PREF
Coincide con las rutas que tienen la misma preferencia.

[in] CriteriaRoute

Especifica las rutas que se van a enumerar. Este parámetro es opcional y se puede establecer en NULL si MatchingFlags contiene RTM_MATCH_INTERFACE o RTM_MATCH_NONE.

[in] CriteriaInterface

Puntero a un ULONG que especifica en qué interfaces deben ubicarse las rutas. Este parámetro se omite a menos que MatchingFlags contenga RTM_MATCH_INTERFACE.

[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 RtmGetEnumRoutes, RtmReleaseRoutes 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 todas las rutas.

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

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes