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
);

parameters

[in] RtmRegHandle

从上一次调用 RtmRegisterEntity 获取的客户端的句柄。

[in] NextHopInfo

指向结构的指针,该结构包含标识要添加或更新的下一跃点的信息。 忽略 NextHopOwnerState 成员;这些成员由路由表管理器设置。 Flags 成员可以是以下值之一。

标志 含义
RTM_NEXTHOP_FLAGS_REMOTE
下一跃点指向无法直接访问的远程目标。 若要获取完整路径,客户端必须执行递归查找。
RTM_NEXTHOP_FLAGS_DOWN
此标志留作将来使用。

[in, out] NextHopHandle

如果客户端具有句柄 (客户端正在更新下一跃点) :输入时, NextHopHandle 是指向下一跃点句柄的指针。 输出时, NextHopHandle 保持不变。

如果客户端没有句柄,并且必须在客户端添加或更新下一跃点) (返回句柄:输入时, NextHopHandle 是指向 NULL 的指针。 输出时, NextHopHandle 接收指向下一跃点句柄的指针。 NextHopInfo 中的值用于标识要更新的下一跃点。

如果在客户端添加或更新下一跃点) 不需要返回句柄 (:输入时, NextHopHandleNULLNextHopInfo 中的值用于标识要更新的下一跃点。

[out] ChangeFlags

在输入时, ChangeFlags 是指向RTM_NEXTHOP_CHANGE_FLAGS数据类型 指针。

在输出时, ChangeFlags 会收到一个标志,指示是添加还是更新了下一跃点。 如果 ChangeFlags 为零,则更新了下一跃点;如果 RTM_NEXTHOP_CHANGE_NEW ChangeFlags,则添加下一跃点。

返回值

如果函数成功,则返回值NO_ERROR。

如果函数失败,则返回值为以下错误代码之一。

含义
ERROR_ACCESS_DENIED
调用客户端不拥有此下一跃点。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法完成此操作。
 
 

注解

如果 NextHopHandle 指向非 NULL 句柄,则更新句柄指定的下一跃点。 否则,搜索 由 NextHopInfo 指定的地址。 如果找到下一跃点,则更新该跃点。 如果未找到匹配项,则会添加新的下一跃点。

如果返回句柄,则通过调用 RtmReleaseNextHops 在不再需要句柄时释放该句柄。

要求

   
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 rtmv2.h
Library Rtm.lib
DLL Rtm.dll

请参阅

下一跃点标志

RTM_NEXTHOP_INFO

RtmDeleteNextHop

RtmFindNextHop

RtmGetNextHopPointer

RtmLockNextHop

RtmReleaseNextHops