摘要
銷毀中斷物件。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_interrupt_destroy(zx_handle_t handle);
說明
「毀損」中斷物件,使其處於任何 zx_interrupt_wait() 作業都會傳回 ZX_ERR_CANCELED 的狀態,並從繫結的任何通訊埠解除繫結。zx_interrupt_destroy()
這項機制可確保系統正常關機。關閉中斷物件的最後一個控制代碼會導致類似的取消作業,但可能會導致控制代碼在關閉後使用。
如果中斷物件在取消時繫結至通訊埠,且尚未觸發,或已觸發但 zx_port_wait() 的呼叫端尚未收到封包,系統會傳回成功,並移除任何傳輸中的封包。否則會傳回 ZX_ERR_NOT_FOUND,表示封包已讀取,但中斷尚未透過呼叫 zx_interrupt_ack() 重新啟動。
權限
TODO(https://fxbug.dev/42107318)
傳回值
zx_interrupt_destroy() 會在成功時傳回 ZX_OK。如果失敗,系統會傳回負數錯誤值。
錯誤
ZX_ERR_BAD_HANDLE handle 是無效的控制代碼。
ZX_ERR_WRONG_TYPE handle 不是中斷物件。
ZX_ERR_NOT_FOUND handle 已繫結 (現在已不再繫結),但系統並未等待。
ZX_ERR_ACCESS_DENIED 帳號代碼缺少 ZX_RIGHT_WRITE。