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 成员的长度。 此值不能超过 16K ) (MAXIMUM_REPARSE_DATA_BUFFER_SIZE。

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

即使未指定 InCaseSensitiveFlag ,此成员也会返回文件中区分大小写的标志。

注解

调用与 ECP 相关的支持例程(例如 FltAllocateExtraCreateParameterFsRtlRemoveExtraCreateParameter)时,系统定义的 GUID_ECP_ATOMIC_CREATE** 值与此 ECP 上下文结构一起使用。

有关详细信息 ,请参阅额外创建参数简介

要求

要求
最低受支持的客户端 Windows 10 版本 1607
最低受支持的服务器 Windows Server 2016
标头 ntifs.h