перечисление 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

См. также раздел

Перечисления управления файлами

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL