rtmGetExactMatchRoute 函数 (rtmv2.h)

RtmGetExactMatchRoute 函数在路由表中搜索与指定路由完全匹配的路由。 要搜索的路由由网络地址、子网掩码和其他路由匹配条件指示。 如果找到完全匹配项,则返回路由信息。

语法

DWORD RtmGetExactMatchRoute(
  [in]      RTM_ENTITY_HANDLE RtmRegHandle,
  [in]      PRTM_NET_ADDRESS  DestAddress,
  [in]      RTM_MATCH_FLAGS   MatchingFlags,
  [in, out] PRTM_ROUTE_INFO   RouteInfo,
  [in]      ULONG             InterfaceIndex,
  [in]      RTM_VIEW_SET      TargetViews,
  [out]     PRTM_ROUTE_HANDLE RouteHandle
);

parameters

[in] RtmRegHandle

从先前调用 RtmRegisterEntity 获取的客户端的句柄。

[in] DestAddress

指向目标网络地址的指针。

[in] MatchingFlags

指定搜索路由时要使用的条件。 使用以下标志。

返回的常量 含义
RTM_MATCH_FULL
匹配具有所有条件的路由。
RTM_MATCH_INTERFACE
匹配同一接口上的路由。
RTM_MATCH_NEIGHBOUR
匹配具有相同邻居的路由。
RTM_MATCH_NEXTHOP
匹配具有相同下一跃点的路由。
RTM_MATCH_NONE
不匹配任何条件;返回目标的所有路由。
RTM_MATCH_OWNER
匹配具有相同所有者的路由。
RTM_MATCH_PREF
匹配具有相同首选项的路由。

[in, out] RouteInfo

输入时, RouteInfoRTM_ROUTE_INFO 结构的指针,其中包含指定要查找的路由的条件。

输出时, RouteInfo 接收与条件匹配的路由的路由信息。

[in] InterfaceIndex

如果在 MatchingFlags 中指定了RTM_MATCH_INTERFACE, 则 InterfaceIndex 将指定路由必须位于的接口 (,即路由在该接口) 有下一跃点。

[in] TargetViews

指定要从中返回信息的视图。 如果客户端指定RTM_VIEW_MASK_ANY,则从所有视图返回目标信息;但是,不会返回特定于视图的信息。

[out] RouteHandle

如果必须返回句柄:输入时, RouteHandle 是指向 NULL 的指针。

在输出时, RouteHandle 接收指向路由句柄的指针;否则, RouteHandle 保持不变。

如果不需要返回句柄:输入时, RouteHandleNULL

返回值

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

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

含义
ERROR_NOT_FOUND
找不到指定的路由。
 
 

注解

如果没有在 MatchingFlags 参数中指定的路由匹配条件,请考虑使用 RtmGetExactMatchDestination

RouteInfo 参数中传递的 RTM_ROUTE_INFO 结构的以下成员用于匹配路由:

  • 邻居
  • NextHopsList
  • PrefInfo
  • RouteOwner

要求

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

请参阅

RTM_NET_ADDRESS

RTM_ROUTE_INFO

RtmGetExactMatchDestination

RtmGetLessSpecificDestination

RtmGetMostSpecificDestination

RtmIsBestRoute