Compartilhar via


Função RtmCreateRouteEnum (rtmv2.h)

A função RtmCreateRouteEnum cria uma enumeração das rotas para um determinado destino ou intervalo de destinos na tabela de roteamento. Um cliente pode enumerar rotas para uma ou mais exibições ou para todos os modos de exibição.

Sintaxe

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 o cliente obtido de uma chamada anterior para RtmRegisterEntity.

[in] DestHandle

Manipule para o destino para o qual enumerar rotas. Esse parâmetro é opcional e pode ser definido como NULL; especificar NULL enumera todas as rotas para todos os destinos. Especifique NULL se EnumFlags contiver RTM_ENUM_START.

[in] TargetViews

Especifica o conjunto de exibições a ser usado ao criar a enumeração . Os sinalizadores a seguir são usados.

Constante Significado
RTM_VIEW_MASK_ANY
Retornar destinos de todos os modos de exibição. Esse é o valor padrão.
RTM_VIEW_MASK_UCAST
Retornar destinos do modo de exibição unicast.
RTM_VIEW_MASK_MCAST
Retornar destinos da exibição multicast.

[in] EnumFlags

Especifica quais rotas incluir na enumeração . Dois conjuntos de sinalizadores são usados; use um sinalizador de cada conjunto (como RTM_ENUM_ALL_ROUTES e RTM_ENUM_START).

Constante Significado
RTM_ENUM_ALL_ROUTES
Retornar todas as rotas.
RTM_ENUM_OWN_ROUTES
Retornar somente as rotas que o cliente possui.
 
Constante Significado
RTM_ENUM_NEXT
Enumerar rotas começando no comprimento de endereço/máscara especificado (como 10/8). A enumeração continua até o final da tabela de roteamento.
RTM_ENUM_RANGE
Enumerar rotas no intervalo especificado especificado pelo comprimento de endereço/máscara (como 10/8).
RTM_ENUM_START
Enumerar rotas a partir de 0/0. Especifique NULL para NetAddress.

[in] StartDest

Ponteiro para uma estrutura RTM_NET_ADDRESS que contém o endereço inicial da enumeração. Esse parâmetro será ignorado se EnumFlags contiver RTM_ENUM_START.

[in] MatchingFlags

Especifica os elementos da rota a serem correspondidos. Somente as rotas que correspondem aos critérios especificados em CriteriaRoute e CriteriaInterface são retornadas, a menos que indicado de outra forma. Os sinalizadores a seguir são usados.

Constante Significado
RTM_MATCH_FULL
Corresponder rotas com todos os critérios.
RTM_MATCH_INTERFACE
Corresponder rotas que estão na mesma interface. O cliente pode especificar NULL para CriteriaRoute.
RTM_MATCH_NEIGHBOUR
Corresponder rotas com o mesmo vizinho.
RTM_MATCH_NEXTHOP
Corresponder rotas que têm o mesmo próximo salto.
RTM_MATCH_NONE
Não corresponde a nenhum dos critérios; todas as rotas para o destino são retornadas. O parâmetro CriteriaRoute será ignorado se esse sinalizador estiver definido.
RTM_MATCH_OWNER
Corresponder rotas com o mesmo proprietário.
RTM_MATCH_PREF
Corresponder rotas que têm a mesma preferência.

[in] CriteriaRoute

Especifica quais rotas enumerar. Esse parâmetro é opcional e pode ser definido como NULL se MatchingFlags contiver RTM_MATCH_INTERFACE ou RTM_MATCH_NONE.

[in] CriteriaInterface

Ponteiro para um ULONG que especifica em quais interfaces as rotas devem estar localizadas. Esse parâmetro é ignorado, a menos que MatchingFlags contenha RTM_MATCH_INTERFACE.

[out] RtmEnumHandle

Na entrada, RtmEnumHandle é um ponteiro para NULL.

Na saída, RtmEnumHandle recebe um ponteiro para um identificador para a enumeração. Use esse identificador em todas as chamadas subsequentes para RtmGetEnumRoutes, RtmReleaseRoutes e RtmDeleteEnumHandle.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos códigos de erro a seguir.

Valor Significado
ERROR_INVALID_PARAMETER
Um parâmetro contém informações incorretas.
ERROR_NOT_ENOUGH_MEMORY
Não há memória suficiente para concluir essa operação.
ERROR_NOT_SUPPORTED
Não há suporte para uma ou mais das exibições especificadas.
 
 

Comentários

Se EnumFlags contiver RTM_ENUM_RANGE, use NetAddress para especificar o intervalo da tabela de roteamento a ser enumerada. Por exemplo, se um cliente definir NetAddress como 10/8, os destinos no intervalo de 10.0.0.0/8 a 10.255.255.255/32 serão retornados.

Quando o identificador de enumeração não for mais necessário, libere-o chamando RtmDeleteEnumHandle.

Para obter o código de exemplo que usa essa função, consulte Enumerar Todas as Rotas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Nenhum compatível
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho rtmv2.h
Biblioteca Rtm.lib
DLL Rtm.dll

Confira também

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmDeleteEnumHandle

RtmGetEnumRoutes

RtmReleaseRoutes