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
);
parameters
[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。
在调用 RtmGetMostSpecificDestination 后使用 RtmGetLessSpecificDestination 函数,以返回目标的下一个最佳匹配项。 在先前调用 RtmGetLessSpecificDestination 之后,也使用此调用返回下一个连续不太具体的匹配项。 客户端可以使用此函数来“向上”查找目标前缀树。
在调用返回 RTM_DEST_INFO 结构的函数(如 RtmGetDestInfo 和 RtmGetChangedDests)之后,也使用此调用。
RtmGetLessSpecificDestination 函数将返回匹配项,直到它到达默认路由(如果存在)。 找到默认路由后, RtmGetLessSpecificDestination 将返回ERROR_NOT_FOUND。
RtmGetLessSpecificDestination 和 RtmGetMostSpecificDestination 函数的一个常见用途是检索每个匹配的目标。
有关使用此函数的示例代码,请参阅 使用前缀树搜索路由。
要求
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rtmv2.h |
Library | Rtm.lib |
DLL | Rtm.dll |