RpcServerUnsubscribeForNotification 函数 (rpcasync.h)
RpcServerUnsubscribeForNotification 函数从 RPC 通知中取消订阅服务器。
语法
RPC_STATUS RpcServerUnsubscribeForNotification(
[in] RPC_BINDING_HANDLE Binding,
[in] RPC_NOTIFICATIONS Notification,
[out] unsigned long *NotificationsQueued
);
参数
[in] Binding
RPC_BINDING_HANDLE 结构,其中包含在对 RpcServerSubscribeForNotification 的上一次调用中指定的当前 RPC 调用的绑定句柄。 如果在 RPC 已调度调用的同一线程上调用此函数,则可以将此参数设置为 NULL;否则,必须在此参数中传递显式绑定句柄。
[in] Notification
RPC_NOTIFICATIONS 枚举中的值,该值指定服务器从 RPC 请求的通知类型。 通知必须单独取消订阅,不支持多个值。
Windows Vista: 目前,仅支持 RpcNotificationClientDisconnect 和 RpcNotificationCallCancel 。 如果为此参数指定了任何其他值,则返回RPC_S_CANNOT_SUPPORT错误代码。
[out] NotificationsQueued
一个必需的指针,指向一个值,该值接收 RPC 运行时为指定的 RPC 调用排队的通知数。 必须提供指针;它不是可选的。
代码应跟踪它收到的通知数。 取消订阅 RPC 通知时,应检查 RPC 运行时排队的通知数是否与收到的通知数匹配。 如果数字不匹配,某些通知仍可能在另一个线程上传入。 应延迟清理通知状态,直到收到所有传入通知。
返回值
此函数在成功时返回RPC_S_OK;否则,将返回RPC_S_* 错误代码。
注解
必须为每个 RPC 绑定句柄调用 RpcServerUnsubscribeForNotification 调用 RpcServerUnsubscribeForNotification。 在完成关联的 RPC 调用之前,必须调用此 API;否则,结果未定义,并可能导致应用程序不稳定。
在此 API 返回后,可能会检索未检索的通知。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista、Windows XP 和 SP2 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008、Windows Server 2003 SP1 [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcasync.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |