zx_socket_set_disposition

摘要

設定寫入配置。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_socket_set_disposition(zx_handle_t handle,
                                      uint32_t disposition,
                                      uint32_t disposition_peer);

說明

zx_socket_set_disposition 會設定 zx_socket_write() 呼叫的通訊端控點及其對等點。

可使用的有效處理旗標:

ZX_SOCKET_DISPOSITION_WRITE_DISABLED:停用指定通訊端端點的寫入功能。設定完成後,寫入指定的通訊端端點都會失敗並顯示 ZX_ERR_BAD_STATE。系統會繼續讀取指定通訊端端點的讀取作業,直到指定通訊端端點中的所有資料緩衝使用為止,然後透過 ZX_ERR_BAD_STATE 失敗。

ZX_SOCKET_DISPOSITION_WRITE_ENABLED:啟用指定通訊端端點的寫入功能。設定完成後,來自指定通訊端端點的寫入和讀取作業將分別按照 zx_socket_write()zx_socket_read() 中的指定行為。

在具有緩衝資料的通訊端端點上指定 ZX_SOCKET_DISPOSITION_WRITE_ENABLED 是無效的做法;這樣做會導致 zx_socket_set_disposition 傳回 ZX_ERR_BAD_STATE,且不執行任何動作。

dispositiondisposition_peer 中指定 ZX_SOCKET_DISPOSITION_WRITE_DISABLEDZX_SOCKET_DISPOSITION_WRITE_ENABLED 是無效的,否則會導致 zx_socket_set_disposition 傳回 ZX_ERR_INVALID_ARGS,且不採取任何行動。

權限

handle 必須是 ZX_OBJ_TYPE_SOCKET 類型,且具有 ZX_RIGHT_MANAGE_SOCKET

傳回值

zx_socket_set_disposition() 會在成功時傳回 ZX_OK

錯誤

ZX_ERR_BAD_HANDLE 帳號代碼不是有效的帳號代碼。

ZX_ERR_BAD_STATE dispositiondisposition_peer 包含 ZX_SOCKET_DISPOSITION_WRITE_ENABLEDdispositionle 是指在指定通訊端端點上具有緩衝資料的通訊端。

ZX_ERR_WRONG_TYPE 處理常式不是通訊端控點。

ZX_ERR_ACCESS_DENIED 處理常式沒有 ZX_RIGHT_MANAGE_SOCKET

ZX_ERR_INVALID_ARGS dispositiondisposition_peer 包含上方標記以外的標記或無效的標記組合。

另請參閱