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_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
即使未指定 InCaseSensitiveFlag ,此成员也会返回文件中区分大小写的标志。
注解
调用与 ECP 相关的支持例程(例如 FltAllocateExtraCreateParameter 和 FsRtlRemoveExtraCreateParameter)时,系统定义的 GUID_ECP_ATOMIC_CREATE** 值与此 ECP 上下文结构一起使用。
有关详细信息 ,请参阅额外创建参数简介 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1607 |
最低受支持的服务器 | Windows Server 2016 |
标头 | ntifs.h |