_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
指定路由表管理器通知客户端的事件。 使用以下值。
值 | 含义 |
---|---|
|
客户端刚刚向路由表管理器注册。 |
|
客户端刚刚注销。 |
|
路由已超时。 |
|
已发出更改通知。 |
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,则客户端不得在此回调的上下文中调用 RtmRegisterEntity、 RtmDeregisterEntity 或 RtmGetRegisteredEntities 。
如果客户端收到 RTM_CHANGE_NOTIFICATION 事件的RTM_EVENT_CALLBACK ,则客户端不得在此回调的上下文中调用 RtmRegisterForChangeNotification 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rtmv2.h |