摘要
取消物件的非同步通訊埠通知。
宣告
#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()
作業。
這個呼叫成功時,如果 source 指定物件 (含有 key) 沒有新封包,將傳送至 handle 並將符合 source 和 key 的待處理佇列封包移除。
權限
handle 必須是 ZX_OBJ_TYPE_PORT
類型,且具有 ZX_RIGHT_WRITE
。
傳回值
如果取消成功,且佇列的封包已移除,或已取消的 zx_object_wait_async()
,zx_port_cancel()
會傳回 ZX_OK
。
錯誤
ZX_ERR_BAD_HANDLE
來源或帳號代碼不是有效的帳號代碼。
ZX_ERR_WRONG_TYPE
處理常式不是通訊埠控制代碼。
ZX_ERR_ACCESS_DENIED
來源或帳號代碼沒有 ZX_RIGHT_WRITE
。
ZX_ERR_NOT_SUPPORTED
來源是無法等待的帳號代碼。
如果找不到待處理的封包,或是找到含來源和金鑰的待處理 zx_object_wait_async()
呼叫,則為 ZX_ERR_NOT_FOUND
。