RtmRegisterClient 函数

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

RtmRegisterClient 函数将客户端注册为指定协议的处理程序。 它为客户端建立路由更改通知机制,并设置协议选项。

语法

HANDLE RtmRegisterClient(
  _In_ DWORD  ProtocolFamily,
  _In_ DWORD  RoutingProtocol,
  _In_ HANDLE ChangeEvent,
  _In_ DWORD  Flags
);

参数

ProtocolFamily [in]

指定要注册的路由协议的协议系列。

RoutingProtocol [in]

指定路由协议标识符,与向路由器管理器注册时使用的相同。 请参阅 RegisterProtocol

ChangeEvent [in]

指定表中网络的最佳路由已更改。 路由表管理器在更改到表中任何网络的最佳路由后,会发出此事件的信号。 有关路由更改通知的详细信息,请参阅 RtmDequeueRouteChangeMessage

此参数是可选的。 如果调用方为此参数指定 NULL ,则路由表管理器不会通知客户端最佳路由状态的更改。

Flags [in]

指定用于对路由协议进行特殊处理的其他选项。 当前支持以下值。

Flags 含义
RTM_PROTOCOL_SINGLE_ROUTE
路由表管理器为每个目标网络保留一个路由协议。 换句话说,路由表管理器替换具有相同目标网络编号的路由条目,而不是添加新的路由条目。

返回值

成功返回时, 一个 HANDLE 值,该值标识对路由表管理器的后续调用中的客户端。

NULL 句柄指示路由表管理器无法注册客户端。 调用 GetLastError 以获取失败原因。

说明
ERROR_CLIENT_ALREADY_EXISTS
另一个客户端已注册以处理指定的协议。
ERROR_INVALID_PARAMETER
不支持指定的协议系列,或者 Flags 参数无效。
ERROR_NO_SYSTEM_RESOURCES
资源不足,无法执行操作。
ERROR_NOT_ENOUGH_MEMORY
内存不足,无法为客户端分配数据结构。

要求

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

Rtm.lib
DLL
Rtm.dll

另请参阅

路由表管理器版本 1 参考

路由表管理器版本 1 函数

GetLastError

RegisterProtocol

RTMv1 协议系列标识符

RtmDequeueRouteChangeMessage

RtmDeregisterClient