ATOMIC_CREATE_ECP_CONTEXT结构 (ntifs.h)

ATOMIC_CREATE_ECP_CONTEXT 结构包含额外的创建参数(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