摘要
取消物件的非同步通訊埠通知。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_port_cancel(zx_handle_t handle,
zx_handle_t source,
uint64_t key);
說明
zx_port_cancel()
是非封鎖的系統呼叫,會取消
使用來源和索引鍵完成的所有待處理 zx_object_wait_async()
作業。
當此呼叫成功時,所指的物件沒有任何新封包 包含 key 的來源會傳送到 handle,且待處理工作已排入佇列 系統會從通訊埠中移除與 source 和 key 相符的封包。
權限
handle 必須是 ZX_OBJ_TYPE_PORT
類型,且包含 ZX_RIGHT_WRITE
。
傳回值
如果取消成功,zx_port_cancel()
會傳回 ZX_OK
,且
佇列中的封包可能遭到移除,或待處理的封包數:zx_object_wait_async()
已取消。
錯誤
ZX_ERR_BAD_HANDLE
source 或 handle 不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
帳號代碼並非通訊埠控制代碼。
ZX_ERR_ACCESS_DENIED
source 或 handle 沒有 ZX_RIGHT_WRITE
。
ZX_ERR_NOT_SUPPORTED
來源是一個無法等待的帳號代碼。
ZX_ERR_NOT_FOUND
表示沒有待處理的封包或待處理封包
找到具有來源和鍵的 zx_object_wait_async()
通話。