Ler em inglês

Compartilhar via


Função RtmAddRoute

[Essa API foi substituída pela API do Gerenciador de Tabelas de Roteamento versão 2 e não estará disponível além do Windows Server 2003. Os aplicativos devem usar a API do Gerenciador de Tabelas de Roteamento versão 2.]

A função RtmAddRoute adiciona uma entrada de rota ou atualiza uma entrada de rota existente.

Sintaxe

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 o cliente e, portanto, o protocolo de roteamento, que adicionou ou atualizou a rota. Obtenha esse identificador chamando RtmRegisterClient.

Rotear [in]

Ponteiro para uma estrutura específica da família de protocolos que especifica a rota nova ou atualizada. Os campos a seguir são usados pelo gerenciador de tabelas de roteamento para atualizar a tabela de roteamento:

Valor Significado
RR_Network
Especifica o número da rede de destino.
RR_InterfaceID
Especifica o índice da interface pela qual a rota foi recebida.
RR_NextHopAddress
Especifica o endereço do roteador do próximo salto.
RR_FamilySpecificData
Especifica dados específicos para a família de protocolos. Embora os dados sejam transparentes para o gerenciador de tabelas de roteamento, eles são considerados ao comparar rotas para determinar se as informações de rota foram alteradas. Os dados também são usados para definir valores de métrica que são independentes do protocolo de roteamento. Consequentemente, esses dados são usados para determinar a melhor rota para a rede de destino.
RR_ProtocolSpecificData
Especifica dados específicos para o protocolo de roteamento que forneceu a rota.
RR_TimeStamp
Especifica a hora atual do sistema. Esse campo é definido pelo gerenciador de tabelas de roteamento.

TimeToLive [in]

Especifica o número de segundos que a rota especificada deve ser mantida na tabela de roteamento. Se esse parâmetro for definido como INFINITE, a rota será mantida até que seja excluída explicitamente. O limite atual para TimeToLive é 2147483 s (mais de 24 dias).

Sinalizadores [out]

Ponteiro para uma variável DWORD . O valor dessa variável é definido pelo gerenciador de tabelas de roteamento. O valor indica o tipo da alteração e quais informações foram retornadas nos buffers fornecidos. Esse parâmetro é um dos seguintes.

Flags Significado
RTM_NO_CHANGE
A adição ou atualização não alterou nenhum dos parâmetros de rota significativos ou a entrada de rota afetada não é a melhor rota entre as entradas para a rede de destino.
RTM_ROUTE_ADDED
A rota foi adicionada para a rede de destino. O parâmetro CurBestRoute aponta para as informações da rota adicionada.
RTM_ROUTE_CHANGED
Pelo menos um dos parâmetros significativos foi alterado para a melhor rota para a rede de destino. Os parâmetros significativos são:
Identificador de protocolo
Índice de interface
Endereço do próximo salto
Dados específicos da família de protocolos (incluindo métricas de rota)

O parâmetro PrevBestRoute aponta para as informações de rota como eram antes da alteração. O parâmetro CurBestRoute aponta para as informações de rota atuais (ou seja, após a alteração).

CurBestRoute [out]

Ponteiro para uma estrutura que recebe as informações atuais de melhor rota, se houver. O tipo da estrutura é específico para a família de protocolos, por exemplo, IP ou IPX.

Esse parâmetro é opcional. Se o chamador especificar NULL para esse parâmetro, as informações de melhor rota atuais não serão retornadas.

PrevBestRoute [out]

Ponteiro para uma estrutura que recebe as informações de melhor rota anteriores, se houver. O tipo da estrutura é específico para a família de protocolos, por exemplo, IP ou IPX.

Esse parâmetro é opcional. Se o chamador especificar NULL para esse parâmetro, as informações de melhor rota anteriores não serão retornadas.

Valor retornado

O valor retornado é um dos códigos a seguir.

Valor Descrição
NO_ERROR
A rota foi adicionada ou atualizada com êxito.
ERROR_INVALID_HANDLE
O parâmetro de identificador do cliente não é um identificador válido.
ERROR_INVALID_PARAMETER
A estrutura de rota contém um parâmetro inválido.
ERROR_NO_SYSTEM_RESOURCES
Não há recursos suficientes para executar a operação.
ERROR_NOT_ENOUGH_MEMORY
Não há memória suficiente para alocar a entrada de rota.

Comentários

A função gerará uma mensagem de alteração de rota se a melhor rota para uma rede de destino tiver sido alterada como resultado dessa operação. No entanto, a mensagem de alteração de rota não é enviada ao cliente que faz essa chamada. Em vez disso, as informações relevantes são retornadas por essa função diretamente para esse cliente por meio dos parâmetros Flags, CurBestRoute e PrevBestRoute .

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]
Fim do suporte ao servidor
Windows Server 2003
Cabeçalho
Rtm.h
Biblioteca
Rtm.lib
DLL
Rtm.dll

Confira também

Referência do Gerenciador de Tabelas de Roteamento versão 1

Funções do Gerenciador de Tabelas de Roteamento Versão 1

RtmDeleteRoute

RtmDequeueRouteChangeMessage