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


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

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

Синтаксис

DWORD RtmAddNextHop(
  [in]      RTM_ENTITY_HANDLE         RtmRegHandle,
  [in]      PRTM_NEXTHOP_INFO         NextHopInfo,
  [in, out] PRTM_NEXTHOP_HANDLE       NextHopHandle,
  [out]     PRTM_NEXTHOP_CHANGE_FLAGS ChangeFlags
);

Параметры

[in] RtmRegHandle

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

[in] NextHopInfo

Указатель на структуру, содержащую сведения, определяющие следующий прыжок для добавления или обновления. Элементы NextHopOwner и State игнорируются; эти элементы задаются диспетчером таблиц маршрутизации. Элемент Flags может иметь одно из следующих значений.

Flag Значение
RTM_NEXTHOP_FLAGS_REMOTE
Следующий прыжок указывает на удаленный пункт назначения, который недоступен напрямую. Чтобы получить полный путь, клиент должен выполнить рекурсивный поиск.
RTM_NEXTHOP_FLAGS_DOWN
Этот флаг зарезервирован для использования в будущем.

[in, out] NextHopHandle

Если у клиента есть дескриптор (клиент обновляет следующий прыжок): при входе NextHopHandle является указателем на дескриптор следующего прыжка. В выходных данных NextHopHandle не изменяется.

Если у клиента нет дескриптора и должен быть возвращен дескриптор (клиент добавляет или обновляет следующий прыжок): При входе NextHopHandle является указателем на NULL. В выходных данных NextHopHandle получает указатель на дескриптор следующего прыжка. Значения в NextHopInfo используются для определения следующего прыжка для обновления.

Если дескриптор не требуется возвращать (клиент добавляет или обновляет следующий прыжок): на входных данных NextHopHandle имеет значение NULL. Значения в NextHopInfo используются для определения следующего прыжка для обновления.

[out] ChangeFlags

Во входных данных ChangeFlags является указателем на тип данных RTM_NEXTHOP_CHANGE_FLAGS .

В выходных данных ChangeFlags получает флаг, указывающий, был ли добавлен или обновлен следующий прыжок. Если значение ChangeFlags равно нулю, был обновлен следующий прыжок; Если параметр ChangeFlagsRTM_NEXTHOP_CHANGE_NEW, добавлен следующий прыжок.

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

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

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

Значение Значение
ERROR_ACCESS_DENIED
Вызывающий клиент не владеет этим следующим прыжком.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти для выполнения этой операции.
 
 

Комментарии

Если NextHopHandle указывает на дескриптор, отличный от NULL , обновляется следующий прыжок, указанный дескриптором. В противном случае выполняется поиск по адресу, указанному в NextHopInfo. Если найден следующий прыжок, он обновляется. Если совпадение не найдено, добавляется новый следующий прыжок.

Если дескриптор был возвращен, отпустите дескриптор, когда он больше не требуется, вызвав RtmReleaseNextHops.

Требования

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

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

Флаги следующего прыжка

RTM_NEXTHOP_INFO

RtmDeleteNextHop

RtmFindNextHop

RtmGetNextHopPointer

RtmLockNextHop

RtmReleaseNextHops