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,但沒有任何動作 。

無法同時指定 ZX_SOCKET_DISPOSITION_WRITE_DISABLEDdispositiondisposition_peerZX_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_ENABLEDhandle 指的是 特定通訊端端點的緩衝資料

ZX_ERR_WRONG_TYPE 處理常式不是通訊端控制代碼。

ZX_ERR_ACCESS_DENIED 帳號代碼沒有 ZX_RIGHT_MANAGE_SOCKET

ZX_ERR_INVALID_ARGS dispositiondisposition_peer 含有標記 或標記的組合無效

另請參閱