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_BUFFER 或 REPARSE_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 相关的支持例程(如 FltAllocateExtraCreateParameter 和 FsRtlRemoveExtraCreateParameter)时,系统定义的GUID_ECP_ATOMIC_CREATE** 值用于此 ECP 上下文结构。
有关详细信息,请参阅 额外创建参数 简介。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 1607 |
支持的最低服务器 | Windows Server 2016 |
标头 | ntifs.h |