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
指向结构的指针,该结构包含标识要添加或更新的下一跃点的信息。 忽略 NextHopOwner 和 State 成员;这些成员由路由表管理器设置。 Flags 成员可以是以下值之一。
标志 | 含义 |
---|---|
|
下一跃点指向无法直接访问的远程目标。 若要获取完整路径,客户端必须执行递归查找。 |
|
此标志留作将来使用。 |
[in, out] NextHopHandle
如果客户端具有句柄 (客户端正在更新下一跃点) :输入时, NextHopHandle 是指向下一跃点句柄的指针。 输出时, NextHopHandle 保持不变。
如果客户端没有句柄,并且必须在客户端添加或更新下一跃点) (返回句柄:输入时, NextHopHandle 是指向 NULL 的指针。 输出时, NextHopHandle 接收指向下一跃点句柄的指针。 NextHopInfo 中的值用于标识要更新的下一跃点。
如果在客户端添加或更新下一跃点) 不需要返回句柄 (:输入时, NextHopHandle 为 NULL。 NextHopInfo 中的值用于标识要更新的下一跃点。
[out] ChangeFlags
在输入时, ChangeFlags 是指向RTM_NEXTHOP_CHANGE_FLAGS数据类型 的 指针。
在输出时, ChangeFlags 会收到一个标志,指示是添加还是更新了下一跃点。 如果 ChangeFlags 为零,则更新了下一跃点;如果 RTM_NEXTHOP_CHANGE_NEW ChangeFlags,则添加下一跃点。
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,则返回值为以下错误代码之一。
值 | 含义 |
---|---|
|
调用客户端不拥有此下一跃点。 |
|
内存不足,无法完成此操作。 |
注解
如果 NextHopHandle 指向非 NULL 句柄,则更新句柄指定的下一跃点。 否则,搜索 由 NextHopInfo 指定的地址。 如果找到下一跃点,则更新该跃点。 如果未找到匹配项,则会添加新的下一跃点。
如果返回句柄,则通过调用 RtmReleaseNextHops 在不再需要句柄时释放该句柄。
要求
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rtmv2.h |
Library | Rtm.lib |
DLL | Rtm.dll |