_EVENT_CALLBACK回调函数 (rtmv2.h)

路由表管理器使用 RTM_EVENT_CALLBACK 回调通知客户端发生了指定事件。

语法

_EVENT_CALLBACK EventCallback;

DWORD EventCallback(
  RTM_ENTITY_HANDLE RtmRegHandle,
  RTM_EVENT_TYPE EventType,
  PVOID Context1,
  PVOID Context2
)
{...}

参数

RtmRegHandle

路由表管理器向其发送通知的客户端的句柄。

EventType

指定路由表管理器通知客户端的事件。 使用以下值。

含义
RTM_ENTITY_REGISTERED
客户端刚刚向路由表管理器注册。
RTM_ENTITY_DEREGISTERED
客户端刚刚注销。
RTM_ROUTE_EXPIRED
路由已超时。
RTM_CHANGE_NOTIFICATION
已发出更改通知。

Context1

对于RTM_ENTITY_REGISTERED调用:包含已注册实体的句柄。

对于RTM_ENTITY_DEREGISTERED调用:包含未注册实体的句柄。

对于RTM_ROUTE_EXPIRED调用:包含超时路由的句柄。

对于RTM_CHANGE_NOTIFICATION调用:包含更改通知的句柄。

Context2

对于RTM_ENTITY_REGISTERED调用:包含指向 Context1 中句柄引用的RTM_ENTITY_INFO结构的指针。 如果客户端必须保留此信息,则客户端必须将其复制到已分配的结构。

对于RTM_ENTITY_DEREGISTERED调用:包含指向 Context1 中句柄引用的RTM_ENTITY_INFO结构的指针。 如果客户端必须保留此信息,则客户端必须将其复制到已分配的结构。

对于RTM_ROUTE_EXPIRED调用:包含指向上下文 1 中句柄引用的RTM_ROUTE_INFO结构的指针。 如果客户端必须保留此信息,则客户端必须将其复制到已分配的结构。

对于RTM_CHANGE_NOTIFICATION调用:包含以前调用 RtmRegisterForChangeNotification 时提供给客户端的通知上下文。

返回值

如果路由表管理器发出RTM_ROUTE_EXPIRED回调,并且客户端将值ERROR_NOT_SUPPORTED返回到路由表管理器,则路由表管理器将从路由表中删除路由。

客户端返回的所有其他错误将被忽略。

注解

在客户端注册更改通知后,路由表管理器使用此回调使客户端随时了解事件。

如果客户端收到 RTM_ENTITY_REGISTERED或RTM_ENTITY_DEREGISTERED 事件的RTM_EVENT_CALLBACK,则客户端不得在此回调的上下文中调用 RtmRegisterEntityRtmDeregisterEntityRtmGetRegisteredEntities

如果客户端收到 RTM_CHANGE_NOTIFICATION 事件的RTM_EVENT_CALLBACK ,则客户端不得在此回调的上下文中调用 RtmRegisterForChangeNotification

要求

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

另请参阅

RTM_EVENT_TYPE

RtmRegisterEntity