RtmDequeueRouteChangeMessage 函数

[此 API 已被 路由表管理器版本 2 API 取代,在 Windows Server 2003 之后不可用。 应用程序应使用路由表管理器版本 2 API。]

RtmDequeueRouteChangeMessage 函数返回与指定客户端关联的队列中的下一个路由更改消息。

语法

DWORD RtmDequeueRouteChangeMessage(
  _In_  HANDLE ClientHandle,
  _Out_ DWORD  Flags,
  _Out_ PVOID  CurBestRoute,
  _Out_ PVOID  PrevBestRoute
);

参数

ClientHandle [in]

标识为其执行操作的客户端的句柄。 通过调用 RtmRegisterClient 获取此句柄。

标志 [out]

指向 DWORD 变量的指针。 此变量的值由路由表管理器设置。 值指定更改消息的类型,以及所提供的缓冲区中返回的信息。 此参数为下列参数之一。

Flags 含义
RTM_ROUTE_ADDED
为特定目标网络添加了第一个路由。 CurBestRoute 参数指向所添加路由的信息。
RTM_ROUTE_DELETED
已删除可用于特定目标网络的唯一路由。 PrevBestRoute 参数指向已删除路由的信息。
RTM_ROUTE_CHANGED
至少更改了一个重要参数,以获得最佳路由到特定目标网络。 重要参数包括:
协议标识符
接口索引
下一跃点地址
特定于协议系列的数据 (包括路由指标)

PrevBestRoute 参数指向更改前的路由信息。 CurBestRoute 参数指向当前 (即更改后) 路由信息。

CurBestRoute [out]

指向结构的指针,该结构接收当前最佳路由信息 ((如果有任何) )。 结构的类型特定于协议系列,例如 IP 或 IPX。

此参数是可选的。 如果调用方为此参数指定 NULL ,则不会返回当前最佳路由信息。

PrevBestRoute [out]

指向结构(如果有)的指针,该结构接收以前的最佳路由信息。 结构的类型特定于协议系列,例如 IP 或 IPX。

此参数是可选的。 如果调用方为此参数指定 NULL ,则不会返回以前的最佳路由信息。

返回值

返回值是以下代码之一。

说明
NO_ERROR
此消息是客户端队列中的最后一条消息。 重置事件对象。
ERROR_INVALID_HANDLE
ClientHandle 参数不是有效的句柄,或者在注册时客户端未为更改消息通知提供事件对象 (请参阅 RtmRegisterClient) 。
ERROR_MORE_MESSAGES
客户端的队列包含其他消息。 客户端应尽快再次调用 RtmDequeueRouteChangeMessage ,以允许路由表管理器释放与挂起消息关联的资源。
ERROR_NO_MESSAGES
客户端的队列不包含任何消息;调用是未经请求的。 重置事件。
ERROR_NO_SYSTEM_RESOURCES
资源不足,无法执行该操作。

要求

要求
最低受支持的客户端
无受支持的版本
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
终止服务器支持
Windows Server 2003
标头
Rtm.h

Rtm.lib
DLL
Rtm.dll

另请参阅

路由表管理器版本 1 参考

路由表管理器版本 1 函数

RtmRegisterClient