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.
DWORD RtmAddRoute(
_In_ HANDLE ClientHandle,
_In_ PVOID Route,
_In_ DWORD TimeToLive,
_Out_ DWORD Flags,
_Out_ PVOID CurBestRoute,
_Out_ PVOID PrevBestRoute
);
-
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.
O valor retornado é um dos códigos a seguir.
Valor | Descrição |
---|---|
|
A rota foi adicionada ou atualizada com êxito. |
|
O parâmetro de identificador do cliente não é um identificador válido. |
|
A estrutura de rota contém um parâmetro inválido. |
|
Não há recursos suficientes para executar a operação. |
|
Não há memória suficiente para alocar a entrada de rota. |
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 .
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 |
|
Biblioteca |
|
DLL |
|