CSV_CONTROL_OP 枚举 (ntifs.h)

指定要与FSCTL_CSV_CONTROL控制代码一起使用的群集共享卷 (CSV ) 控制操作 的类型。

语法

typedef enum _CSV_CONTROL_OP {
  CsvControlStartRedirectFile = 0x02,
  CsvControlStopRedirectFile = 0x03,
  CsvControlQueryRedirectState = 0x04,
  CsvControlQueryFileRevision = 0x06,
  CsvControlQueryMdsPath = 0x08,
  CsvControlQueryFileRevisionFileId128 = 0x09,
  CsvControlQueryVolumeRedirectState = 0x0a,
  CsvControlEnableUSNRangeModificationTracking = 0x0d,
  CsvControlMarkHandleLocalVolumeMount = 0x0e,
  CsvControlUnmarkHandleLocalVolumeMount = 0x0f,
  CsvControlGetCsvFsMdsPathV2 = 0x12,
  CsvControlDisableCaching = 0x13,
  CsvControlEnableCaching = 0x14,
  CsvControlStartForceDFO = 0x15,
  CsvControlStopForceDFO = 0x16,
  CsvControlQueryMdsPathNoPause = 0x17,
  CsvControlSetVolumeId = 0x18,
  CsvControlQueryVolumeId = 0x19
} CSV_CONTROL_OP, *PCSV_CONTROL_OP;

常量

 
CsvControlStartRedirectFile
值: 0x02
启动 CSV 文件重定向。
CsvControlStopRedirectFile
值: 0x03
停止 CSV 文件重定向。
CsvControlQueryRedirectState
值: 0x04
搜索状态重定向。 指定此值时,还必须使用 CSV_QUERY_REDIRECT_STATE 结构。
CsvControlQueryFileRevision
值: 0x06
搜索文件修订。 指定此值时,还必须使用 CSV_QUERY_FILE_REVISION 结构。
CsvControlQueryMdsPath
值: 0x08
搜索 MDS 路径。 指定此值时,还必须使用 CSV_QUERY_MDS_PATH 结构。
CsvControlQueryFileRevisionFileId128
值: 0x09
搜索 128 位文件修订。 指定此值时,还必须使用 CSV_QUERY_FILE_REVISION_FILE_ID_128 结构。
CsvControlQueryVolumeRedirectState
值: 0x0a
搜索卷状态重定向。 指定此值时,还必须使用 CSV_QUERY_VOLUME_REDIRECT_STATE 结构。
CsvControlEnableUSNRangeModificationTracking
值: 0x0d
启用 USN 范围跟踪。
CsvControlMarkHandleLocalVolumeMount
值: 0x0e
当 VHD 文件即将进行环回装载时,请标记句柄,并请求 CVSFS 在短时间超时 (后使 I/O 失败,并在当前 20 秒) 如果 I/O 没有进展,则使句柄失效。
CsvControlUnmarkHandleLocalVolumeMount
值: 0x0f
当 VHD 文件即将被环回卸载时,取消标记以前由 CsvControlMarkHandleLocalVolumeMount 标记的句柄。
CsvControlGetCsvFsMdsPathV2
值: 0x12
搜索 MDS 路径的版本 2。 指定此值时,还必须使用 CSV_QUERY_MDS_PATH_V2 结构。
CsvControlDisableCaching
值: 0x13
禁用 CSV 文件的缓存。
CsvControlEnableCaching
值: 0x14
启用 CSV 文件的缓存。
CsvControlStartForceDFO
值: 0x15
强制 CSVFS 开始在下层文件对象上转发 I/O, (DFO) 。 有关详细信息,请参阅“备注”。
CsvControlStopForceDFO
值: 0x16
停止强制 CSVFS 转发 DFO 上的 I/O。 有关详细信息,请参阅“备注”。
CsvControlQueryMdsPathNoPause
值: 0x17
类似于 CsvControlQueryMdsPath。 搜索 MDS 路径,但如果 CSV 卷在请求时暂停,请将 MdsNodeId 设置为 0xFFFFFFFF,而不是返回最后一个协调节点。 这允许客户端检测协调节点可能正在更改。 指定 CsvControlQueryMdsPathNoPause 时,还必须使用 CSV_QUERY_MDS_PATH 结构。
CsvControlSetVolumeId
值: 0x18
设置 CSV 卷 GUID。 有关详细信息,请参阅“备注”。
CsvControlQueryVolumeId
值: 0x19
查询 CSV 卷 GUID 是否可用。 有关详细信息,请参阅“备注”。

注解

使用此枚举调用 FSCTL_CSV_CONTROL 控件代码的替代方法是使用 CSV_CONTROL_PARAM 结构,该结构封装此枚举类型的成员。

CsvControlStartForceDFO 和 CsvControlStopForceDFO

在 CSVFS 上打开文件对象时,CSVFS 将在下层文件系统上打开, (NTFS 或 REFS) 下层文件对象 (DFO) 与打开的每个用户匹配。 该文件对象作为在 CSVFS 上打开文件的应用程序的一部分打开,并在应用程序关闭 CSVFS 上文件对象的句柄时关闭。 CSVFS 在内部打开名为分页文件对象的附加文件对象 (PFO) ,该对象在 CSVFS 上同一文件的所有打开之间共享。 默认情况下,CSVFS 将其用于许多操作,如下所示:

  • Oplock 协商
  • 字节范围锁
  • 转发分页 I/O

某些筛选解决方案可能会以特殊方式标记句柄,然后预期所有读取和写入操作都应由匹配的 DFO 上的 CSVFS 向下转发。 应用程序可以通过发送 CsvControlStartForceDFO,强制 CSVFS 在 DFO 上开始下层转发 IO。 稍后,应用程序可以使用 CsvControlStopForceDFO 还原默认行为。 关闭用于发送 CsvControlStartForceDFO 的句柄将隐式还原回,就像应用程序发送 CsvControlStopForceDFO 一样。

CsvControlSetVolumeId 和 CsvControlQueryVolumeId

这些控件允许附加到 CSVFS 下方下层文件系统的文件系统微筛选器了解 CSV 卷 GUID。 群集物理磁盘资源在装载下层文件系统后设置此 GUID,因此,如果在装载期间附加筛选器,该 GUID 不可用。 在附加筛选器期间,文件系统微筛选器可以发出 CsvControlQueryVolumeId 来查询 GUID 是否已可用。 必须将控件发送到堆栈顶部,以确保 csvflt 接收它。 如果卷 GUID 尚不可用,则 csvflt 将返回STATUS_UNSUCCESSFUL。 如果卷 GUID 尚不可用,则筛选器不应无法附加。

稍后,物理磁盘资源将使用卷 GUID 发送 CsvControlSetVolumeId。 堆栈上的每个筛选器都可以使用 CsvControlSetVolumeId 控件来存储卷 GUID。 筛选器不得完成此控件。 相反,它们应允许它向下堆栈,从而允许其他筛选器有机会存储 GUID。

要求

要求
Header ntifs.h

另请参阅

文件管理枚举

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL