Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает тип операции управления общим томом кластера (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 |
См. также
Перечисления управления файлами