перечисление CSV_CONTROL_OP (ntifs.h)
Указывает тип операции управления общим томом кластера (CSV), используемой с кодом FSCTL_CSV_CONTROL элемента управления.
Синтаксис
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 не смог выполнить операции ввода-вывода и сделать дескриптор недействительными по истечении короткого времени ожидания (в настоящее время 20 секунд), если операции ввода-вывода не выполняются. |
CsvControlUnmarkHandleLocalVolumeMount Значение: 0x0f Когда VHD-файл должен быть отключен, отменяет пометку дескриптора, который ранее был помечен csvControlMarkHandleLocalVolumeMount. |
CsvControlGetCsvFsMdsPathV2 Значение: 0x12 Выполните поиск по пути MDS версии 2. При указании этого значения также необходимо использовать структуру CSV_QUERY_MDS_PATH_V2. |
CsvControlDisableCaching Значение: 0x13 Отключает кэширование CSV-файла. |
CsvControlEnableCaching Значение: 0x14 Включает кэширование CSV-файла. |
CsvControlStartForceDFO Значение: 0x15 Заставляет CSVFS начать переадресацию операций ввода-вывода на нижнем уровне в объекте файлов нижнего уровня (DFO). Дополнительные сведения см. в разделе "Примечания". |
CsvControlStopForceDFO Значение: 0x16 Остановите принудительное перенаправление операций ввода-вывода CSVFS для DFO. Дополнительные сведения см. в разделе "Примечания". |
CsvControlQueryMdsPathNoPause Значение: 0x17 Аналогично CsvControlQueryMdsPath. Выполните поиск пути MDS, но если том CSV приостановлен в момент запроса, задайте для mdsNodeId значение 0xFFFFFFFF вместо возврата последнего координирующего узла. Это позволяет клиенту обнаружить изменение координирующего узла. Если указан csvControlQueryMdsPathNoPause, необходимо также использовать структуру CSV_QUERY_MDS_PATH . |
CsvControlSetVolumeId Значение: 0x18 Задайте GUID тома CSV. Дополнительные сведения см. в разделе "Примечания". |
CsvControlQueryVolumeId Значение: 0x19 Запросите, доступен ли GUID тома CSV. Дополнительные сведения см. в разделе "Примечания". |
Комментарии
Альтернативой вызову кода элемента управления FSCTL_CSV_CONTROL с помощью этого перечисления является использование структуры CSV_CONTROL_PARAM , которая инкапсулирует член данного типа перечисления.
CsvControlStartForceDFO и CsvControlStopForceDFO
Когда файловый объект открывается в CSVFS, CSVFS открывает в файловой системе нижнего уровня (NTFS или REFS) файловый объект нижнего уровня (DFO), соответствующий каждому открытому пользователю. Этот файловый объект открывается как часть приложения, открывающего файл в CSVFS, и закрывается, когда приложение закрывает дескриптор для объекта файла в CSVFS. Внутри CSVFS открывает дополнительный объект файла под названием PFO, который является общим для всех открывает один и тот же файл в CSVFS. По умолчанию CSVFS использует его для многих операций, таких как:
- Согласование Oplock
- Блокировки диапазона байтов
- Пересылка операций ввода-вывода подкачки
Некоторые решения фильтрации могут помечать дескриптор особым образом, а затем ожидать, что все операции чтения и записи будут переадресованы CSVFS на соответствующий DFO. Приложение может заставить CSVFS начать перенаправление операций ввода-вывода нижнего уровня в DFO, отправив CsvControlStartForceDFO. Позже приложение может использовать CsvControlStopForceDFO для отменить изменения поведения по умолчанию. Закрытие дескриптора, который использовался для отправки CSVControlStartForceDFO, неявно отменить изменения обратно, как если бы приложение отправило CsvControlStopForceDFO.
CsvControlSetVolumeId и CsvControlQueryVolumeId
Эти элементы управления позволяют минифильтрам файловой системы, подключенным к файловой системе нижнего уровня под CSVFS, изучать GUID тома CSV. Ресурс физического диска кластера устанавливает этот GUID после подключения файловой системы нижнего уровня, чтобы он был недоступен, если фильтр подключается во время подключения. Во время присоединения фильтра минифильтр файловой системы может выдать csvControlQueryVolumeId, чтобы запросить, доступен ли GUID. Элемент управления должен быть отправлен в верхнюю часть стека, чтобы убедиться, что csvflt получает его. Если GUID тома еще недоступен, csvflt вернет STATUS_UNSUCCESSFUL. Если GUID тома еще недоступен, фильтр не должен быть присоединен.
Позже ресурс физического диска отправит csvControlSetVolumeId с идентификатором GUID тома. Каждый фильтр в стеке может использовать элемент управления CsvControlSetVolumeId для хранения GUID тома. Фильтры не должны выполнять этот элемент управления. Вместо этого они должны позволить ему идти вниз по стеку, что позволит другим фильтрам сохранить GUID.
Требования
Требование | Значение |
---|---|
Заголовок | ntifs.h |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по