共用方式為


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 檔案即將掛接回時,如果沒有任何 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 在下層檔案物件 (DFO) 上開始轉送 I/O 下層。 如需詳細資訊,請參閱。
CsvControlStopForceDFO
值:0x16
停止強制 DFO 上的 CSVFS 轉送 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。

要求

要求 價值
標頭 ntifs.h

另請參閱

檔案管理列舉

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL