通訊協定
AdvisoryLocking
補充性鎖定通訊協定
這個通訊協定的作用是組合成 |File|設為 支援建議鎖定。
補充性鎖定純屬建議不會妨礙實際讀取 寫入作業發生的寫入作業,可能是透過 連線或使用其他連線。
這些基元旨在支援 flock() 和 fcntl() 具體來說是 F_SETLK、F_SETLKW 和 F_GETLK 在 Fuchsia 上執行的應用程式預期來自其他作業系統。
AdvisoryLock
取得基礎檔案的建議鎖定。
除非這個連線關閉或 系統會使用 |AdvisoryLockType.UNLOCK| 呼叫這個方法鬆開鎖 。
補充性鎖定純屬建議不會妨礙實際讀取 寫入作業發生的寫入作業,可能是透過 連線或使用其他連線。
如要使用這個方法,您必須具備下列權限:
- 如果
request.type
是 AdvisoryLockType.READ,則為 Rights.READ_BYTES。 - 如果
request.type
是 Rights.WRITE_BYTES AdvisoryLockType.WRITE。
錯誤
ZX_ERR_BAD_STATE
無法取得指定的鎖定類型。適用對象 例如其他連線可能有衝突的鎖定類型。ZX_ERR_NOT_SUPPORTED
這個檔案不支援建議鎖定功能。ZX_ERR_ACCESS_DENIED
這個連線的權限不足 取得特定類型的鎖定
要求
名稱 | 類型 |
---|---|
request |
AdvisoryLockRequest
|
回應
名稱 | 類型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
目錄
AdvisoryLock
取得基礎檔案的建議鎖定。
除非這個連線關閉或 系統會使用 |AdvisoryLockType.UNLOCK| 呼叫這個方法鬆開鎖 。
補充性鎖定純屬建議不會妨礙實際讀取 寫入作業發生的寫入作業,可能是透過 連線或使用其他連線。
如要使用這個方法,您必須具備下列權限:
- 如果
request.type
是 AdvisoryLockType.READ,則為 Rights.READ_BYTES。 - 如果
request.type
是 Rights.WRITE_BYTES AdvisoryLockType.WRITE。
錯誤
ZX_ERR_BAD_STATE
無法取得指定的鎖定類型。適用對象 例如其他連線可能有衝突的鎖定類型。ZX_ERR_NOT_SUPPORTED
這個檔案不支援建議鎖定功能。ZX_ERR_ACCESS_DENIED
這個連線的權限不足 取得特定類型的鎖定
要求
名稱 | 類型 |
---|---|
request |
AdvisoryLockRequest
|
回應
名稱 | 類型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
複製
建立另一個連至同一遠端物件的連線。
flags
可以是下列任一值:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
系統會忽略所有其他標記。
flags
中的 OpenFlags.RIGHT_*
位元針對產生的結果要求相應權限
複製的物件
複製物件的權利必須小於或等於原始物件的權限,否則
會傳回 ZX_ERR_ACCESS_DENIED
。
或者,傳遞 OpenFlags.CLONE_SAME_RIGHTS
來繼承來源連線的權限。
將任一 OpenFlags.RIGHT_*
標記與
OpenFlags.CLONE_SAME_RIGHTS
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
關閉
終止連線。
呼叫 Close
後,用戶端不得傳送任何其他要求,
伺服器傳送狀態回應後,應會關閉連線 而非傳送口號
關閉管道的用戶端端應與語意相同
便可呼叫 Close
,而不必知道拍攝完成時間或
狀態。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
CreateSymlink
建立符號連結。
name
是要為建立的符號連結指定的名稱。
target
是符號連結的目標,在伺服器上沒有意義。伺服器
只會執行 target
的驗證,但伺服器所選的長度上限除外。
connection
是管道的選用伺服器端,會朗讀 Symlink 通訊協定
成功建立節點的健康狀態
-
如果
name
已存在,則傳回錯誤ZX_ERR_ALREADY_EXISTS
。 -
如果
target
超過符號連結的伺服器長度上限,則傳回ZX_ERR_BAD_PATH
錯誤。 -
如果伺服器不支援建立符號連結,則會傳回
ZX_ERR_NOT_SUPPORTED
錯誤。
要求
名稱 | 類型 |
---|---|
name |
Name
|
target |
SymlinkTarget
|
connection |
server_end<Symlink>?
|
回應
名稱 | 類型 |
---|---|
payload |
Directory2_CreateSymlink_Result
|
GetAttr
取得節點相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
取得節點相關資訊。
節點的屬性必須保持穩定 (獨立於 所使用的特定通訊協定
如果特定屬性不適用或不支援 檔案系統中不應出現相應的欄位
query
是位元遮罩,用於指定要擷取的屬性。伺服器 不應超過必要的傳回時間。
attributes
:傳回的屬性。
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
query |
NodeAttributesQuery
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
取得連線相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
取得與這個節點指定屬性 name
相關聯的值。
屬性名稱的長度上限為 MAX_ATTRIBUTE_NAME。否 依循特定結構
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
取得用於存取這個檔案的 Directory.Open
權限和旗標。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
GetToken
取得目錄憑證,日後可用於識別其存取權 讓影片從頭到尾只要要求取得權杖的連線,這個權杖就會持續有效 都保持開啟
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
token |
handle<handle>?
|
連結
這會在由名稱 dst 表示的目錄中建立以 src dst 命名的物件連結 產生下一個符記
src
必須是已解析的物件名稱。包含「/」字串中的
傳回 ZX_ERR_INVALID_ARGS
。
dst
必須是已解析的物件名稱。包含「/」字串中的
傳回 ZX_ERR_INVALID_ARGS
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
和
OpenFlags.RIGHT_READABLE
,否則會傳回 ZX_ERR_BAD_HANDLE
。
如果是同時重新命名或取消來源,這是不可分割的,例如:如果 有兩個發動者同時操作,其中一位發動者執行重新命名,會影響 另一個則是連結,則每個都會出現在 以不可分割的形式排列
要求
名稱 | 類型 |
---|---|
src |
string[255]
|
dst_parent_token |
handle<handle>
|
dst |
string[255]
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
ListExtendedAttributes
為相關聯的所有擴充屬性名稱建立疊代器 使用這個節點如果發生錯誤,則會在 疊代器要求管道,然後關閉管道。
可搭配上述任何名稱使用 GetExtendedAttributes 來擷取 關聯值
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
如果 OpenFlags.DESCRIBE
要求,FIDL 伺服器立即產生這類事件。
表示開啟作業成功或失敗,並視需要一併說明
物件。如果狀態為 ZX_OK
,則 info
包含物件的描述性資訊
(與 Describe
傳回的格式相同)。
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
當伺服器提出要求,就會立即產生事件 NodeFlags.GET_REPRESENTATION。這項活動是第一則訊息 且只會傳送一次
使用中的變化版本會對應至系統支援的以下其中一個通訊協定: 代表連線時間的結果 協商。提供輔助帳號 (如適用)。
如果用戶端在 protocols
期間
Directory.Open,代表還有
透過其代碼進行連線時間協商的結果。
元素會與 NodeProtocolKinds:
這是 fuchsia.unknown/Queryable.Query +
特定通訊協定的固有 Describe
方法。該名稱目前是
以免需要額外的來回行程
回應
名稱 | 類型 |
---|---|
payload |
Representation
|
開啟
開啟相對於這個目錄物件的新物件。
path
可能包含多個區段,並以「/」分隔字元,且不得含有
empty;例如「」是無效的路徑。尾隨斜線隱含 OpenFlags.DIRECTORY。元件
不得空白 (亦即「foo//bar」無效)。「...」。不允許在路徑中的任何位置執行「。」
只有在路徑正好是「.」時才能使用,其他情況則不允許。開頭的「/」即可 (且
將視為與否相同,也就是「/foo/bar」和「foo/bar」完全一樣)。
如果傳送旗標的未知值,則應關閉連線。
flags
內提供的 OpenFlags.RIGHT_*
旗標會限制以下項目的存取權
連結至已開啟實體的 object
管道。
權利絕對不會提高。在目錄中開啟巢狀實體時,您僅能
要求與目錄連線的既有權限或其中一部分的權限。
超過這些權限時,系統會將存取遭拒的錯誤傳送至
OnOpen
事件 (如果有的話),object
連線已關閉。
已忽略 mode
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
mode |
ModeType
|
path |
string[4095]
|
object |
server_end<Node>
|
Open2
開啟或建立相對於這個目錄節點的新節點。
如要使用這個方法,需具備下列目前連線的權限:
錯誤會在 object_request
管道上以單聲道形式顯示。
- 如果要求的權限超過允許的上限,則傳回
ZX_ERR_ACCESS_DENIED
錯誤。 - 如果
path
無效,則傳回ZX_ERR_BAD_PATH
。
要求
名稱 | 類型 |
---|---|
path |
Path
|
protocols |
ConnectionProtocols
|
object_request |
handle<channel>
|
Open3
開啟 (或建立) 相對於這個目錄的節點。如有錯誤,系統會透過
已在 object
管道上發送 Epitaph 頻道。
錯誤:
- 如果
path
無效,則為ZX_ERR_BAD_PATH
- 請參閱旗標,瞭解其他可能根據
flags
提供的資訊
要求
名稱 | 類型 |
---|---|
path |
Path
|
flags |
Flags
|
options |
Options
|
object |
handle<channel>
|
查詢
要求
<空白>
回應
名稱 | 類型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
向檔案系統查詢檔案系統的特定資訊。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
ReadDirents
這個外掛程式能將一系列可變大小的汙染物讀取到緩衝區中。
目錄中的泥土數量可能非常龐大,例如
對檔案多次呼叫讀取,目錄都有跳轉功能
位移,後續呼叫 ReadDirents 則更新。
每次呼叫 ReadDirents 只會傳回完整的非結構化資料
就不會分割成 ReadDirent 呼叫跳轉時
位移到達結尾處,dirents
為空白。
這些髒污的格式為:
struct dirent {
// Describes the inode of the entry.
uint64 ino;
// Describes the length of the dirent name in bytes.
uint8 size;
// Describes the type of the entry. Aligned with the
// POSIX d_type values. Use `DirentType` constants.
uint8 type;
// Unterminated name of entry.
char name[0];
}
這個方法不需要任何權利,因為使用者每次只能探測 。
要求
名稱 | 類型 |
---|---|
max_bytes |
uint64
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
dirents |
vector<uint8>[8192]
|
RemoveExtendedAttribute
移除指定的擴充屬性。
如果屬性不存在,則會傳回 ZX_ERR_NOT_FOUND。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新命名
在代表的目錄中,將名為 src
的節點重新命名為 dst
名稱
建立者:dst_parent_token
。
src
和 dst
必須是有效的節點名稱。
如要瞭解有效名稱的構成條件,請參閱「名稱」一節。
目前的連線與連線必須具備下列權限,才能使用這個方法
由「dst_parent_token
」識別:
為避免權利提升,您必須符合以下規定。
如果來源與目的地目錄不同,來源目錄也必須包含 檔案支援的最大功能組合, Rights.READ_BYTES、Rights.WRITE_BYTES、Rights.GET_ATTRIBUTES 與 Rights.UPDATE_ATTRIBUTES。部分檔案系統可能也支援 Rights.EXECUTE 沒錯
如果 src
參照目錄,且與目的地目錄不同,則為來源
目錄也須有 Rights.CONNECT 和 Rights.TRAVERSE 權限。
- 如果
src
或dst
無效,就會傳回ZX_ERR_INVALID_ARGS
錯誤。 - 因權限不足而發生錯誤
ZX_ERR_ACCESS_DENIED
。
要求
名稱 | 類型 |
---|---|
src |
Name
|
dst_parent_token |
Token
|
dst |
Name
|
回應
名稱 | 類型 |
---|---|
payload |
Directory2_Rename_Result
|
重新開啟
建立另一個連至相同節點的連線。
要求
名稱 | 類型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
倒轉
重設目錄跳轉偏移。
與 ReadDirents 類似,這個方法不需要任何權限。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetAttr
更新節點相關資訊。
如果不支援 flags 指定的任何屬性,則會傳回 ZX_ERR_NOT_SUPPORTED
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
名稱 | 類型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
針對這個節點,將指定屬性 name
的值設為 value
。
屬性名稱可能存在,在此情況下,屬性會更新。 如果屬性不存在,系統會建立該屬性。名稱不得包含 但包含空值。如果是,會傳回 ZX_ERR_INVALID_ARGS。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
變更用於存取檔案的 Directory.Open
旗標。
支援的可開啟 / 關閉的標記:
OpenFlags.APPEND
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
同步
將對節點的更新同步處理到基礎媒體 (如果有的話)。
檔案系統伺服器清除
與基礎媒體相關的更新,但不保證能
基礎媒體保存了資訊,也無從得知
完全致力於硬體客戶可使用「Sync
」確保排序
作業。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Node2_Sync_Result
|
取消連結
從這個目錄的項目清單中移除子節點。
注意:這不保證基礎物件會遭到刪除。 雖然連結會從主目錄中移除 物件中具有多個參照的物件 (例如仍開啟的檔案) 必須等到所有參照都關閉後,系統才會將其刪除。
- 如果連線沒有
ZX_ERR_ACCESS_DENIED
錯誤 Rights.WRITE_BYTES。 - 錯誤
ZX_ERR_NOT_SUPPORTED
,表示基礎檔案系統 以及輔助寫作功能 - 如果
name
無效,則傳回ZX_ERR_BAD_PATH
。 - 如果
name
參照非空白目錄,就會發生ZX_ERR_NOT_EMPTY
錯誤。 - 如果
name
參照掛接點,就會傳回ZX_ERR_UNAVAILABLE
錯誤 包含遠端管道。 - 如果選項要求目錄,則錯誤
ZX_ERR_NOT_DIR
但找不到目錄
系統基於檔案系統的特定原因,可能會傳回其他錯誤。
如要使用這個方法,您必須具備下列權限:
要求
名稱 | 類型 |
---|---|
name |
Name
|
options |
UnlinkOptions
|
回應
名稱 | 類型 |
---|---|
payload |
Directory2_Unlink_Result
|
UpdateAttributes
更新節點相關資訊。
attributes
如果有attributes
中的資料表欄位,則表示 更新對應屬性的意圖。
如果節點不支援任何指定屬性,則傳回 ZX_ERR_NOT_SUPPORTED
。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
payload |
MutableNodeAttributes
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
觀看
觀察目錄,並在其中接收新增訊息的事件 觀察者要求管道。
選項必須為零;將其保留為預留狀態
與 ReadDirents 類似,這個方法不需要任何權限。
要求
名稱 | 類型 |
---|---|
mask |
WatchMask
|
options |
uint32
|
watcher |
server_end<DirectoryWatcher>
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
Directory1
Directory 會定義可以包含其他物件的節點。
複製
建立另一個連至同一遠端物件的連線。
flags
可以是下列任一值:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
系統會忽略所有其他標記。
flags
中的 OpenFlags.RIGHT_*
位元針對產生的結果要求相應權限
複製的物件
複製物件的權利必須小於或等於原始物件的權限,否則
會傳回 ZX_ERR_ACCESS_DENIED
。
或者,傳遞 OpenFlags.CLONE_SAME_RIGHTS
來繼承來源連線的權限。
將任一 OpenFlags.RIGHT_*
標記與
OpenFlags.CLONE_SAME_RIGHTS
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
GetAttr
取得節點相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetFlags
取得用於存取這個檔案的 Directory.Open
權限和旗標。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
GetToken
取得目錄憑證,日後可用於識別其存取權 讓影片從頭到尾只要要求取得權杖的連線,這個權杖就會持續有效 都保持開啟
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
token |
handle<handle>?
|
連結
這會在由名稱 dst 表示的目錄中建立以 src dst 命名的物件連結 產生下一個符記
src
必須是已解析的物件名稱。包含「/」字串中的
傳回 ZX_ERR_INVALID_ARGS
。
dst
必須是已解析的物件名稱。包含「/」字串中的
傳回 ZX_ERR_INVALID_ARGS
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
和
OpenFlags.RIGHT_READABLE
,否則會傳回 ZX_ERR_BAD_HANDLE
。
如果是同時重新命名或取消來源,這是不可分割的,例如:如果 有兩個發動者同時操作,其中一位發動者執行重新命名,會影響 另一個則是連結,則每個都會出現在 以不可分割的形式排列
要求
名稱 | 類型 |
---|---|
src |
string[255]
|
dst_parent_token |
handle<handle>
|
dst |
string[255]
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
OnOpen
如果 OpenFlags.DESCRIBE
要求,FIDL 伺服器立即產生這類事件。
表示開啟作業成功或失敗,並視需要一併說明
物件。如果狀態為 ZX_OK
,則 info
包含物件的描述性資訊
(與 Describe
傳回的格式相同)。
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
開啟
開啟相對於這個目錄物件的新物件。
path
可能包含多個區段,並以「/」分隔字元,且不得含有
empty;例如「」是無效的路徑。尾隨斜線隱含 OpenFlags.DIRECTORY。元件
不得空白 (亦即「foo//bar」無效)。「...」。不允許在路徑中的任何位置執行「。」
只有在路徑正好是「.」時才能使用,其他情況則不允許。開頭的「/」即可 (且
將視為與否相同,也就是「/foo/bar」和「foo/bar」完全一樣)。
如果傳送旗標的未知值,則應關閉連線。
flags
內提供的 OpenFlags.RIGHT_*
旗標會限制以下項目的存取權
連結至已開啟實體的 object
管道。
權利絕對不會提高。在目錄中開啟巢狀實體時,您僅能
要求與目錄連線的既有權限或其中一部分的權限。
超過這些權限時,系統會將存取遭拒的錯誤傳送至
OnOpen
事件 (如果有的話),object
連線已關閉。
已忽略 mode
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
mode |
ModeType
|
path |
string[4095]
|
object |
server_end<Node>
|
QueryFilesystem
向檔案系統查詢檔案系統的特定資訊。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
ReadDirents
這個外掛程式能將一系列可變大小的汙染物讀取到緩衝區中。
目錄中的泥土數量可能非常龐大,例如
對檔案多次呼叫讀取,目錄都有跳轉功能
位移,後續呼叫 ReadDirents 則更新。
每次呼叫 ReadDirents 只會傳回完整的非結構化資料
就不會分割成 ReadDirent 呼叫跳轉時
位移到達結尾處,dirents
為空白。
這些髒污的格式為:
struct dirent {
// Describes the inode of the entry.
uint64 ino;
// Describes the length of the dirent name in bytes.
uint8 size;
// Describes the type of the entry. Aligned with the
// POSIX d_type values. Use `DirentType` constants.
uint8 type;
// Unterminated name of entry.
char name[0];
}
這個方法不需要任何權利,因為使用者每次只能探測 。
要求
名稱 | 類型 |
---|---|
max_bytes |
uint64
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
dirents |
vector<uint8>[8192]
|
倒轉
重設目錄跳轉偏移。
與 ReadDirents 類似,這個方法不需要任何權限。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetAttr
更新節點相關資訊。
如果不支援 flags 指定的任何屬性,則會傳回 ZX_ERR_NOT_SUPPORTED
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
名稱 | 類型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetFlags
變更用於存取檔案的 Directory.Open
旗標。
支援的可開啟 / 關閉的標記:
OpenFlags.APPEND
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
觀看
觀察目錄,並在其中接收新增訊息的事件 觀察者要求管道。
選項必須為零;將其保留為預留狀態
與 ReadDirents 類似,這個方法不需要任何權限。
要求
名稱 | 類型 |
---|---|
mask |
WatchMask
|
options |
uint32
|
watcher |
server_end<DirectoryWatcher>
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
Directory2
定義於 fuchsia.io/directory2.fidl
能夠包含其他節點的 Node2。
AdvisoryLock
取得基礎檔案的建議鎖定。
除非這個連線關閉或 系統會使用 |AdvisoryLockType.UNLOCK| 呼叫這個方法鬆開鎖 。
補充性鎖定純屬建議不會妨礙實際讀取 寫入作業發生的寫入作業,可能是透過 連線或使用其他連線。
如要使用這個方法,您必須具備下列權限:
- 如果
request.type
是 AdvisoryLockType.READ,則為 Rights.READ_BYTES。 - 如果
request.type
是 Rights.WRITE_BYTES AdvisoryLockType.WRITE。
錯誤
ZX_ERR_BAD_STATE
無法取得指定的鎖定類型。適用對象 例如其他連線可能有衝突的鎖定類型。ZX_ERR_NOT_SUPPORTED
這個檔案不支援建議鎖定功能。ZX_ERR_ACCESS_DENIED
這個連線的權限不足 取得特定類型的鎖定
要求
名稱 | 類型 |
---|---|
request |
AdvisoryLockRequest
|
回應
名稱 | 類型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
關閉
終止連線。
呼叫 Close
後,用戶端不得傳送任何其他要求,
伺服器傳送狀態回應後,應會關閉連線 而非傳送口號
關閉管道的用戶端端應與語意相同
便可呼叫 Close
,而不必知道拍攝完成時間或
狀態。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
CreateSymlink
建立符號連結。
name
是要為建立的符號連結指定的名稱。
target
是符號連結的目標,在伺服器上沒有意義。伺服器
只會執行 target
的驗證,但伺服器所選的長度上限除外。
connection
是管道的選用伺服器端,會朗讀 Symlink 通訊協定
成功建立節點的健康狀態
-
如果
name
已存在,則傳回錯誤ZX_ERR_ALREADY_EXISTS
。 -
如果
target
超過符號連結的伺服器長度上限,則傳回ZX_ERR_BAD_PATH
錯誤。 -
如果伺服器不支援建立符號連結,則會傳回
ZX_ERR_NOT_SUPPORTED
錯誤。
要求
名稱 | 類型 |
---|---|
name |
Name
|
target |
SymlinkTarget
|
connection |
server_end<Symlink>?
|
回應
名稱 | 類型 |
---|---|
payload |
Directory2_CreateSymlink_Result
|
GetAttributes
取得節點相關資訊。
節點的屬性必須保持穩定 (獨立於 所使用的特定通訊協定
如果特定屬性不適用或不支援 檔案系統中不應出現相應的欄位
query
是位元遮罩,用於指定要擷取的屬性。伺服器 不應超過必要的傳回時間。
attributes
:傳回的屬性。
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
query |
NodeAttributesQuery
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
取得連線相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
取得與這個節點指定屬性 name
相關聯的值。
屬性名稱的長度上限為 MAX_ATTRIBUTE_NAME。否 依循特定結構
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
ListExtendedAttributes
為相關聯的所有擴充屬性名稱建立疊代器 使用這個節點如果發生錯誤,則會在 疊代器要求管道,然後關閉管道。
可搭配上述任何名稱使用 GetExtendedAttributes 來擷取 關聯值
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnRepresentation
當伺服器提出要求,就會立即產生事件 NodeFlags.GET_REPRESENTATION。這項活動是第一則訊息 且只會傳送一次
使用中的變化版本會對應至系統支援的以下其中一個通訊協定: 代表連線時間的結果 協商。提供輔助帳號 (如適用)。
如果用戶端在 protocols
期間
Directory.Open,代表還有
透過其代碼進行連線時間協商的結果。
元素會與 NodeProtocolKinds:
這是 fuchsia.unknown/Queryable.Query +
特定通訊協定的固有 Describe
方法。該名稱目前是
以免需要額外的來回行程
回應
名稱 | 類型 |
---|---|
payload |
Representation
|
Open2
開啟或建立相對於這個目錄節點的新節點。
如要使用這個方法,需具備下列目前連線的權限:
錯誤會在 object_request
管道上以單聲道形式顯示。
- 如果要求的權限超過允許的上限,則傳回
ZX_ERR_ACCESS_DENIED
錯誤。 - 如果
path
無效,則傳回ZX_ERR_BAD_PATH
。
要求
名稱 | 類型 |
---|---|
path |
Path
|
protocols |
ConnectionProtocols
|
object_request |
handle<channel>
|
Open3
開啟 (或建立) 相對於這個目錄的節點。如有錯誤,系統會透過
已在 object
管道上發送 Epitaph 頻道。
錯誤:
- 如果
path
無效,則為ZX_ERR_BAD_PATH
- 請參閱旗標,瞭解其他可能根據
flags
提供的資訊
要求
名稱 | 類型 |
---|---|
path |
Path
|
flags |
Flags
|
options |
Options
|
object |
handle<channel>
|
查詢
要求
<空白>
回應
名稱 | 類型 |
---|---|
protocol |
vector<uint8>
|
RemoveExtendedAttribute
移除指定的擴充屬性。
如果屬性不存在,則會傳回 ZX_ERR_NOT_FOUND。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新命名
在代表的目錄中,將名為 src
的節點重新命名為 dst
名稱
建立者:dst_parent_token
。
src
和 dst
必須是有效的節點名稱。
如要瞭解有效名稱的構成條件,請參閱「名稱」一節。
目前的連線與連線必須具備下列權限,才能使用這個方法
由「dst_parent_token
」識別:
為避免權利提升,您必須符合以下規定。
如果來源與目的地目錄不同,來源目錄也必須包含 檔案支援的最大功能組合, Rights.READ_BYTES、Rights.WRITE_BYTES、Rights.GET_ATTRIBUTES 與 Rights.UPDATE_ATTRIBUTES。部分檔案系統可能也支援 Rights.EXECUTE 沒錯
如果 src
參照目錄,且與目的地目錄不同,則為來源
目錄也須有 Rights.CONNECT 和 Rights.TRAVERSE 權限。
- 如果
src
或dst
無效,就會傳回ZX_ERR_INVALID_ARGS
錯誤。 - 因權限不足而發生錯誤
ZX_ERR_ACCESS_DENIED
。
要求
名稱 | 類型 |
---|---|
src |
Name
|
dst_parent_token |
Token
|
dst |
Name
|
回應
名稱 | 類型 |
---|---|
payload |
Directory2_Rename_Result
|
重新開啟
建立另一個連至相同節點的連線。
要求
名稱 | 類型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetExtendedAttribute
針對這個節點,將指定屬性 name
的值設為 value
。
屬性名稱可能存在,在此情況下,屬性會更新。 如果屬性不存在,系統會建立該屬性。名稱不得包含 但包含空值。如果是,會傳回 ZX_ERR_INVALID_ARGS。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
同步
將對節點的更新同步處理到基礎媒體 (如果有的話)。
檔案系統伺服器清除
與基礎媒體相關的更新,但不保證能
基礎媒體保存了資訊,也無從得知
完全致力於硬體客戶可使用「Sync
」確保排序
作業。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Node2_Sync_Result
|
取消連結
從這個目錄的項目清單中移除子節點。
注意:這不保證基礎物件會遭到刪除。 雖然連結會從主目錄中移除 物件中具有多個參照的物件 (例如仍開啟的檔案) 必須等到所有參照都關閉後,系統才會將其刪除。
- 如果連線沒有
ZX_ERR_ACCESS_DENIED
錯誤 Rights.WRITE_BYTES。 - 錯誤
ZX_ERR_NOT_SUPPORTED
,表示基礎檔案系統 以及輔助寫作功能 - 如果
name
無效,則傳回ZX_ERR_BAD_PATH
。 - 如果
name
參照非空白目錄,就會發生ZX_ERR_NOT_EMPTY
錯誤。 - 如果
name
參照掛接點,就會傳回ZX_ERR_UNAVAILABLE
錯誤 包含遠端管道。 - 如果選項要求目錄,則錯誤
ZX_ERR_NOT_DIR
但找不到目錄
系統基於檔案系統的特定原因,可能會傳回其他錯誤。
如要使用這個方法,您必須具備下列權限:
要求
名稱 | 類型 |
---|---|
name |
Name
|
options |
UnlinkOptions
|
回應
名稱 | 類型 |
---|---|
payload |
Directory2_Unlink_Result
|
UpdateAttributes
更新節點相關資訊。
attributes
如果有attributes
中的資料表欄位,則表示 更新對應屬性的意圖。
如果節點不支援任何指定屬性,則傳回 ZX_ERR_NOT_SUPPORTED
。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
payload |
MutableNodeAttributes
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
DirectoryWatcher
DirectoryWatcher 會從檔案系統伺服器傳輸訊息
瞭解檔案系統發生的事件用戶端可以註冊
的新手錶使用 Directory.Watch
方法,且可在該位置
篩選要接收通知的事件。
DirectoryWatcher 會傳送下列格式的訊息:
struct {
uint8 event;
uint8 len;
char name[];
};
其中名稱「並非」以空值結束。名稱是相對性
事件所參照項目的路徑。如果維度是空白的
事件未參照特定項目 (例如
IDLE
事件)。
ExtendedAttributeIterator
GetNext
取得下一個延伸屬性名稱區塊。如果這是最後一個 最後是 true,最後才會關閉管道 呼叫。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ExtendedAttributeIterator_GetNext_Result
|
檔案
注意:複製的連線不會與來源分享跳轉偏移 以獲得最佳效能和最安全的連線
AdvisoryLock
取得基礎檔案的建議鎖定。
除非這個連線關閉或 系統會使用 |AdvisoryLockType.UNLOCK| 呼叫這個方法鬆開鎖 。
補充性鎖定純屬建議不會妨礙實際讀取 寫入作業發生的寫入作業,可能是透過 連線或使用其他連線。
如要使用這個方法,您必須具備下列權限:
- 如果
request.type
是 AdvisoryLockType.READ,則為 Rights.READ_BYTES。 - 如果
request.type
是 Rights.WRITE_BYTES AdvisoryLockType.WRITE。
錯誤
ZX_ERR_BAD_STATE
無法取得指定的鎖定類型。適用對象 例如其他連線可能有衝突的鎖定類型。ZX_ERR_NOT_SUPPORTED
這個檔案不支援建議鎖定功能。ZX_ERR_ACCESS_DENIED
這個連線的權限不足 取得特定類型的鎖定
要求
名稱 | 類型 |
---|---|
request |
AdvisoryLockRequest
|
回應
名稱 | 類型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
分配
為這個檔案預先分配磁碟空間。
要求
名稱 | 類型 |
---|---|
offset |
uint64
|
length |
uint64
|
mode |
AllocateMode
|
回應
名稱 | 類型 |
---|---|
payload |
File_Allocate_Result
|
複製
建立另一個連至同一遠端物件的連線。
flags
可以是下列任一值:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
系統會忽略所有其他標記。
flags
中的 OpenFlags.RIGHT_*
位元針對產生的結果要求相應權限
複製的物件
複製物件的權利必須小於或等於原始物件的權限,否則
會傳回 ZX_ERR_ACCESS_DENIED
。
或者,傳遞 OpenFlags.CLONE_SAME_RIGHTS
來繼承來源連線的權限。
將任一 OpenFlags.RIGHT_*
標記與
OpenFlags.CLONE_SAME_RIGHTS
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
關閉
終止連線。
呼叫 Close
後,用戶端不得傳送任何其他要求,
伺服器傳送狀態回應後,應會關閉連線 而非傳送口號
關閉管道的用戶端端應與語意相同
便可呼叫 Close
,而不必知道拍攝完成時間或
狀態。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
說明
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
FileInfo
|
EnableVerity
啟用驗證檔案 (永久性) 驗證作業,並計算默示物的 檔案。在建立默克爾樹之前強制清除,確保快取資料 擷取完成。未來的讀取作業會根據經過計算的麥克爾樹並寫入 遭到拒絕。這個方法可能需要一段時間才能完成,因為實際時間取決於檔案大小。 如要取消此方法,請關閉其發出此方法的連線。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
如果檔案系統不支援驗證方式,則傳回 ZX_ERR_NOT_SUPPORTED
。
如果檔案已啟用 fsverity,會傳回 ZX_ERR_ALREADY_EXISTS
。
此外,會傳回讀取檔案或清除檔案時可能發生的任何錯誤,
例如 ZX_ERR_IO
。
要求
名稱 | 類型 |
---|---|
options |
VerificationOptions
|
回應
名稱 | 類型 |
---|---|
payload |
File_EnableVerity_Result
|
GetAttr
取得節點相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
取得節點相關資訊。
節點的屬性必須保持穩定 (獨立於 所使用的特定通訊協定
如果特定屬性不適用或不支援 檔案系統中不應出現相應的欄位
query
是位元遮罩,用於指定要擷取的屬性。伺服器 不應超過必要的傳回時間。
attributes
:傳回的屬性。
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
query |
NodeAttributesQuery
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetBackingMemory
取得代表此檔案的 zx.Handle:VMO (如有), 包含要求的存取權限
您不需要實作 VMO 支援的檔案,因此 可能會失敗此外,導入方式可能僅支援 特定子集客戶應準備好備用方案 行為。
如果用戶端未指定 PRIVATE_CLONE
和 SHARED_BUFFER
,
實作方式可以自由選擇傳回的 VMO 語意。
- 要求
flags
一個 VmoFlags,指出所需的存取模式。
- 回應
vmo
所要求的 zx.Handle:VMO。
- 錯誤訊息的 zx.Status 值,表示失敗。
如要使用這個方法,您必須具備下列權限:
- 如果
flags
包含 VmoFlags.READ,則為 Rights.READ_BYTES。 - 如果
flags
包含 VmoFlags.WRITE,則為 Rights.WRITE_BYTES。 - 如果
flags
包含 VmoFlags.EXECUTE,則為 Rights.EXECUTE。
要求
名稱 | 類型 |
---|---|
flags |
VmoFlags
|
回應
名稱 | 類型 |
---|---|
payload |
File_GetBackingMemory_Result
|
GetConnectionInfo
取得連線相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
取得與這個節點指定屬性 name
相關聯的值。
屬性名稱的長度上限為 MAX_ATTRIBUTE_NAME。否 依循特定結構
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
取得用於存取這個檔案的 Directory.Open
權限和旗標。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
LinkInto
建立指向此物件的連結,在其代表的目錄中名為 dst
dst_parent_token
。
dst
必須是已解析的物件名稱。包含「/」字串中的值
ZX_ERR_INVALID_ARGS
。
使用此方法時,需要此物件的檔案系統支援的最高權限組合。
對檔案來說,這通常是 Rights.READ_BYTES、Rights.WRITE_BYTES。
Rights.GET_ATTRIBUTES 及 Rights.UPDATE_ATTRIBUTES。有些檔案系統
支援 Rights.EXECUTE 右側。權限不足,會導致
ZX_ERR_ACCESS_DENIED
。
如果這個物件沒有連結,就會因 ZX_ERR_NOT_FOUND
而失敗。
這個方法沒有相同的不可分割屬性含有 Directory::Link
方法,
這表示呼叫 Open
後 LinkInto
不會等於 Directory::Link
因為 LinkInto
不會防止來源重新命名或取消連結。
要求
名稱 | 類型 |
---|---|
dst_parent_token |
Token
|
dst |
Name
|
回應
名稱 | 類型 |
---|---|
payload |
Linkable_LinkInto_Result
|
ListExtendedAttributes
為相關聯的所有擴充屬性名稱建立疊代器 使用這個節點如果發生錯誤,則會在 疊代器要求管道,然後關閉管道。
可搭配上述任何名稱使用 GetExtendedAttributes 來擷取 關聯值
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
如果 OpenFlags.DESCRIBE
要求,FIDL 伺服器立即產生這類事件。
表示開啟作業成功或失敗,並視需要一併說明
物件。如果狀態為 ZX_OK
,則 info
包含物件的描述性資訊
(與 Describe
傳回的格式相同)。
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
當伺服器提出要求,就會立即產生事件 NodeFlags.GET_REPRESENTATION。這項活動是第一則訊息 且只會傳送一次
使用中的變化版本會對應至系統支援的以下其中一個通訊協定: 代表連線時間的結果 協商。提供輔助帳號 (如適用)。
如果用戶端在 protocols
期間
Directory.Open,代表還有
透過其代碼進行連線時間協商的結果。
這些元素會與 NodeProtocolKinds:
這是 fuchsia.unknown/Queryable.Query +
特定通訊協定的固有 Describe
方法。該名稱目前是
以免需要額外的來回行程
回應
名稱 | 類型 |
---|---|
payload |
Representation
|
查詢
要求
<空白>
回應
名稱 | 類型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
向檔案系統查詢檔案系統的特定資訊。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
已讀
最多讀數傳回位元組。 跳轉位移會隨著讀取的位元組數向前移動。
不變
- 傳回的
data.length
一律不會大於count
。 - 如果
data.length
小於count
,表示搜尋偏移 已達到此作業的檔案結尾。 - 如果
data.length
為零,但count
不是,表示 跳轉偏移值已等於或超過檔案結尾,且無資料 文字。 - 如果
count
為 0,伺服器應執行所有檢查,確保 讀取權限而不實際讀取任何內容,然後傳回空白data
向量。
這個方法需要 Rights.READ_BYTES 右側。
如果 count
大於 MAX_TRANSFER_SIZE
,則傳回 ZX_ERR_OUT_OF_RANGE
。
要求
名稱 | 類型 |
---|---|
count |
uint64
|
回應
名稱 | 類型 |
---|---|
payload |
Readable_Read_Result
|
ReadAt
最多讀數以位元組為單位。 這不會影響跳轉偏移。
不變
- 傳回的
data.length
一律不會大於count
。 - 如果
data.length
小於count
,表示ReadAt
達到 作為此作業的一部分 - 如果
data.length
為零,但count
不是,表示offset
不在檔案結尾,且無法讀取任何資料。 - 如果
count
為 0,伺服器應執行所有檢查,確保 讀取權限,不必實際讀取任何內容data
向量。
這個方法需要 Rights.READ_BYTES 右側。
如果 count
大於 MAX_TRANSFER_SIZE
,則傳回 ZX_ERR_OUT_OF_RANGE
。
要求
名稱 | 類型 |
---|---|
count |
uint64
|
offset |
uint64
|
回應
名稱 | 類型 |
---|---|
payload |
File_ReadAt_Result
|
RemoveExtendedAttribute
移除指定的擴充屬性。
如果屬性不存在,則會傳回 ZX_ERR_NOT_FOUND。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新開啟
建立另一個連至相同節點的連線。
要求
名稱 | 類型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
調整大小
縮小或將檔案大小調整為「length」一個位元組
如果作業縮減檔案大小,其他的結尾資料 就會遭到捨棄 如果這項作業增加檔案大小,畫面上會顯示延伸區域 就像是 0 一樣
此方法需要 Rights.WRITE_BYTES 右側。
要求
名稱 | 類型 |
---|---|
length |
uint64
|
回應
名稱 | 類型 |
---|---|
payload |
File_Resize_Result
|
搜尋
移動下一個叫用 Read 或 Write 的偏移值 會發生這種事。每次檔案連線的跳轉位移都不盡相同。
- 要求
origin
做為offset
依據的參考點。 - 要求
offset
要搜尋的位元組數。
- 回應
offset_from_start
從開始時調整的跳轉偏移 檔案。
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
origin |
SeekOrigin
|
offset |
int64
|
回應
名稱 | 類型 |
---|---|
payload |
File_Seek_Result
|
SetAttr
更新節點相關資訊。
如果不支援 flags 指定的任何屬性,則會傳回 ZX_ERR_NOT_SUPPORTED
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
名稱 | 類型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
針對這個節點,將指定屬性 name
的值設為 value
。
屬性名稱可能存在,在此情況下,屬性會更新。 如果屬性不存在,系統會建立該屬性。名稱不得包含 但包含空值。如果是,會傳回 ZX_ERR_INVALID_ARGS。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
變更用於存取檔案的 Directory.Open
旗標。
支援的可開啟 / 關閉的標記:
OpenFlags.APPEND
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
同步
將對節點的更新同步處理到基礎媒體 (如果有的話)。
檔案系統伺服器清除
與基礎媒體相關的更新,但不保證能
基礎媒體保存了資訊,也無從得知
完全致力於硬體客戶可使用「Sync
」確保排序
作業。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新節點相關資訊。
attributes
如果有attributes
中的資料表欄位,則表示 更新對應屬性的意圖。
如果節點不支援任何指定屬性,則傳回 ZX_ERR_NOT_SUPPORTED
。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
payload |
MutableNodeAttributes
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
寫入
這個外掛程式能在跳轉偏移位置寫入資料。 搜尋位移會隨著寫入的位元組數向前移動。 如果檔案處於附加模式,則搜尋位移會先設為結尾 然後寫入寫入 (以不可拆分完成的步驟)
如果搜尋偏移 + data.length
超過,檔案大小可能會變大
目前的檔案結尾。
- 要求
data
要寫入檔案的位元組緩衝區。
- 回應
actual_count
是寫入的位元組數。
不變
- 傳回的
actual_count
一律不會大於data.length
。 - 如果伺服器無法寫入所有資料,例如不夠
空格,
actual_count
可能小於data.length
。如果沒有位元組 寫入錯誤,則傳回錯誤。 - 如果
data.length
為零,則伺服器應執行所有檢查 確保無需修改檔案,並傳回 以便順利寫入零位元組如果搜尋偏移值仍會更新, 在附加模式中
此方法需要 Rights.WRITE_BYTES 右側。
要求
名稱 | 類型 |
---|---|
data |
Transfer
|
回應
名稱 | 類型 |
---|---|
payload |
Writable_Write_Result
|
WriteAt
以提供的偏移值寫入資料。 這不會影響跳轉偏移。
如果 offset
加上 data.length
超過以下值,檔案大小可能會變大
目前的檔案結尾。
- 要求
data
要寫入檔案的位元組緩衝區。 - 要求
offset
從檔案開頭開始寫入的偏移值。
- 回應
actual_count
是寫入的位元組數。
不變
- 傳回的
actual_count
一律不會大於data.length
。 - 如果伺服器無法寫入所有資料,例如不夠
空格,
actual_count
可能小於data.length
。如果沒有位元組 寫入錯誤,則傳回錯誤。 - 如果
data.length
為零,則伺服器應執行所有檢查 確定無需修改檔案的寫入權限,並且會傳回 以便順利寫入零位元組
此方法需要 Rights.WRITE_BYTES 右側。
要求
名稱 | 類型 |
---|---|
data |
Transfer
|
offset |
uint64
|
回應
名稱 | 類型 |
---|---|
payload |
File_WriteAt_Result
|
可連結
LinkInto
建立指向此物件的連結,在其代表的目錄中名為 dst
dst_parent_token
。
dst
必須是已解析的物件名稱。包含「/」字串中的值
ZX_ERR_INVALID_ARGS
。
使用此方法時,需要此物件的檔案系統支援的最高權限組合。
對檔案來說,這通常是 Rights.READ_BYTES、Rights.WRITE_BYTES。
Rights.GET_ATTRIBUTES 及 Rights.UPDATE_ATTRIBUTES。有些檔案系統
支援 Rights.EXECUTE 右側。權限不足,會導致
ZX_ERR_ACCESS_DENIED
。
如果這個物件沒有連結,就會因 ZX_ERR_NOT_FOUND
而失敗。
這個方法沒有相同的不可分割屬性含有 Directory::Link
方法,
這表示呼叫 Open
後 LinkInto
不會等於 Directory::Link
因為 LinkInto
不會防止來源重新命名或取消連結。
要求
名稱 | 類型 |
---|---|
dst_parent_token |
Token
|
dst |
Name
|
回應
名稱 | 類型 |
---|---|
payload |
Linkable_LinkInto_Result
|
節點
複製
建立另一個連至同一遠端物件的連線。
flags
可以是下列任一值:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
系統會忽略所有其他標記。
flags
中的 OpenFlags.RIGHT_*
位元針對產生的結果要求相應權限
複製的物件
複製物件的權利必須小於或等於原始物件的權限,否則
會傳回 ZX_ERR_ACCESS_DENIED
。
或者,傳遞 OpenFlags.CLONE_SAME_RIGHTS
來繼承來源連線的權限。
將任一 OpenFlags.RIGHT_*
標記與
OpenFlags.CLONE_SAME_RIGHTS
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
關閉
終止連線。
呼叫 Close
後,用戶端不得傳送任何其他要求,
伺服器傳送狀態回應後,應會關閉連線 而非傳送口號
關閉管道的用戶端端應與語意相同
便可呼叫 Close
,而不必知道拍攝完成時間或
狀態。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
GetAttr
取得節點相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
取得節點相關資訊。
節點的屬性必須保持穩定 (獨立於 所使用的特定通訊協定
如果特定屬性不適用或不支援 檔案系統中不應出現相應的欄位
query
是位元遮罩,用於指定要擷取的屬性。伺服器 不應超過必要的傳回時間。
attributes
:傳回的屬性。
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
query |
NodeAttributesQuery
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
取得連線相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
取得與這個節點指定屬性 name
相關聯的值。
屬性名稱的長度上限為 MAX_ATTRIBUTE_NAME。否 依循特定結構
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
取得用於存取這個檔案的 Directory.Open
權限和旗標。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
ListExtendedAttributes
為相關聯的所有擴充屬性名稱建立疊代器 使用這個節點如果發生錯誤,則會在 疊代器要求管道,然後關閉管道。
可搭配上述任何名稱使用 GetExtendedAttributes 來擷取 關聯值
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
如果 OpenFlags.DESCRIBE
要求,FIDL 伺服器立即產生這類事件。
表示開啟作業成功或失敗,並視需要一併說明
物件。如果狀態為 ZX_OK
,則 info
包含物件的描述性資訊
(與 Describe
傳回的格式相同)。
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
當伺服器提出要求,就會立即產生事件 NodeFlags.GET_REPRESENTATION。這項活動是第一則訊息 且只會傳送一次
使用中的變化版本會對應至系統支援的以下其中一個通訊協定: 代表連線時間的結果 協商。提供輔助帳號 (如適用)。
如果用戶端在 protocols
期間
Directory.Open,代表還有
透過其代碼進行連線時間協商的結果。
元素會與 NodeProtocolKinds:
這是 fuchsia.unknown/Queryable.Query +
特定通訊協定的固有 Describe
方法。該名稱目前是
以免需要額外的來回行程
回應
名稱 | 類型 |
---|---|
payload |
Representation
|
查詢
要求
<空白>
回應
名稱 | 類型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
向檔案系統查詢檔案系統的特定資訊。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
RemoveExtendedAttribute
移除指定的擴充屬性。
如果屬性不存在,則會傳回 ZX_ERR_NOT_FOUND。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新開啟
建立另一個連至相同節點的連線。
要求
名稱 | 類型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetAttr
更新節點相關資訊。
如果不支援 flags 指定的任何屬性,則會傳回 ZX_ERR_NOT_SUPPORTED
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
名稱 | 類型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
針對這個節點,將指定屬性 name
的值設為 value
。
屬性名稱可能存在,在此情況下,屬性會更新。 如果屬性不存在,系統會建立該屬性。名稱不得包含 但包含空值。如果是,會傳回 ZX_ERR_INVALID_ARGS。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
變更用於存取檔案的 Directory.Open
旗標。
支援的可開啟 / 關閉的標記:
OpenFlags.APPEND
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
同步
將對節點的更新同步處理到基礎媒體 (如果有的話)。
檔案系統伺服器清除
與基礎媒體相關的更新,但不保證能
基礎媒體保存了資訊,也無從得知
完全致力於硬體客戶可使用「Sync
」確保排序
作業。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新節點相關資訊。
attributes
如果有attributes
中的資料表欄位,則表示 更新對應屬性的意圖。
如果節點不支援任何指定屬性,則傳回 ZX_ERR_NOT_SUPPORTED
。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
payload |
MutableNodeAttributes
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
Node1
Node 定義可在檔案系統中存取的實體最小的介面。
複製
建立另一個連至同一遠端物件的連線。
flags
可以是下列任一值:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
系統會忽略所有其他標記。
flags
中的 OpenFlags.RIGHT_*
位元針對產生的結果要求相應權限
複製的物件
複製物件的權利必須小於或等於原始物件的權限,否則
會傳回 ZX_ERR_ACCESS_DENIED
。
或者,傳遞 OpenFlags.CLONE_SAME_RIGHTS
來繼承來源連線的權限。
將任一 OpenFlags.RIGHT_*
標記與
OpenFlags.CLONE_SAME_RIGHTS
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
GetAttr
取得節點相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetFlags
取得用於存取這個檔案的 Directory.Open
權限和旗標。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
OnOpen
如果 OpenFlags.DESCRIBE
要求,FIDL 伺服器立即產生這類事件。
表示開啟作業成功或失敗,並視需要一併說明
物件。如果狀態為 ZX_OK
,則 info
包含物件的描述性資訊
(與 Describe
傳回的格式相同)。
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
QueryFilesystem
向檔案系統查詢檔案系統的特定資訊。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
SetAttr
更新節點相關資訊。
如果不支援 flags 指定的任何屬性,則會傳回 ZX_ERR_NOT_SUPPORTED
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
名稱 | 類型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetFlags
變更用於存取檔案的 Directory.Open
旗標。
支援的可開啟 / 關閉的標記:
OpenFlags.APPEND
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
Node2
節點定義了可存取實體的最低通訊協定 特定檔案
關閉
終止連線。
呼叫 Close
後,用戶端不得傳送任何其他要求,
伺服器傳送狀態回應後,應會關閉連線 而非傳送口號
關閉管道的用戶端端應與語意相同
便可呼叫 Close
,而不必知道拍攝完成時間或
狀態。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
GetAttributes
取得節點相關資訊。
節點的屬性必須保持穩定 (獨立於 所使用的特定通訊協定
如果特定屬性不適用或不支援 檔案系統中不應出現相應的欄位
query
是位元遮罩,用於指定要擷取的屬性。伺服器 不應超過必要的傳回時間。
attributes
:傳回的屬性。
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
query |
NodeAttributesQuery
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
取得連線相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
取得與這個節點指定屬性 name
相關聯的值。
屬性名稱的長度上限為 MAX_ATTRIBUTE_NAME。否 依循特定結構
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
ListExtendedAttributes
為相關聯的所有擴充屬性名稱建立疊代器 使用這個節點如果發生錯誤,則會在 疊代器要求管道,然後關閉管道。
可搭配上述任何名稱使用 GetExtendedAttributes 來擷取 關聯值
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnRepresentation
當伺服器提出要求,就會立即產生事件 NodeFlags.GET_REPRESENTATION。這項活動是第一則訊息 且只會傳送一次
使用中的變化版本會對應至系統支援的以下其中一個通訊協定: 代表連線時間的結果 協商。提供輔助帳號 (如適用)。
如果用戶端在 protocols
期間
Directory.Open,代表還有
透過其代碼進行連線時間協商的結果。
元素會與 NodeProtocolKinds:
這是 fuchsia.unknown/Queryable.Query +
特定通訊協定的固有 Describe
方法。該名稱目前是
以免需要額外的來回行程
回應
名稱 | 類型 |
---|---|
payload |
Representation
|
查詢
要求
<空白>
回應
名稱 | 類型 |
---|---|
protocol |
vector<uint8>
|
RemoveExtendedAttribute
移除指定的擴充屬性。
如果屬性不存在,則會傳回 ZX_ERR_NOT_FOUND。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新開啟
建立另一個連至相同節點的連線。
要求
名稱 | 類型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetExtendedAttribute
針對這個節點,將指定屬性 name
的值設為 value
。
屬性名稱可能存在,在此情況下,屬性會更新。 如果屬性不存在,系統會建立該屬性。名稱不得包含 但包含空值。如果是,會傳回 ZX_ERR_INVALID_ARGS。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
同步
將對節點的更新同步處理到基礎媒體 (如果有的話)。
檔案系統伺服器清除
與基礎媒體相關的更新,但不保證能
基礎媒體保存了資訊,也無從得知
完全致力於硬體客戶可使用「Sync
」確保排序
作業。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新節點相關資訊。
attributes
如果有attributes
中的資料表欄位,則表示 更新對應屬性的意圖。
如果節點不支援任何指定屬性,則傳回 ZX_ERR_NOT_SUPPORTED
。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
payload |
MutableNodeAttributes
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
可開啟
開啟
開啟相對於這個目錄物件的新物件。
path
可能包含多個區段,並以「/」分隔字元,且不得含有
empty;例如「」是無效的路徑。尾隨斜線隱含 OpenFlags.DIRECTORY。元件
不得空白 (亦即「foo//bar」無效)。「...」。不允許在路徑中的任何位置執行「。」
只有在路徑正好是「.」時才能使用,其他情況則不允許。開頭的「/」即可 (且
將視為與否相同,也就是「/foo/bar」和「foo/bar」完全一樣)。
如果傳送旗標的未知值,則應關閉連線。
flags
內提供的 OpenFlags.RIGHT_*
旗標會限制以下項目的存取權
連結至已開啟實體的 object
管道。
權利絕對不會提高。在目錄中開啟巢狀實體時,您僅能
要求與目錄連線的既有權限或其中一部分的權限。
超過這些權限時,系統會將存取遭拒的錯誤傳送至
OnOpen
事件 (如果有的話),object
連線已關閉。
已忽略 mode
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
mode |
ModeType
|
path |
string[4095]
|
object |
server_end<Node>
|
可閱讀
已讀
最多讀數傳回位元組。 跳轉位移會隨著讀取的位元組數向前移動。
不變
- 傳回的
data.length
一律不會大於count
。 - 如果
data.length
小於count
,表示搜尋偏移 已達到此作業的檔案結尾。 - 如果
data.length
為零,但count
不是,表示 跳轉偏移值已等於或超過檔案結尾,且無資料 文字。 - 如果
count
為 0,伺服器應執行所有檢查,確保 讀取權限而不實際讀取任何內容,然後傳回空白data
向量。
這個方法需要 Rights.READ_BYTES 右側。
如果 count
大於 MAX_TRANSFER_SIZE
,則傳回 ZX_ERR_OUT_OF_RANGE
。
要求
名稱 | 類型 |
---|---|
count |
uint64
|
回應
名稱 | 類型 |
---|---|
payload |
Readable_Read_Result
|
符號連結
包含符號連結的 ['Node']。
複製
建立另一個連至同一遠端物件的連線。
flags
可以是下列任一值:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
系統會忽略所有其他標記。
flags
中的 OpenFlags.RIGHT_*
位元針對產生的結果要求相應權限
複製的物件
複製物件的權利必須小於或等於原始物件的權限,否則
會傳回 ZX_ERR_ACCESS_DENIED
。
或者,傳遞 OpenFlags.CLONE_SAME_RIGHTS
來繼承來源連線的權限。
將任一 OpenFlags.RIGHT_*
標記與
OpenFlags.CLONE_SAME_RIGHTS
。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
關閉
終止連線。
呼叫 Close
後,用戶端不得傳送任何其他要求,
伺服器傳送狀態回應後,應會關閉連線 而非傳送口號
關閉管道的用戶端端應與語意相同
便可呼叫 Close
,而不必知道拍攝完成時間或
狀態。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
說明
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Symlink_Describe_Result
|
GetAttr
取得節點相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
取得節點相關資訊。
節點的屬性必須保持穩定 (獨立於 所使用的特定通訊協定
如果特定屬性不適用或不支援 檔案系統中不應出現相應的欄位
query
是位元遮罩,用於指定要擷取的屬性。伺服器 不應超過必要的傳回時間。
attributes
:傳回的屬性。
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
query |
NodeAttributesQuery
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
取得連線相關資訊。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
取得與這個節點指定屬性 name
相關聯的值。
屬性名稱的長度上限為 MAX_ATTRIBUTE_NAME。否 依循特定結構
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
取得用於存取這個檔案的 Directory.Open
權限和旗標。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
LinkInto
建立指向此物件的連結,在其代表的目錄中名為 dst
dst_parent_token
。
dst
必須是已解析的物件名稱。包含「/」字串中的值
ZX_ERR_INVALID_ARGS
。
使用此方法時,需要此物件的檔案系統支援的最高權限組合。
對檔案來說,這通常是 Rights.READ_BYTES、Rights.WRITE_BYTES。
Rights.GET_ATTRIBUTES 及 Rights.UPDATE_ATTRIBUTES。有些檔案系統
支援 Rights.EXECUTE 右側。權限不足,會導致
ZX_ERR_ACCESS_DENIED
。
如果這個物件沒有連結,就會因 ZX_ERR_NOT_FOUND
而失敗。
這個方法沒有相同的不可分割屬性含有 Directory::Link
方法,
這表示呼叫 Open
後 LinkInto
不會等於 Directory::Link
因為 LinkInto
不會防止來源重新命名或取消連結。
要求
名稱 | 類型 |
---|---|
dst_parent_token |
Token
|
dst |
Name
|
回應
名稱 | 類型 |
---|---|
payload |
Linkable_LinkInto_Result
|
ListExtendedAttributes
為相關聯的所有擴充屬性名稱建立疊代器 使用這個節點如果發生錯誤,則會在 疊代器要求管道,然後關閉管道。
可搭配上述任何名稱使用 GetExtendedAttributes 來擷取 關聯值
這種方法需要 Rights.GET_ATTRIBUTES 正確。
要求
名稱 | 類型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
如果 OpenFlags.DESCRIBE
要求,FIDL 伺服器立即產生這類事件。
表示開啟作業成功或失敗,並視需要一併說明
物件。如果狀態為 ZX_OK
,則 info
包含物件的描述性資訊
(與 Describe
傳回的格式相同)。
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
當伺服器提出要求,就會立即產生事件 NodeFlags.GET_REPRESENTATION。這項活動是第一則訊息 且只會傳送一次
使用中的變化版本會對應至系統支援的以下其中一個通訊協定: 代表連線時間的結果 協商。提供輔助帳號 (如適用)。
如果用戶端在 protocols
期間
Directory.Open,代表還有
透過其代碼進行連線時間協商的結果。
元素會與 NodeProtocolKinds:
這是 fuchsia.unknown/Queryable.Query +
特定通訊協定的固有 Describe
方法。該名稱目前是
以免需要額外的來回行程
回應
名稱 | 類型 |
---|---|
payload |
Representation
|
查詢
要求
<空白>
回應
名稱 | 類型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
向檔案系統查詢檔案系統的特定資訊。
要求
<空白>
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
RemoveExtendedAttribute
移除指定的擴充屬性。
如果屬性不存在,則會傳回 ZX_ERR_NOT_FOUND。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新開啟
建立另一個連至相同節點的連線。
要求
名稱 | 類型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetAttr
更新節點相關資訊。
如果不支援 flags 指定的任何屬性,則會傳回 ZX_ERR_NOT_SUPPORTED
。
這個方法需要下列權限:OpenFlags.RIGHT_WRITABLE
,否則會傳回
ZX_ERR_BAD_HANDLE
。
要求
名稱 | 類型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
針對這個節點,將指定屬性 name
的值設為 value
。
屬性名稱可能存在,在此情況下,屬性會更新。 如果屬性不存在,系統會建立該屬性。名稱不得包含 但包含空值。如果是,會傳回 ZX_ERR_INVALID_ARGS。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
變更用於存取檔案的 Directory.Open
旗標。
支援的可開啟 / 關閉的標記:
OpenFlags.APPEND
使用此方法不需任何權利。
要求
名稱 | 類型 |
---|---|
flags |
OpenFlags
|
回應
名稱 | 類型 |
---|---|
s |
zx/Status
|
同步
將對節點的更新同步處理到基礎媒體 (如果有的話)。
檔案系統伺服器清除
與基礎媒體相關的更新,但不保證能
基礎媒體保存了資訊,也無從得知
完全致力於硬體客戶可使用「Sync
」確保排序
作業。
使用此方法不需任何權利。
要求
<空白>
回應
名稱 | 類型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新節點相關資訊。
attributes
如果有attributes
中的資料表欄位,則表示 更新對應屬性的意圖。
如果節點不支援任何指定屬性,則傳回 ZX_ERR_NOT_SUPPORTED
。
使用這個方法需要右側的 Rights.UPDATE_ATTRIBUTES。
要求
名稱 | 類型 |
---|---|
payload |
MutableNodeAttributes
|
回應
名稱 | 類型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
可寫入
寫入
這個外掛程式能在跳轉偏移位置寫入資料。 搜尋位移會隨著寫入的位元組數向前移動。 如果檔案處於附加模式,則搜尋位移會先設為結尾 然後寫入寫入 (以不可拆分完成的步驟)
如果搜尋偏移 + data.length
超過,檔案大小可能會變大
目前的檔案結尾。
- 要求
data
要寫入檔案的位元組緩衝區。
- 回應
actual_count
是寫入的位元組數。
不變
- 傳回的
actual_count
一律不會大於data.length
。 - 如果伺服器無法寫入所有資料,例如不夠
空格,
actual_count
可能小於data.length
。如果沒有位元組 寫入錯誤,則傳回錯誤。 - 如果
data.length
為零,則伺服器應執行所有檢查 確保無需修改檔案,並傳回 以便順利寫入零位元組如果搜尋偏移值仍會更新, 在附加模式中
此方法需要 Rights.WRITE_BYTES 右側。
要求
名稱 | 類型 |
---|---|
data |
Transfer
|
回應
名稱 | 類型 |
---|---|
payload |
Writable_Write_Result
|
結構
AdvisoryLockRange
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
origin |
SeekOrigin
|
在這個檔案中計算 offset 的位置。 |
無預設 |
offset |
int64
|
位元組範圍的開始時間,以與 origin 之間的偏移表示。 如果 origin 為 SeekOrigin.START,則不得為負數。 |
無預設 |
length |
int64
|
位元組範圍長度,以位元組為單位。 如果長度為零,則位元組範圍會擴展到 無論檔案大小為何。 如果長度為負數,位元組範圍會包含位元組 |
無預設 |
AdvisoryLocking_AdvisoryLock_Response
<空白>
Directory2_CreateSymlink_Response
定義於 fuchsia.io/directory2.fidl
<空白>
Directory2_Rename_Response
定義於 fuchsia.io/directory2.fidl
<空白>
Directory2_Unlink_Response
定義於 fuchsia.io/directory2.fidl
<空白>
DirectoryObject
<空白>
ExtendedAttributeIterator_GetNext_Response
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
attributes |
vector<vector<uint8>>[128]
|
無預設 | |
last |
bool
|
無預設 |
FileObject 資源
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
event |
handle<event>?
|
選用的事件,傳送物件可讀性的相關資訊 或可撰寫性這個事件會轉發基礎物件的相關資訊,而不是 授予用戶端的能力:此事件可能表示為「可讀取」的 不讀取這類連線 「 |
無預設 |
stream |
handle<stream>?
|
預留位置,供日後的串流支援使用。 目前伺服器不必在這個欄位傳送帳號代碼。 |
無預設 |
File_Allocate_Response
<空白>
File_EnableVerity_Response
<空白>
File_GetBackingMemory_Response 資源
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
vmo |
handle<vmo>
|
無預設 |
File_ReadAt_Response
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
data |
Transfer
|
無預設 |
File_Resize_Response
<空白>
File_Seek_Response
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
offset_from_start |
uint64
|
無預設 |
File_WriteAt_Response
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
actual_count |
uint64
|
無預設 |
FilesystemInfo
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
total_bytes |
uint64
|
可儲存在檔案系統中的資料位元組數。不計入 中繼資料或其他檔案系統負擔,例如區塊捨入。 |
無預設 |
used_bytes |
uint64
|
檔案系統使用的資料位元組數。不計入 中繼資料或其他檔案系統負擔,例如區塊捨入。 |
無預設 |
total_nodes |
uint64
|
可儲存在檔案系統中的節點數量。 |
無預設 |
used_nodes |
uint64
|
檔案系統使用的節點數量。 |
無預設 |
free_shared_pool_bytes |
uint64
|
可從基礎磁碟區分配的額外空間 聯絡。如果不支援或沒有空間可以增加檔案系統,這個程式碼就會 的值應為零。 |
無預設 |
fs_id |
uint64
|
此檔案系統執行個體的專屬 ID。系統不會保存 就會重新開機。 實作項目應建立一個核心物件 (通常是事件) 並將 koid 用於 檔案系統 ID這個 Koid 可以保證系統中獨一無二。 |
無預設 |
block_size |
uint32
|
單一檔案系統區塊的大小 (以位元組為單位)。 |
無預設 |
max_filename_size |
uint32
|
檔案系統名稱的長度上限。 |
無預設 |
fs_type |
uint32
|
基礎檔案系統類型的專屬 ID。 |
無預設 |
padding |
uint32
|
無預設 | |
name |
int8[32]
|
無預設 |
Linkable_LinkInto_Response
<空白>
Node2_RemoveExtendedAttribute_Response
<空白>
Node2_SetExtendedAttribute_Response
<空白>
Node2_Sync_Response
<空白>
Node2_UpdateAttributes_Response
<空白>
NodeAttributes
NodeAttributes 定義了檔案系統節點的一般資訊。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
mode |
uint32
|
「模式」中說明瞭保護位元和節點類型資訊。 |
無預設 |
id |
uint64
|
檔案系統專屬 ID。 |
無預設 |
content_size |
uint64
|
節點大小 (以位元組為單位)。 |
無預設 |
storage_size |
uint64
|
儲存節點所需的空間 (可能大於大小),以位元組為單位。 |
無預設 |
link_count |
uint64
|
硬連結數。 |
無預設 |
creation_time |
uint64
|
自 Unix 紀元 (世界標準時間) 起的建立時間 (在建立後可手動更新)。 |
無預設 |
modification_time |
uint64
|
自 Unix 紀元 (世界標準時間) 之後的上次修改時間 (以 ns 為單位)。 |
無預設 |
NodeAttributes2
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
mutable_attributes |
MutableNodeAttributes
|
無預設 | |
immutable_attributes |
ImmutableNodeAttributes
|
無預設 |
Readable_Read_Response
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
data |
Transfer
|
無預設 |
服務
<空白>
SymlinkObject
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
target |
SymlinkTarget
|
無預設 |
Writable_Write_Response
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
actual_count |
uint64
|
無預設 |
ENUMS
AdvisoryLockType 嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
閱讀 |
1 |
零或多個連線可同時保留檔案的讀取鎖定。 |
寫入 |
2 |
最多一個連線可同時保留檔案的寫入鎖定。 將檔案寫入鎖定功能保留時,無法保留其他類型的鎖定設定 。 |
解鎖 |
3 |
區域可指定要解鎖的區域。 |
CreationMode 嚴格
類型:uint32
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|---|---|
一律不連線 |
0 |
僅開啟現有物件,不得建立新物件。 |
NEVER_DEPRECATED |
1 |
已淘汰:19
|
ALLOW_EXISTING |
2 |
如果沒有一個物件,請建立一個新物件,否則請開啟現有物件。 |
一律使用 |
3 |
請建立新的物件 (如果不存在),否則要求會在
|
DirentType 彈性
類型:uint8
名稱 | 值 | 說明 |
---|---|---|
不明 |
0 |
類型不明的骯髒。 |
目錄 |
4 |
代表目錄物件的 dirent。 |
BLOCK_DEVICE |
6 |
代表區塊裝置物件的髒汙。 |
檔案 |
8 |
代表檔案物件的目錄。 |
SYMLINK |
10 |
符號連結。 新增日期:18
|
服務 |
16 |
代表服務物件的目錄。 |
HashAlgorithm 彈性
類型:uint8
表示要使用哪個雜湊演算法來建構默克爾樹 支援 fverity 的檔案。
名稱 | 值 | 說明 |
---|---|---|
SHA256 |
1 |
|
SHA512 |
2 |
SeekOrigin 嚴格
類型:uint32
更新跳轉位移的參考點。請參閱 File.Seek。
此列舉與 zx_stream_seek_origin_t
列舉相符。
名稱 | 值 | 說明 |
---|---|---|
開始 |
0 |
從檔案開頭跳轉。
搜尋偏移值會設為 |
目前版本 |
1 |
從檔案中的目前位置跳轉到檔案中。
搜尋偏移值為目前的搜尋偏移,再加上 |
結束 |
2 |
從檔案結尾處跳轉。
搜尋偏移就是檔案大小加上 |
SetExtendedAttributeMode 嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
SET |
1 |
設定延伸屬性的值,無論其是否設定在內 已存在。 |
建立 |
2 |
建立新的擴充屬性。失敗 (如果已存在)。 |
取代 |
3 |
取代現有延伸屬性的值。失敗 (如果符合的話) 不存在 |
WatchEvent 嚴格
類型:uint8
名稱 | 值 | 說明 |
---|---|---|
已刪除 |
0 |
表示目前正在查看的目錄已遭刪除。系統為這個事件傳回的名稱
將會是 |
增加 |
1 |
表示已在目錄中建立 (新增或已移動) 節點。 |
已移除 |
2 |
表示節點已從目錄中移除 (已刪除或移動)。 |
現有 |
3 |
確認開始監控時,目錄中已有的節點。 |
閒置 |
4 |
表示不會再傳送 |
資料表
AdvisoryLockRequest
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
type |
AdvisoryLockType
|
要取得的鎖定類型。 如果沒有這個欄位,AdvisoryLock 方法將會失敗 與 ZX_ERR_INVALID_ARGS 比對。 |
2 |
range |
AdvisoryLockRange
|
要鎖定的檔案內的位元組範圍。 範圍可超出檔案結尾,但無法延伸 檔案開頭。 如果沒有這個欄位,則範圍會預設為整個檔案。 |
3 |
wait |
bool
|
檔案是否應等待回覆 AdvisoryLock 方法,直到可以取得要求的鎖定為止。 如未填寫這個欄位,檔案將不會等待。 |
ConnectionInfo 資源
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
rights |
Rights
|
目前連線擁有的權利。注意: |
ConnectorInfo
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
attributes |
NodeAttributes2
|
要求的物件屬性。只有在收到請求時,系統才會填入值。 新增日期:18
|
DirectoryInfo
定義於 fuchsia.io/directory2.fidl
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
attributes |
NodeAttributes2
|
要求的目錄屬性。只有在收到請求時,系統才會填入值。 新增日期:18
|
DirectoryProtocolOptions
定義於 fuchsia.io/directory2.fidl
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
optional_rights |
Rights
|
進行協商的權利。 出現時,表示呼叫端要求的其他選用權利等同於 這個值和要求連線的權利的交集。這個 是高度標示,可阻止權限提報,因為這項要求是由 Proxy 處理 在多個躍點上每個 Proxy 都必須將值與 先要求連線,再啟用 Proxy。 此為必要欄位,用於表示 POSIX 語意,其中目錄的 |
FileInfo 資源
節點檔案表示法的輔助資料。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
is_append |
bool
|
如果檔案是以附加模式開啟,則為「是」。 在附加模式中,跳轉偏移會在每個 寫入,這兩個步驟會以不可分割的方式執行 |
2 |
observer |
handle<event>
|
選用事件,用於傳送物件 可讀性或可撰寫性這項活動會傳遞 基礎物件,而非授予用戶端的能力:此事件 可能是「可讀」並連線至沒有 讀取能力 如果符合下列條件,就會顯示這個事件:
在這個事件中,系統可能會觀察到 FileSignal 值。 |
3 |
stream |
handle<stream>
|
選用的串流物件,可用於讀取及寫入資料 檔案。 使用串流物件讀取和寫入檔案的速度最高可達 20 倍 比使用讀取和寫入功能讀取及寫入檔案更快 File 通訊協定中的作業。 |
4 |
attributes |
NodeAttributes2
|
要求的檔案屬性。只有在收到請求時,系統才會填入值。 新增日期:18
|
ImmutableNodeAttributes
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
protocols |
NodeProtocolKinds
|
說明節點支援的表示法種類。
注意:這並不是連線時間協商的結果。
透過 |
2 |
abilities |
Abilities
|
說明節點支援的作業種類。 注意:這是與連線當時使用的權利不同。 |
3 |
content_size |
uint64
|
節點大小 (以位元組為單位)。 |
4 |
storage_size |
uint64
|
儲存節點所需的空間 (可能大於大小),以位元組為單位。 |
5 |
link_count |
uint64
|
節點的硬連結數量。不得小於一。 |
6 |
id |
Id
|
節點的 ID。請參閱「ID」。
這個 |
7 |
change_time |
uint64
|
中繼資料上次變更時間 (以奈秒為單位),自 Unix 紀元 (世界標準時間) 起算。 新增時間:HEAD
|
8 |
options |
VerificationOptions
|
包含已啟用驗證檔案的驗證選項。 新增時間:HEAD
|
9 |
root_hash |
vector<uint8>[64]
|
檔案的根雜湊。並非所有檔案系統都對所有檔案都支援這項設定。 新增時間:HEAD
|
10 |
verity_enabled |
bool
|
如果這個檔案已啟用驗證狀態,則為「是」。 新增時間:HEAD
|
MutableNodeAttributes
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
creation_time |
uint64
|
自 Unix 紀元 (世界標準時間) 以來的建立時間 (以奈秒為單位)。 |
2 |
modification_time |
uint64
|
自 Unix 紀元 (世界標準時間) 以來的上次修改時間 (以奈秒為單位)。 |
3 |
mode |
uint32
|
POSIX 相容性屬性。大多數檔案系統不支援 這些原則只需要儲存及擷取資料 (例如 擴充屬性),也不嘗試解讀這類屬性 (例如 權限檢查或處理裝置時特別開啟)。 新增日期:18
|
4 |
uid |
uint32
|
新增日期:18
|
5 |
gid |
uint32
|
新增日期:18
|
6 |
rdev |
uint64
|
新增日期:18
|
7 |
access_time |
uint64
|
上次存取時間 (以奈秒為單位),自 Unix 紀元 (世界標準時間) 起算。請注意,伺服器可能 如果這是唯一更新的屬性,則一律更新此值。 新增日期:18
|
8 |
casefold |
bool
|
支援 Casefold (不區分大小寫的檔案名稱) 這個屬性只能在空白目錄中變更,且任何實體都會沿用這個屬性 子目錄 撰寫本文時,唯一支援的檔案系統是 Fxfs。 新增時間:HEAD
|
NodeOptions
定義於 fuchsia.io/directory2.fidl
開啟節點時使用的選項。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
flags |
NodeFlags
|
|
2 |
protocols |
NodeProtocols
|
呼叫端可以透過設定與 預期的類型:
如果存在多個通訊協定,可能會構成其中一個通訊協定。 呼叫端應指定 NodeFlags.GET_REPRESENTATION,以便接收 Node.OnRepresentation 事件,藉此確認通訊協定。 |
3 |
mode |
CreationMode
|
指定應如何建立目標物件。如果要建立物件,其類型
必須由 如果類型不明確 (例如同時設定了 新增日期:19
|
4 |
rights |
Rights
|
新連線要求的權限。如果任何右超出目前狀態
連線,object_request 將透過 而獲得的連線權限將限縮至目標的作業範圍。 舉例來說,如果目標節點是檔案,且 會要求 Rights.WRITE_BYTES 和 Rights.MODIFY_DIRECTORY,進而產生的結果 連線只會授予 Rights.WRITE_BYTES。 如果沒有適當的權利欄位,則等同於空白的權利。 |
5 |
attributes |
NodeAttributesQuery
|
如果已設定 NodeFlags.GET_REPRESENTATION 標記,要在當中傳回的屬性 Node.OnRepresentation.這需要父項的 Rights.GET_ATTRIBUTES 而非產生的連線 新增日期:18
|
6 |
create_attributes |
MutableNodeAttributes
|
如要建立物件,這個屬性會指定應以
物件名稱這需要父項具備 Rights.UPDATE_ATTRIBUTES
而非產生的連線要求會在發生 新增日期:18
|
NodeProtocols
定義於 fuchsia.io/directory2.fidl
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
directory |
DirectoryProtocolOptions
|
|
2 |
file |
FileProtocolFlags
|
|
3 |
symlink |
SymlinkProtocolFlags
|
新增日期:18
|
4 |
node |
NodeProtocolFlags
|
詢問節點通訊協定。唯一支援的是 Rights.GET_ATTRIBUTES。
在產生的連線上呼叫 新增日期:18
|
選項
定義於 fuchsia.io/directory2.fidl
適用於 Open3 的選項。不同於旗標,這些選項是專為特定用途而設計 用途 (例如減少要求屬性時的往返延遲時間)。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
attributes |
NodeAttributesQuery
|
要求與 OnRepresentation 回應一併傳送的一組屬性。沒有影響
如未設定 |
2 |
create_attributes |
MutableNodeAttributes
|
在建立新物件時,要求一組不可分割的屬性。沒有影響
如未設定 |
RightsRequest
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
rights |
Rights
|
新連線要求的權限。 如果右超出要求連線的權利
則 object_request 就會以
如果沒有,則會繼承要求連線的權利。 |
SymlinkInfo
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
target |
SymlinkTarget
|
符號連結在伺服器上沒有意義。用戶端可自由解讀 任何選擇都不例外 |
2 |
attributes |
NodeAttributes2
|
對符號連結要求的屬性。只有在收到請求時,系統才會填入值。 |
UnlinkOptions
定義於 fuchsia.io/directory2.fidl
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
flags |
UnlinkFlags
|
VerificationOptions
這組選項可用來啟用檔案的身分。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
hash_algorithm |
HashAlgorithm
|
|
2 |
salt |
vector<uint8>[32]
|
進行雜湊處理前,每個區塊前方都會加上 |
聯合國
AdvisoryLocking_AdvisoryLock_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
AdvisoryLocking_AdvisoryLock_Response
|
|
2 |
err |
zx/Status
|
ConnectionProtocols 彈性
定義於 fuchsia.io/directory2.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
connector |
ConnectorFlags
|
透過連線提供節點的基礎通訊協定的要求。 |
2 |
node |
NodeOptions
|
基礎 Node 通訊協定會透過連線提供的要求。 |
Directory2_CreateSymlink_Result 嚴格
定義於 fuchsia.io/directory2.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Directory2_CreateSymlink_Response
|
|
2 |
err |
zx/Status
|
目錄 2_Rename_Result 嚴格
定義於 fuchsia.io/directory2.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Directory2_Rename_Response
|
|
2 |
err |
zx/Status
|
Directory2_取消連結_Result 嚴格
定義於 fuchsia.io/directory2.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Directory2_Unlink_Response
|
|
2 |
err |
zx/Status
|
ExtendedAttributeIterator_GetNext_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
ExtendedAttributeIterator_GetNext_Response
|
|
2 |
err |
zx/Status
|
ExtendedAttributeValue 彈性 資源
擴充屬性的值類型。如果值小於 32768 則會併入內嵌內容寫入大於此大小的值 移至 vmo 緩衝區
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
bytes |
vector<uint8>[32768]
|
|
2 |
buffer |
handle<vmo>
|
File_Allocate_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_Allocate_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
File_EnableVerity_Result 結果嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_EnableVerity_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
File_GetBackingMemory_Result 嚴格 資源
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_GetBackingMemory_Response
|
|
2 |
err |
zx/Status
|
File_ReadAt_Result 的嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_ReadAt_Response
|
|
2 |
err |
zx/Status
|
File_Resize_Result 結果嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_Resize_Response
|
|
2 |
err |
zx/Status
|
File_Seek_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_Seek_Response
|
|
2 |
err |
zx/Status
|
File_WriteAt_Result 結果嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
File_WriteAt_Response
|
|
2 |
err |
zx/Status
|
Linkable_LinkInto_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Linkable_LinkInto_Response
|
|
2 |
err |
zx/Status
|
Node2_GetAttributes_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
NodeAttributes2
|
|
2 |
err |
zx/Status
|
Node2_GetExtendedAttribute_Result 嚴格 資源
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
ExtendedAttributeValue
|
|
2 |
err |
zx/Status
|
Node2_RemoveExtendedAttribute_Result strict
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Node2_RemoveExtendedAttribute_Response
|
|
2 |
err |
zx/Status
|
Node2_SetExtendedAttribute_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Node2_SetExtendedAttribute_Response
|
|
2 |
err |
zx/Status
|
Node2_Sync_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Node2_Sync_Response
|
|
2 |
err |
zx/Status
|
Node2_UpdateAttributes_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Node2_UpdateAttributes_Response
|
|
2 |
err |
zx/Status
|
NodeInfo 已淘汰嚴格 資源
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
service |
Service
|
此連線未提供任何通訊協定資訊。 |
2 |
file |
FileObject
|
連線會產生 File。 |
3 |
directory |
DirectoryObject
|
|
4 |
symlink |
SymlinkObject
|
連線會產生 ['Symlink']。 新增日期:18
|
Readable_Read_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Readable_Read_Response
|
|
2 |
err |
zx/Status
|
代表性的彈性 資源
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
connector |
ConnectorInfo
|
用來表示節點連接器表示法的輔助資料, 以便瞭解通訊協定探索與連線 它支援連線至 維護檔案系統伺服器的路徑 Node2。 |
2 |
directory |
DirectoryInfo
|
節點目錄表示法的輔助資料。 在「Representation」(表示法) 中選擇此子類 連線會採用 Directory 通訊協定。 |
3 |
file |
FileInfo
|
節點檔案表示法的輔助資料。 在「Representation」(表示法) 中選擇此子類 連線會讀取 File 通訊協定。 |
4 |
symlink |
SymlinkInfo
|
節點符號連結表示法的輔助資料。 在「Representation」(表示法) 中選擇此子類時 連線會採用 Symlink 通訊協定。 請參閱 NodeProtocolKinds.SYMLINK。 新增日期:18
|
Symlink_describe_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
SymlinkInfo
|
|
3 |
framework_err |
internal
|
Writable_Write_Result 嚴格
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Writable_Write_Response
|
|
2 |
err |
zx/Status
|
商業智慧
AllocateMode 彈性
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
KEEP_SIZE |
1 | |
UNSHARE_RANGE |
2 | |
PUNCH_HOLE |
4 | |
COLLAPSE_RANGE |
8 | |
ZERO_RANGE |
16 | |
INSERT_RANGE |
32 |
Connectors 旗標彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|
FileProtocolFlags 彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|---|---|
附加 |
1 | 在附加模式下開啟檔案,亦即連線應嘗試前往 每次寫入前都會先確認這個檔案 如果檔案不支援附加功能,應該會出現 |
刪節 |
2 | 將物件長度設為 0,以在使用前截斷物件。需要 右側的 Rights.WRITE_BYTES。 如果檔案不支援截斷,可能會導致
|
FileSignal 的嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
可讀 |
16777216 | 表示檔案已可讀取。 |
疊加 |
33554432 | 表示檔案已可寫入。 |
旗標彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
用於指定節點開啟方式的旗標。請注意,位元範圍是保留的 針對特定用途:
- 位元 1 到 16:權限標記
PERM_
(例如 Flags.PERMREAD)。 - Bits 17-32:POSIX 相容性
O
旗標 (例如 Flags.FILE_TRUNCATE 或O_TRUNC
)。 - Bits 33-64:Fchsia 專用旗幟。
名稱 | 值 | 說明 |
---|---|---|
PERM_CONNECT |
1 | 允許使用 PROTOCOL_SERVICE 開啟子節點。 |
PERM_READ |
2 | 讀取檔案的位元組內容。 |
PERM_WRITE |
4 | 將位元組內容寫入檔案。 |
PERM_EXECUTE |
8 | 執行檔案的位元組內容。 |
PERM_GET_ATTRIBUTES |
16 | 取得/查詢節點屬性。 |
PERM_SET_ATTRIBUTES |
32 | 設定/更新節點的屬性。 |
PERM_ENUMERATE |
64 | 列舉 (清單) 目錄項目。 |
PERM_TRAVERSE |
128 | 允許使用節點通訊協定開啟子節點。必須以 PERM_ENUMERATE 指定
否則要求就會因 |
PERM_MODIFY |
256 | 修改目錄項目 (create/rename/link/unlink)。必須以 PERM_ENUMERATE 指定
否則要求就會因 |
PERM_INHERIT_WRITE |
8192 | 沿用可用的寫入權限 (PERM_WRITE、PERM_SET_ATTRIBUTES、PERM_MODIFY、 PERM_ENUMERATE)。如果父項連線缺少任何連線,伺服器必須確保這個標記已移除 授權。請參閱 INHERITED_WRITE_PERMISSIONS 瞭解 資源。 |
PERM_INHERIT_EXECUTE |
16384 | 繼承可用執行權限 (PERM_EXECUTE)。 如果父項連線缺少 PERM_EXECUTE,伺服器就必須移除這個標記。 |
PROTOCOL_SERVICE |
4294967296 | 如果這是服務節點,請連線至基礎通訊協定。呼叫端必須決定
正確通訊協定 (例如以路徑為依據)。除非與 PROTOCOL_NODE 搭配使用,否則請指定
要求的其他標記也會因 |
PROTOCOL_NODE |
4194304 | 連線至基礎節點。優先順序高於其他通訊協定。如果其他 |
PROTOCOL_DIRECTORY |
524288 | 呼叫端接受 fuchsia.io/Directory 通訊協定。等同於 POSIX |
PROTOCOL_FILE |
8589934592 | 呼叫端接受 fuchsia.io/File 通訊協定。 |
PROTOCOL_SYMLINK |
17179869184 | 呼叫端接受 fuchsia.io/Symlink 通訊協定。 |
FLAG_SEND_REPRESENTATION |
1099511627776 | 呼叫端在成功時要求 fuchsia.io/Node.OnRepresentation 事件。 |
FLAG_MAYBE_CREATE |
65536 | 如果不存在物件,請建立新的物件,否則請開啟現有物件。如果已設定,
必須設定單一 |
FLAG_MUST_CREATE |
131072 | 請建立新的物件 (如果不存在),否則使用 時就會失敗
|
FILE_APPEND |
1048576 | 以附加模式開啟檔案。搜尋指標將移至檔案結尾 (EOF)
。等同於 POSIX |
FILE_TRUNCATE |
262144 | 開啟檔案時,將檔案長度縮短至零。等同於 POSIX |
ModeType 嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
DO_NOT_USE |
2147483648 |
NodeAttributeFlags 嚴格
類型:uint32
「attributes」欄位更新節點時 「flags」引數。
名稱 | 值 | 說明 |
---|---|---|
CREATION_TIME |
1 | |
MODIFICATION_TIME |
2 |
NodeAttributesQuery 彈性
類型:uint64
名稱 | 值 | 說明 |
---|---|---|
PROTOCOLS |
1 | |
趣味 |
2 | |
CONTENT_SIZE |
4 | |
STORAGE_SIZE |
8 | |
LINK_COUNT |
16 | |
ID |
32 | |
CREATION_TIME |
64 | |
MODIFICATION_TIME |
128 | |
模式 |
256 | Posix 屬性。 新增日期:18
|
UID |
512 | 新增日期:18
|
GID |
1024 | 新增日期:18
|
RDEV |
2048 | 新增日期:18
|
ACCESS_TIME |
4096 | 新增日期:18
|
CHANGE_TIME |
8192 | 新增日期:18
|
選項 |
16384 | 詳細屬性。 新增時間:HEAD
|
ROOT_HASH |
32768 | 新增時間:HEAD
|
VERITY_ENABLED |
65536 | 新增時間:HEAD
|
CASEFOLD |
131072 | 支援 Casefold (不區分大小寫的檔案名稱)。 如果設為 true,檔案查詢不區分大小寫,但會區分大小寫。例如「Foo」將 會逐字儲存,但能以「foo」、「fOO」等方式開啟, 並配合 Unicode 12 NFD 正規化和大小寫標準。 新增時間:HEAD
|
NodeFlags 彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|---|---|
GET_REPRESENTATION |
1 | 要求將 Node.OnRepresentation 事件做為 通訊協定要求 這是 fuchsia.unknown/Queryable.Query + 固有 |
NodeProtocolFlags 彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|---|---|
MUST_BE_DIRECTORY |
1 | 只有在基礎物件為目錄的情況下,才可允許連線。嘗試
因為開啟目錄以外的檔案會得到 |
NodeProtocolKinds 彈性
類型:uint64
在 fuchsia.io/node-protocols.fidl 中定義的
雖然節點開啟時可能有多種支援的表示法 但可能有固定的基礎身分
目前是透過 File 通訊協定存取檔案,然後將
使用 GET_REPRESENTATION
開啟 Representation.FileInfo。不過
日後我們可能會推出更複雜的 FileV2
通訊協定,或
更有效率的 SuperFastFile
,由專用核心物件提供支援。全新內容
用戶端可以在要求層級時,指定
NodeProtocolKinds 中的對應位元,而現有用戶端
繼續透過舊版表示法與節點通訊。
NodeProtocolKinds 可透過通訊協定達成前瞻相容性 協商。
元素會與 表示法:
名稱 | 值 | 說明 |
---|---|---|
連接器 |
1 | 節點的連接器表示法。 連線將朗讀 Node 或目標通訊協定。 視開啟期間使用的旗標而定 |
目錄 |
2 | 節點的目錄表示法。 連線將會連線至 Directory 通訊協定。 |
檔案 |
4 | 節點的檔案表示法。 連線會說出 File 通訊協定。 |
SYMLINK |
8 | 節點的符號連結表示法。 連線會連線至 Symlink 通訊協定。 新增時間:HEAD
|
OpenFlags 嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
RIGHT_READABLE |
1 | 可從目標物件讀取。 |
RIGHT_WRITABLE |
2 | 可寫入目標物件。 |
RIGHT_EXECUTABLE |
8 | 連線可以對應目標物件可執行檔。 |
建立 |
65536 | 如果物件不存在,請建立該物件。 |
CREATE_IF_ABSENT |
131072 | (含「建立」) 物件如果已存在,則失敗。 |
刪節 |
262144 | 使用前截斷物件。 |
目錄 |
524288 | 斷言要開啟的物件是目錄。 如果目標物件不是目錄,則傳回錯誤。 |
附加 |
1048576 | 在所有寫入作業開始前跳轉至物件結尾。 |
NODE_REFERENCE |
4194304 | 開啟物件的參照,而非物件本身。
「只能」將下列標記與
|
DESCRIBE |
8388608 | 狀態為「OnOpen」的要求事件是否已傳送到介面要求。 如果開啟/本機副本成功,事件會包含非空值的 |
POSIX_WRITABLE |
134217728 | 指定這個標記,要求 POSIX 相容性處理與寫入權限相關。 目前這項設定會影響開啟「開啟」期間的權限處理方式:
如果省略這個標記,則一律使用所要求的權限,導致作業失敗 要求的權限超過目前連線所附的權限時,發生存取遭拒錯誤。 如果要求連線為唯讀,而要求的權限為唯讀狀態,標記 伺服器可忽略,也不會在下游轉送。這是實作詳細資料 對各掛接點強制執行階層權限的必要資料,因此不會有任何影響 對用戶端的預期行為造成影響 |
POSIX_EXECUTABLE |
268435456 | 如要要求執行權限處理方面的 POSIX 相容性,請指定此旗標。 目前這項設定會影響開啟「開啟」期間的權限處理方式:
如果省略這個標記,則一律使用所要求的權限,導致作業失敗 要求的權限超過目前連線所附的權限時,發生存取遭拒錯誤。 如果要求連線為唯讀,而要求的權限為唯讀狀態,標記 伺服器可忽略,也不會在下游轉送。這是實作詳細資料 對各掛接點強制執行階層權限的必要資料,因此不會有任何影響 對用戶端的預期行為造成影響 |
NOT_DIRECTORY |
33554432 | 斷言要開啟的物件並非目錄。 如果目標物件是目錄,則傳回錯誤。 |
CLONE_SAME_RIGHTS |
67108864 | 本機副本使用時,新的連線會繼承來源連線的權限,
無論是檔案或目錄否則,本機副本會嘗試使用要求的權限。
無法將任何 |
BLOCK_DEVICE |
16777216 | 以區塊裝置開啟目標物件。 |
作業嚴格
類型:uint64
定義於 fuchsia.io/rights-abilities.fidl
「權利」和「功能」這兩組成員的常見定義。可能會執行某些作業 僅適用於某些節點類型 (例如 Operations.MODIFY_DIRECTORY 僅適用於目錄)。
名稱 | 值 | 說明 |
---|---|---|
連線 |
1 | 連線至目錄中的服務。 |
READ_BYTES |
2 | 讀取節點或其子項的位元組內容。 |
WRITE_BYTES |
4 | 寫入節點或其子項的位元組內容。 |
執行 |
8 | 執行節點或其子項的位元組內容。 |
GET_ATTRIBUTES |
16 | 讀取節點和/或其子項的屬性。 |
UPDATE_ATTRIBUTES |
32 | 更新節點和/或其子項的屬性。 |
均速 |
64 | 讀取目錄中的節點清單。 |
火車 |
128 | 從目錄開啟節點。必須以 Rights.ENUMERATE 指定為目錄 開啟子項就能探測其內容。 |
MODIFY_DIRECTORY |
256 | 修改目錄中的節點清單,例如建立、重新命名、連結/取消連結等等... 由於目錄內容可透過名稱來探測,必須使用 Rights.ENUMERATE 發生與建立節點之間的衝突 |
SymlinkProtocolFlags 彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|
取消連結旗標彈性
類型:uint64
定義於 fuchsia.io/directory2.fidl
名稱 | 值 | 說明 |
---|---|---|
MUST_BE_DIRECTORY |
1 | 設定後,如果 並非目錄。 |
VmoFlags 嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
閱讀 |
1 | 可讀取 VMO 的要求。 |
寫入 |
2 | 可寫入 VMO 的要求。 |
執行 |
4 | 要求 VMO 可執行。 |
PRIVATE_CLONE |
65536 | 需要基礎 VMO 的寫入時複製副本。要求
會失敗。可能不提供
只在 私人本機副本至少採用
將 在某些情況下,用戶端需要
檔案可以使用 |
SHARED_BUFFER |
131072 | 要求的 VMO 必須能直接存取
匯入檔案的基礎 VMO如果這類 VMO,要求會失敗
。 即使 |
WatchMask 嚴格
類型:uint32
名稱 | 值 | 說明 |
---|---|---|
已刪除 |
1 | 由 |
增加 |
2 | 由 |
已移除 |
4 | 由 |
現有 |
8 | 由 |
閒置 |
16 | 由 |
觀測站
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
DIRECTORY_PROTOCOL_NAME | fuchsia.io/Directory |
String |
|
FILE_PROTOCOL_NAME | fuchsia.io/File |
String |
|
INHERITED_WRITE_PERMISSIONS | 其權限集 Flags.PERM_INHERIT_WRITE 從父項連線繼承而來 。請注意,如果連線缺少任何上述權限, 權限會沿用。 |
||
INO_UNKNOWN |
18446744073709551615
|
uint64 |
沒有 ino 值的節點應傳回這個值 例如 Readdir 和 GetAttr |
MASK_KNOWN_PERMISSIONS | |||
MASK_KNOWN_PROTOCOLS | |||
MASK_PERMISSION_FLAGS |
65535
|
uint64 |
|
MASK_POSIX_FLAGS |
4294967295
|
uint64 |
|
MAX_ATTRIBUTE_NAME |
255
|
uint64 |
延伸屬性名稱的大小上限。 新增日期:18
|
MAX_BUF |
8192
|
uint64 |
針對緩衝作業可傳輸的緩衝區空間上限。 這個容量目前稍微設定成部分值。 |
MAX_FILENAME |
255
|
uint64 |
單一檔案系統元件的長度上限 (以位元組為單位)。 |
MAX_FS_NAME_BUFFER |
32
|
uint64 |
|
MAX_INLINE_ATTRIBUTE_VALUE |
32768
|
uint64 |
要納入內嵌的延伸屬性值大小上限。 大於此大小的值會透過 vmo 傳遞。 新增日期:18
|
MAX_LIST_ATTRIBUTES_CHUNK |
128
|
uint64 |
ListExtendedAttributes 疊代器中的區塊大小上限。 新增日期:18
|
MAX_NAME_LENGTH |
255
|
uint64 |
單一檔案系統元件的長度上限 (以位元組為單位)。 |
MAX_PATH_LENGTH |
4095
|
uint64 |
檔案系統路徑的長度上限 (以位元組為單位)。 |
MAX_TRANSFER_SIZE |
8192
|
uint64 |
可使用以下模型讀取/寫入作業的 I/O 大小上限: 和位元組向量 |
MODE_PROTECTION_MASK |
4095
|
uint32 |
為 posix 保護而保留的位元。原生基礎架構檔案系統
不需要設定 |
MODE_TYPE_BLOCK_DEVICE |
24576
|
uint32 |
|
MODE_TYPE_DIRECTORY |
16384
|
uint32 |
|
MODE_TYPE_FILE |
32768
|
uint32 |
|
MODE_TYPE_MASK |
1044480
|
uint32 |
用來表示節點類型的位元。檢查標準機制
則是採用「mode」做為節點類型
|
MODE_TYPE_SERVICE |
65536
|
uint32 |
|
MODE_TYPE_SYMLINK |
40960
|
uint32 |
新增時間:HEAD
|
NODE_PROTOCOL_NAME | fuchsia.io/Node |
String |
|
OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE | 開啟節點參照時使用的旗標必須落在這個遮罩中。 |
||
OPEN_RIGHTS | 所有已知權利。 |
||
RW_STAR_DIR | 目錄權限別名 rw* 的別名* |
||
RX_STAR_DIR | 目錄權限別名 rx 的別名* |
||
R_STAR_DIR | 目錄權限別名 r* 的別名* |
||
SYMLINK_PROTOCOL_NAME | fuchsia.io/Symlink |
String |
新增日期:18
|
W_STAR_DIR | 目錄權限別名 w* 的別名 |
||
X_STAR_DIR | 目錄權限別名 x* 的別名* |
ALIASES
名稱 | 值 | 說明 |
---|---|---|
功能 |
fuchsia.io/Operations |
「功能」是指節點與節點相關的屬性。用於指定支援的作業。 在不支援該作業的節點上叫用作業會產生 |
ExtendedAttributeName |
vector [MAX_ATTRIBUTE_NAME ] |
擴充屬性的名稱。不得包含任何空值位元組。其他 以及大小上限,就不會對 名稱。 新增日期:18
|
ID |
uint64 |
用來識別節點的類型 (如果實作支援某些概念) 不重複的節點 ID 不重複性保證用戶端通常會以目錄樹狀結構的形式呈現,
組合多個備用實作執行個體ID
在對應的執行個體中,值只會是唯一的。
這些界線確實單純,因為
透明轉送目錄 Proxy這可能出現在用戶端中
在掃遍目錄樹狀結構時觀察相同的 fuchsia.fs/FilesystemInfo.fs_id 欄位可用於釐清差異 來自不同備份執行個體的 ID。 |
名稱 |
string [MAX_NAME_LENGTH ] |
節點名稱的類型,例如單一路徑元件。
例如: 不變有效的節點名稱必須符合下列條件:
|
路徑 |
string [MAX_PATH_LENGTH ] |
路徑是一或多個元件的字串,以「/」分隔。
例如: 不變有效的路徑必須符合下列條件:
請在用戶端將路徑轉換為標準格式。
舉例來說,客戶應將 |
權利 |
fuchsia.io/Operations |
權限是連線專屬的屬性,並限制可對 GKE 執行哪些作業 連線,包括可能授予新連線的連線。 如果叫用的作業沒有對應的正確結果,會導致 |
SymlinkTarget |
vector [MAX_PATH_LENGTH ] |
|
符記 |
zx/Handle |
用來識別節點連線的類型。 它代表能力:具有相關權限的節點參照。 |
轉移 |
vector [MAX_TRANSFER_SIZE ] |
用於讀取/寫入作業的位元組向量類型。 |