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


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

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

Синтаксис

DWORD RtmGetExactMatchRoute(
  [in]      RTM_ENTITY_HANDLE RtmRegHandle,
  [in]      PRTM_NET_ADDRESS  DestAddress,
  [in]      RTM_MATCH_FLAGS   MatchingFlags,
  [in, out] PRTM_ROUTE_INFO   RouteInfo,
  [in]      ULONG             InterfaceIndex,
  [in]      RTM_VIEW_SET      TargetViews,
  [out]     PRTM_ROUTE_HANDLE RouteHandle
);

Параметры

[in] RtmRegHandle

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

[in] DestAddress

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

[in] MatchingFlags

Указывает критерии, используемые при поиске маршрута. Используются следующие флаги.

Константа Значение
RTM_MATCH_FULL
Сопоставление маршрутов со всеми критериями.
RTM_MATCH_INTERFACE
Сопоставление маршрутов, которые находятся в одном интерфейсе.
RTM_MATCH_NEIGHBOUR
Сопоставление маршрутов с тем же соседом.
RTM_MATCH_NEXTHOP
Сопоставлять маршруты, имеющие тот же следующий прыжок.
RTM_MATCH_NONE
Не соответствует ни одному из критериев; Возвращаются все маршруты для назначения.
RTM_MATCH_OWNER
Сопоставление маршрутов с тем же владельцем.
RTM_MATCH_PREF
Сопоставление маршрутов с одинаковыми предпочтениями.

[in, out] RouteInfo

Во входных данных RouteInfo — это указатель RTM_ROUTE_INFO структуры, содержащей критерии, определяющие искать маршрут.

В выходных данных RouteInfo получает сведения о маршруте, соответствующие условиям.

[in] InterfaceIndex

Если RTM_MATCH_INTERFACE указан в параметре MatchingFlags, InterfaceIndex указывает интерфейс, на котором должен присутствовать маршрут (то есть маршрут имеет следующий прыжок в этом интерфейсе).

[in] TargetViews

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

[out] RouteHandle

Если необходимо вернуть дескриптор: На входных данных RouteHandle является указателем на NULL.

В выходных данных RouteHandle получает указатель на дескриптор маршрута; в противном случае RouteHandle остается без изменений.

Если дескриптор не требуется возвращать: на входных данных RouteHandle имеет значение NULL.

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

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

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

Значение Значение
ERROR_NOT_FOUND
Указанный маршрут не найден.
 
 

Комментарии

Рассмотрите возможность использования RtmGetExactMatchDestination , если в параметре MatchingFlags не указаны критерии сопоставления маршрутов.

Для сопоставления маршрута используются следующие элементы структуры RTM_ROUTE_INFO , передаваемой в параметре RouteInfo :

  • Соседи
  • NextHopsList
  • PrefInfo
  • RouteOwner

Требования

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

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

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmGetExactMatchDestination

RtmGetLessSpecificDestination

RtmGetMostSpecificDestination

RtmIsBestRoute