ATOMIC_CREATE_ECP_CONTEXT 結構 (ntifs.h)

ATOMIC_CREATE_ECP_CONTEXT 結構包含額外的 create 參數 (ECP) 內容,允許在建立期間以不可部分完成的方式對檔案執行補充作業。

語法

typedef struct _ATOMIC_CREATE_ECP_CONTEXT {
  USHORT               Size;
  USHORT               InFlags;
  USHORT               OutFlags;
  USHORT               ReparseBufferLength;
  PREPARSE_DATA_BUFFER ReparseBuffer;
  LONGLONG             FileSize;
  LONGLONG             ValidDataLength;
  PFILE_TIMESTAMPS     FileTimestamps;
  ULONG                FileAttributes;
  ULONG                UsnSourceInfo;
  USN                  Usn;
  ULONG                SuppressFileAttributeInheritanceMask;
  ULONG                InOpFlags;
  ULONG                OutOpFlags;
  ULONG                InGenFlags;
  ULONG                OutGenFlags;
  ULONG                CaseSensitiveFlagsMask;
  ULONG                InCaseSensitiveFlags;
  ULONG                OutCaseSensitiveFlags;
} ATOMIC_CREATE_ECP_CONTEXT, *PATOMIC_CREATE_ECP_CONTEXT;

成員

Size

此內容結構的大小,以位元組為單位。

InFlags

旗標,指出所要求補充作業 (要與建立作業一起執行的) 。

意義
ATOMIC_CREATE_ECP_IN_FLAG_SPARSE_SPECIFIED 要求在檔案上設定疏鬆旗標。
ATOMIC_CREATE_ECP_IN_FLAG_REPARSE_POINT_SPECIFIED 要求在檔案上設定重新分析點。
ATOMIC_CREATE_ECP_IN_FLAG_EOF_SPECIFIED 要求檔案上設定檔案大小。 這也表示
該磁碟上的配置將會發生,以支援要求的檔案大小。
ATOMIC_CREATE_ECP_IN_FLAG_VDL_SPECIFIED 要求在檔案上設定有效的數據長度。 這也表示檔案大小至少設定為所要求的有效數據長度。 注意:如果可能的話,這會被視為具有特殊許可權的作業
公開未初始化的數據。
ATOMIC_CREATE_ECP_IN_FLAG_OPERATION_MASK 使用此旗標作為遮罩來指定其他 InFlags 旗標 值。
ATOMIC_CREATE_ECP_IN_FLAG_BEST_EFFORT 表示文件系統應該執行建立作業,即使某些要求的補充作業無法執行
檔系統不支援或已執行。 呼叫端可以查看 OutFlags 以查看已執行的作業。 如果未指定此旗標,如果文件系統無法順利執行所有要求的補充作業,則檔系統應該會失敗建立作業。

OutFlags

旗標,指出實際補充作業 (使用成功建立作業執行的) 。

意義
ATOMIC_CREATE_ECP_OUT_FLAG_SPARSE_SET 表示已在檔案上設定疏鬆旗標。
ATOMIC_CREATE_ECP_OUT_FLAG_REPARSE_POINT_SET 表示已在檔案上設定重新分析點。
ATOMIC_CREATE_ECP_OUT_FLAG_EOF_SET 指出檔案上已設定檔案大小,且磁碟上的配置發生支援要求的檔案大小。
ATOMIC_CREATE_ECP_OUT_FLAG_VDL_SET 指出檔案上已設定有效的數據長度,而且檔案大小至少設定為所要求的有效數據長度。
ATOMIC_CREATE_ECP_OUT_FLAG_OPERATION_MASK 使用此旗標值做為遮罩,以判斷使用建立作業執行的補充作業。

ReparseBufferLength

ReparseBuffer 成員的長度。 此值不能超過 MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16K) 。

ReparseBuffer

選擇性值,指出建立作業中使用的緩衝區類型。 可能的值為 REPARSE_DATA_BUFFERREPARSE_GUID_DATA_BUFFER

FileSize

ATOMIC_CREATE_ECP_IN_FLAG_EOF_SPECIFIED 搭配使用的選擇性值,表示要在檔案上設定的要求檔案大小。

ValidDataLength

ATOMIC_CREATE_ECP_IN_FLAG_VDL_SPECIFIED 搭配使用的選擇性值,表示要在檔案上設定的要求有效數據長度。

FileTimestamps

選擇性 FILE_TIMESTAMPS 結構的指標,其中包含檔案上特定動作的最後一個記錄實例。

FileAttributes

指定檔案的屬性。

UsnSourceInfo

指定選擇性的更新序號 (USN) 來源資訊旗標。

Usn

指定 USN) (更新序號。 此值會在 GUID_ECP_ATOMIC_CREATE 結尾填入。

SuppressFileAttributeInheritanceMask

遮罩,指出應該隱藏其一般繼承規則的檔案屬性。

InOpFlags

ATOMIC_CREATE_ECP_IN_OP_FLAG_xxx旗標。

OutOpFlags

ATOMIC_CREATE_ECP_OUT_OP_FLAG_xxx旗標。

InGenFlags

ATOMIC_CREATE_ECP_IN_GN_FLAG_xxx旗標。

OutGenFlags

ATOMIC_CREATE_ECP_OUT_GN_FLAG_xxx旗標。

CaseSensitiveFlagsMask

指出指定哪些FILE_CS_FLAG_xxx旗標;文件系統應該挑選其他旗標的預設值。

InCaseSensitiveFlags

檔案上的輸入區分大小寫旗標。 即使未指定任何BEST_EFFORT,文件系統也可以忽略某些 InCaseSensitiveFlags。 此行為類似於 FileCaseSensitiveInformation,因此呼叫端可以檢查 OutCaseSensitiveFlags 來知道所設定的旗標。 如果某些檔案或目錄不支援旗標,則BEST_EFFORT會生效。

OutCaseSensitiveFlags

即使未指定 InCaseSensitiveFlags ,這個成員仍會傳回檔案上的區分大小寫旗標。

備註

呼叫 ECP 相關支援例程,例如 FltAllocateExtraCreateParameterFsRtlRemoveExtraCreateParameter 時,系統定義的GUID_ECP_ATOMIC_CREATE** 值會搭配這個 ECP 內容結構使用。

如需詳細資訊 ,請參閱額外建立參數簡介

規格需求

需求
最低支援的用戶端 Windows 10 (版本 1607)
最低支援的伺服器 Windows Server 2016
標頭 ntifs.h