摘要
取消與金鑰相符的所有非同步通訊埠通知。
宣告
#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() 呼叫。