Поделиться через


Функция RtmGetMostSpecificDestination (rtmv2.h)

Функция RtmGetMostSpecificDestination выполняет поиск назначения в таблице маршрутизации с точным совпадением для указанного сетевого адреса и маски подсети; Если точное совпадение не найдено, сопоставляется лучший префикс. Возвращается информация о назначении.

Синтаксис

DWORD RtmGetMostSpecificDestination(
  [in]  RTM_ENTITY_HANDLE RtmRegHandle,
  [in]  PRTM_NET_ADDRESS  DestAddress,
  [in]  ULONG             ProtocolId,
  [in]  RTM_VIEW_SET      TargetViews,
  [out] PRTM_DEST_INFO    DestInfo
);

Параметры

[in] RtmRegHandle

Дескриптор клиента, полученного из предыдущего вызова RtmRegisterEntity.

[in] DestAddress

Указатель на адрес целевой сети.

[in] ProtocolId

Указывает идентификатор протокола. ProtocolID не является частью условий поиска. Диспетчер таблиц маршрутизации использует этот идентификатор для определения возвращаемых сведений о маршруте. Например, если клиент указывает идентификатор протокола RIP, возвращается лучший маршрут RIP, даже если маршрут, отличный от RIP, является лучшим маршрутом к месту назначения.

Укажите RTM_BEST_PROTOCOL для возврата маршрута независимо от того, какой протокол ему принадлежит. Укажите RTM_THIS_PROTOCOL, чтобы вернуть наилучший маршрут для протокола вызова.

[in] TargetViews

Указывает представления, из которых возвращаются сведения. Если клиент указывает RTM_VIEW_MASK_ANY, сведения о назначении возвращаются из всех представлений; однако сведения, относящиеся к представлению, не возвращаются.

[out] DestInfo

На входных данных DestInfo является указателем на структуру RTM_DEST_INFO .

В выходных данных DestInfo заполняется запрошенными сведениями о назначении.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет NO_ERROR.

Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.

Значение Значение
ERROR_INVALID_HANDLE
Недопустимый дескриптор.
ERROR_NOT_FOUND
Указанное назначение не найдено.
 
 

Комментарии

Структура DestInfo — это структура переменной величины. Если клиент указывает несколько представлений с TargetViews, размер DestInfo увеличивается для каждого представления. Используйте макрос RTM_SIZE_OF_DEST_INFO , чтобы определить объем памяти, выделяемой для структуры DestInfo , перед вызовом этой функции. Используйте значение, указанное для TargetViews , в качестве параметра для RTM_SIZE_OF_DEST_INFO.

Пример кода, использующий эту функцию, см. в разделе Поиск маршрутов с помощью дерева префиксов.

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header rtmv2.h
Библиотека Rtm.lib
DLL Rtm.dll

См. также раздел

RTM_DEST_INFO

RTM_NET_ADDRESS

RtmGetExactMatchDestination

RtmGetExactMatchRoute

RtmGetLessSpecificDestination

RtmIsBestRoute