перечисление 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
Найдите версию 2 пути MDS. При указании этого значения также необходимо использовать 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 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