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 |