共用方式為


CSV_CONTROL_OP列舉 (ntifs.h)

指定叢集共用磁碟區 (CSV) 控制作業的類型,以搭配 FSCTL_CSV_CONTROL 控制程式代碼使用。

Syntax

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 檔案即將掛接回時,如果沒有任何 I/O 進行進度,則標示 CVSFS 失敗的句柄和要求,並在短逾時後失效 (目前 20 秒) 。
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
停止強制 DFO 上的 I/O 轉送 CSVFS。 如需詳細資訊,請參閱。
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,以便在掛接期間附加篩選條件時無法使用。 在篩選附加期間,文件系統迷你篩選程式可以發出 CsvControlQueryVolumeId 來查詢 GUID 是否已可用。 控件必須傳送至堆疊頂端,以確保 csvflt 會收到它。 如果磁碟區 GUID 尚無法使用, 則 csvflt 會傳回STATUS_UNSUCCESSFUL。 如果磁碟區 GUID 尚無法使用,則篩選條件不應該附加。

稍後,實體磁碟資源會傳送 CsvControlSetVolumeId 與磁碟區 GUID。 堆疊上的每個篩選都可以使用 CsvControlSetVolumeId 控件來儲存磁碟區 GUID。 篩選不能完成此控件。 相反地,他們應該允許它向下堆疊,讓其他篩選機會儲存 GUID。

規格需求

需求
標頭 ntifs.h

另請參閱

檔案管理列舉

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL