Compartilhar via


Função RtmCreateDestEnum (rtmv2.h)

A função RtmCreateDestEnum inicia uma enumeração dos destinos na tabela de roteamento. Um cliente pode enumerar destinos para uma ou mais exibições ou para todas as exibições.

Sintaxe

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

Manipule para o cliente obtido de uma chamada anterior para RtmRegisterEntity.

[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 todas as exibições. Esse é o valor padrão.
RTM_VIEW_MASK_UCAST
Retornar destinos do modo de exibição unicast.
RTM_VIEW_MASK_MCAST
Retornar destinos do modo de exibição multicast.

[in] EnumFlags

Especifica quais destinos incluir na enumeração. Dois conjuntos de sinalizadores são usados; use um sinalizador de cada conjunto (por exemplo, use RTM_ENUM_ALL_DESTS e RTM_ENUM_START).

Constante Significado
RTM_ENUM_ALL_DESTS
Retornar todos os destinos.
RTM_ENUM_OWN_DESTS
Retornar destinos para os quais o cliente possui a melhor rota para um destino em qualquer uma das exibições especificadas.
 
Constante Significado
RTM_ENUM_NEXT
Enumerar destinos começando no comprimento de endereço/máscara especificado (como 8/10). A enumeração continua até o final da tabela de roteamento.
RTM_ENUM_RANGE
Enumerar destinos no intervalo especificado pelo comprimento de endereço/máscara (como 10/8).
RTM_ENUM_START
Enumerar destinos a partir de 0/0. Especifique NULL para NetAddress.

[in] NetAddress

Ponteiro para uma estrutura RTM_NET_ADDRESS que contém o endereço inicial da enumeração. Especifique NULL se EnumFlags contiver RTM_ENUM_START.

[in] ProtocolId

Especifica o identificador de protocolo usado para determinar as melhores informações de rota retornadas pela função RtmGetEnumDests . O ProtocolID não faz parte dos critérios de pesquisa. O gerenciador de tabelas de roteamento usa esse identificador para determinar quais informações de rota devem ser retornadas (por exemplo, se um cliente especificar o identificador de protocolo RIP, a melhor rota RIP será retornada, mesmo que uma rota não RIP seja a melhor rota para o destino).

Especifique RTM_BEST_PROTOCOL para retornar uma rota, independentemente de qual protocolo a possui. Especifique RTM_THIS_PROTOCOL para retornar a melhor rota para o protocolo de chamada.

[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 RtmGetEnumDests, RtmReleaseDests 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 seguintes códigos de erro.

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, destinos no intervalo 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 Todos os Destinos.

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

RtmDeleteEnumHandle

RtmGetEnumDests

RtmReleaseDests