Функция RtmCreateDestEnum (rtmv2.h)
Функция RtmCreateDestEnum запускает перечисление назначений в таблице маршрутизации. Клиент может перечислять назначения для одного или нескольких представлений или для всех представлений.
Синтаксис
DWORD RtmCreateDestEnum(
[in] RTM_ENTITY_HANDLE RtmRegHandle,
[in] RTM_VIEW_SET TargetViews,
[in] RTM_ENUM_FLAGS EnumFlags,
[in] PRTM_NET_ADDRESS NetAddress,
[in] ULONG ProtocolId,
[out] PRTM_ENUM_HANDLE RtmEnumHandle
);
Параметры
[in] RtmRegHandle
Дескриптор клиента, полученного при предыдущем вызове RtmRegisterEntity.
[in] TargetViews
Задает набор представлений, используемых при создании перечисления. Используются следующие флаги.
[in] EnumFlags
Указывает, какие назначения следует включить в перечисление. Используются два набора флагов; используйте по одному флагу из каждого набора (например, RTM_ENUM_ALL_DESTS и RTM_ENUM_START).
[in] NetAddress
Указатель на структуру RTM_NET_ADDRESS , содержащую начальный адрес перечисления. Укажите значение NULL , если EnumFlags содержит RTM_ENUM_START.
[in] ProtocolId
Указывает идентификатор протокола, используемый для определения наилучших сведений о маршруте, возвращаемых функцией RtmGetEnumDests . ProtocolID не является частью условий поиска. Диспетчер таблиц маршрутизации использует этот идентификатор для определения возвращаемых сведений о маршруте (например, если клиент указывает идентификатор протокола RIP, возвращается лучший маршрут RIP, даже если маршрут, отличный от RIP, является лучшим маршрутом к месту назначения).
Укажите RTM_BEST_PROTOCOL возвращать маршрут независимо от того, какой протокол ему принадлежит. Укажите RTM_THIS_PROTOCOL, чтобы вернуть оптимальный маршрут для протокола вызова.
[out] RtmEnumHandle
На входных данных RtmEnumHandle является указателем на NULL.
В выходных данных RtmEnumHandle получает указатель на дескриптор перечисления. Используйте этот дескриптор во всех последующих вызовах RtmGetEnumDests, RtmReleaseDests и 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 |