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: 目前,仅支持 RpcNotificationClientDisconnectRpcNotificationCallCancel 。 如果为此参数指定了任何其他值,则返回RPC_S_CANNOT_SUPPORT错误代码。

[out] NotificationsQueued

一个必需的指针,指向一个值,该值接收 RPC 运行时为指定的 RPC 调用排队的通知数。 必须提供指针;它不是可选的。

代码应跟踪它收到的通知数。 取消订阅 RPC 通知时,应检查 RPC 运行时排队的通知数是否与收到的通知数匹配。 如果数字不匹配,某些通知仍可能在另一个线程上传入。 应延迟清理通知状态,直到收到所有传入通知。

返回值

此函数在成功时返回RPC_S_OK;否则,将返回RPC_S_* 错误代码。

注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

必须为每个 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

另请参阅

RpcServerSubscribeForNotification