MARK_HANDLE_INFO 结构 (ntifs.h)

MARK_HANDLE_INFO结构在FSCTL_MARK_HANDLE控制代码请求期间作为输入缓冲区传递。

语法

typedef struct _MARK_HANDLE_INFO {
  union {
    ULONG UsnSourceInfo;
    ULONG CopyNumber;
  } DUMMYUNIONNAME;
  ULONG  UsnSourceInfo;
  HANDLE VolumeHandle;
  ULONG  HandleInfo;
} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;

成员

DUMMYUNIONNAME

DUMMYUNIONNAME.UsnSourceInfo

请参阅下面的 UsnSourceInfo

DUMMYUNIONNAME.CopyNumber

标识从驻留在冗余介质上的文件时要读取的文件副本。

UsnSourceInfo

可选的更新序列号 (USN) 源信息标志。 若要设置这些值中的任何值,必须在 VolumeHandle 字段中指定卷 DASD 句柄。 可以是以下值的组合:

标志 含义
USN_SOURCE_DATA_MANAGEMENT 服务未修改文件任何部分的外部视图。 典型情况是 HSM 将数据移向外部存储或移出外部存储。
USN_SOURCE_AUXILIARY_DATA 服务不会根据创建此文件的应用程序修改文件的外部视图。 可用于向文件添加专用数据流。
USN_SOURCE_REPLICATION_MANAGEMENT 服务正在修改文件,以匹配副本 (replica) 集中另一个成员中存在的同一文件的内容。
USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT 正在从云或服务器对客户端系统执行复制。 不需要卷句柄来设置此值

VolumeHandle

此操作的卷句柄。

HandleInfo

包含用于标识请求的标志。 此字段可以是以下值之一:

标志 含义
MARK_HANDLE_PROTECT_CLUSTERS 在关闭句柄之前,不允许任何碎片整理 (FSCTL_MOVE_FILE) 。
MARK_HANDLE_TXF_SYSTEM_LOG 此流将用作卷上资源管理器的 Txf 日志。 必须使用 IRP_MN_KERNEL_CALL 在内核中调用。 从 Windows Vista 开始可用。
MARK_HANDLE_NOT_TXF_SYSTEM_LOG 此组件不再将此对象用作 TxF 日志文件。 从 Windows Vista 开始可用。
MARK_HANDLE_REALTIME 仅受 UDFS 文件系统支持。 将设备标记为实时流式传输视频。 从 Windows 7 开始可用。
MARK_HANDLE_NOT_REALTIME 仅受 UDFS 文件系统支持。 将设备标记为不再实时流式传输视频。 从 Windows 7 开始可用。
MARK_HANDLE_CLOUD_SYNC 废弃;请勿使用此标志。
MARK_HANDLE_READ_COPY 必须从指定的数据副本读取数据。 仅支持存储空间冗余卷。 从 Windows 8 开始可用。
MARK_HANDLE_NOT_READ_COPY 不再从特定副本读取数据。 仅支持存储空间冗余卷。 从 Windows 8 开始可用。
MARK_HANDLE_FILTER_METADATA 保留供 Microsoft 内部使用。
MARK_HANDLE_RETURN_PURGE_FAILURE 将内存映射/缓存 IO 与非缓存 IO 混合,并发出非缓存 IO 时,系统会尝试清除非缓存 IO 范围的内存映射。 如果这些清除失败,则系统通常不会将失败返回给调用方,从而导致损坏状态。 此标志告知系统返回给定句柄的清除失败,以便应用程序可以更好地处理这种情况。 从 Windows 8.1 开始可用。
MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION 禁用文件复制服务 (给定文件的 FRS) 压缩功能。 从 Windows 10 版本 1507 开始可用。
MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO 告知 NTFS 在 USN 日记中对分页写入设置给定的 UsnSourceInfo 值。 传统上,这不会在分页写入上完成,因为你不知道哪个线程进行了给定的更改。 这是一个替代。 仅当内存管理器保留的 FileObject 与此状态关联时,此功能才有效。 从 Windows 10 版本 1507 开始可用。
MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES 告知系统不允许对此文件进行写入。 如果有人尝试打开文件进行写入访问,操作将失败,STATUS_ACCESS_DENIED。 如果看到写入操作,则STATUS_MARKED_TO_DISALLOW_WRITES操作失败。 从 Windows 10 版本 1507 开始可用。
MARK_HANDLE_ENABLE_CPU_CACHE 保留供 Microsoft 内部使用。
MARK_HANDLE_SUPPRESS_VOLUME_OPEN_FLUSH 通常,在卷句柄上的第一个读/写操作 (DASD 打开) ,文件系统会刷新卷。 这在某些情况下可能会产生性能影响。 如果在卷句柄上设置了此标志,它将在第一个 IO 上禁止刷新。 从 Windows 11 开始可用。

注解

MARK_HANDLE_INFO 包含用于标记指定文件或目录的信息,其更新序列号 (USN) 更改日志记录以及有关更改的数据。

要求

要求
最低受支持的客户端 Windows XP
标头 ntifs.h

另请参阅

FSCTL_MARK_HANDLE