摘要
取消與金鑰相符的所有非同步通訊埠通知。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_port_cancel_key(zx_handle_t handle,
uint32_t options,
uint64_t key);
說明
zx_port_cancel_key()
是非阻塞的系統呼叫,會取消所有
這個通訊埠有待處理的 zx_object_wait_async()
作業已註冊
使用鍵。
這項呼叫成功時,註冊的作業中沒有新的封包 將「金鑰」傳送到「處理常式」,以及待處理佇列的待處理封包 key 已從通訊埠中移除。
權限
handle 必須是 ZX_OBJ_TYPE_PORT
類型,且包含 ZX_RIGHT_WRITE
。
傳回值
如果取消成功,zx_port_cancel_key()
會傳回 ZX_OK
,且
佇列中的封包可能遭到移除,或待處理的封包數:zx_object_wait_async()
已取消。
錯誤
ZX_ERR_BAD_HANDLE
帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
帳號代碼並非通訊埠控制代碼。
ZX_ERR_INVALID_ARGS
選項的值無效。
ZX_ERR_ACCESS_DENIED
帳號代碼沒有 ZX_RIGHT_WRITE
。
ZX_ERR_NOT_FOUND
表示沒有待處理的封包或待處理封包
找到符合鍵的 zx_object_wait_async()
呼叫。