Функция RtmCreateRouteEnum (rtmv2.h)
Функция RtmCreateRouteEnum создает перечисление маршрутов для определенного назначения или диапазона назначений в таблице маршрутизации. Клиент может перечислять маршруты для одного или нескольких представлений или для всех представлений.
Синтаксис
DWORD RtmCreateRouteEnum(
[in] RTM_ENTITY_HANDLE RtmRegHandle,
[in] RTM_DEST_HANDLE DestHandle,
[in] RTM_VIEW_SET TargetViews,
[in] RTM_ENUM_FLAGS EnumFlags,
[in] PRTM_NET_ADDRESS StartDest,
[in] RTM_MATCH_FLAGS MatchingFlags,
[in] PRTM_ROUTE_INFO CriteriaRoute,
[in] ULONG CriteriaInterface,
[out] PRTM_ENUM_HANDLE RtmEnumHandle
);
Параметры
[in] RtmRegHandle
Дескриптор клиента, полученного из предыдущего вызова RtmRegisterEntity.
[in] DestHandle
Дескриптор назначения, для которого необходимо перечислить маршруты. Этот параметр является необязательным и может иметь значение NULL; при указании ЗНАЧЕНИЯ NULL перечисляются все маршруты для всех назначений. Укажите ЗНАЧЕНИЕ NULL , если EnumFlags содержит RTM_ENUM_START.
[in] TargetViews
Задает набор представлений, используемых при создании перечисления. Используются следующие флаги.
[in] EnumFlags
Указывает маршруты для включения в перечисление. Используются два набора флагов; используйте по одному флагу из каждого набора (например, RTM_ENUM_ALL_ROUTES и RTM_ENUM_START).
Константа | Значение |
---|---|
|
Возвращает все маршруты. |
|
Возвращает только те маршруты, которыми владеет клиент. |
[in] StartDest
Указатель на структуру RTM_NET_ADDRESS , содержащую начальный адрес перечисления. Этот параметр игнорируется, если EnumFlags содержит RTM_ENUM_START.
[in] MatchingFlags
Задает элементы маршрута для сопоставления. Возвращаются только маршруты, соответствующие условиям, указанным в CriteriaRoute и CriteriaInterface , если не указано иное. Используются следующие флаги.
[in] CriteriaRoute
Указывает маршруты для перечисления. Этот параметр является необязательным и может иметь значение NULL , если matchingFlags содержит RTM_MATCH_INTERFACE или RTM_MATCH_NONE.
[in] CriteriaInterface
Указатель на ULONG , указывающий, на каких интерфейсах должны находиться маршруты. Этот параметр игнорируется, если параметр MatchingFlags не содержит RTM_MATCH_INTERFACE.
[out] RtmEnumHandle
На входных данных RtmEnumHandle является указателем на NULL.
В выходных данных RtmEnumHandle получает указатель на дескриптор перечисления . Используйте этот дескриптор во всех последующих вызовах RtmGetEnumRoutes, RtmReleaseRoutes и RtmDeleteEnumHandle.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение будет NO_ERROR.
Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.
Значение | Значение |
---|---|
|
Параметр содержит неверные сведения. |
|
Недостаточно памяти для выполнения этой операции. |
|
Одно или несколько указанных представлений не поддерживаются. |
Комментарии
Если EnumFlags содержит RTM_ENUM_RANGE, используйте NetAddress , чтобы указать диапазон таблицы маршрутизации для перечисления. Например, если клиент устанавливает для NetAddress значение 10/8, возвращаются назначения в диапазоне от 10.0.0.0/8 до 10.255.255.255/32.
Если дескриптор перечисления больше не требуется, отпустите его, вызвав RtmDeleteEnumHandle.
Пример кода, использующий эту функцию, см. в разделе Перечисление всех маршрутов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | rtmv2.h |
Библиотека | Rtm.lib |
DLL | Rtm.dll |