摘要
取消物件的非同步通訊埠通知。
宣告
#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() 通話。