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_* 錯誤碼。
備註
RpcServerUnsubscribeForNotification 必須針對也有針對相關聯 RPC 呼叫的 RpcServerSubscribeForNotification 的每個 RPC 系結句柄呼叫 RpcServerSubscribeForNotification 。 必須先呼叫此 API,才能完成相關聯的 RPC 呼叫;否則,結果為未定義,而且可能會導致應用程式不穩定。
在此 API 傳回之後,可能會擷取未重試的通知。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista、Windows XP SP2 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008、Windows Server 2003 SP1 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | rpcasync.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |