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 |