Функция RtmGetLessSpecificDestination (rtmv2.h)
Функция RtmGetLessSpecificDestination выполняет поиск в таблице маршрутизации назначения с префиксом следующего наилучшего соответствия (самый длинный) с учетом префикса назначения. Возвращается запрошенная информация о назначении.
Синтаксис
DWORD RtmGetLessSpecificDestination(
[in] RTM_ENTITY_HANDLE RtmRegHandle,
[in] RTM_DEST_HANDLE DestHandle,
[in] ULONG ProtocolId,
[in] RTM_VIEW_SET TargetViews,
[out] PRTM_DEST_INFO DestInfo
);
Параметры
[in] RtmRegHandle
Дескриптор клиента, полученного из предыдущего вызова RtmRegisterEntity.
[in] DestHandle
Дескриптор назначения.
[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.
Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.
Значение | Значение |
---|---|
|
Параметр содержит неверные сведения. |
|
Не удается найти следующее лучшее место назначения. |
Комментарии
Параметр DestInfo представляет собой структуру RTM_DEST_INFO переменной величины. Если клиент указывает несколько представлений с помощью TargetViews, размер DestInfo увеличивается для каждого представления. Используйте макрос RTM_SIZE_OF_DEST_INFO , чтобы определить объем памяти, выделяемой для структуры DestInfo , перед вызовом этой функции. Используйте значение, указанное для TargetViews , в качестве параметра для RTM_SIZE_OF_DEST_INFO.
Функция RtmGetLessSpecificDestination используется после вызова RtmGetMostSpecificDestination для возврата следующего наилучшего соответствия для назначения. Этот вызов также используется после предыдущего вызова RtmGetLessSpecificDestination для возврата следующего последовательного менее конкретного совпадения. Клиенты могут использовать эту функцию для "прохода" по дереву префикса для назначения.
Этот вызов также используется после вызовов функций, возвращающих структуру RTM_DEST_INFO , например RtmGetDestInfo и RtmGetChangedDests.
Функция RtmGetLessSpecificDestination возвращает совпадения , пока не достигнет маршрута по умолчанию, если он существует. После обнаружения маршрута по умолчанию RtmGetLessSpecificDestination возвращает ERROR_NOT_FOUND.
Одной из распространенных функций RtmGetLessSpecificDestination и RtmGetMostSpecificDestination является получение каждого из соответствующих назначений.
Пример кода, использующий эту функцию, см. в разделе Поиск маршрутов с помощью дерева префиксов.
Требования
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | rtmv2.h |
Библиотека | Rtm.lib |
DLL | Rtm.dll |