Операции с точками повторного преобразования
Чтобы определить, поддерживает ли файловая система точки повторного анализа, вызовите функцию GetVolumeInformation и проверьте флаг бита FILE_SUPPORTS_REPARSE_POINTS .
Функция DeviceIoControl позволяет задавать, изменять, получать и удалять точки повторного анализа. В следующей таблице описаны операции точки повторного просмотра, которые можно выполнять с помощью DeviceIoControl.
Операция | Описание |
---|---|
FSCTL_SET_REPARSE_POINT | Позволяет вызывающей программе задать новую точку повторного оценки или изменить существующую. |
FSCTL_GET_REPARSE_POINT | Получает сведения, хранящиеся в существующей точке повторной аналитики. |
FSCTL_DELETE_REPARSE_POINT | Удаляет существующую точку повторного извлечения. |
При изменении, получении или удалении точки повторного просмотра необходимо указать тот же тег повторного просмотра в операции, которая содержится в файле. В противном случае операция завершится ошибкой ERROR_REPARSE_TAG_MISMATCH. При изменении или удалении точки повторного просмотра необходимо также указать GUID повторного просмотра в операции, содержащейся в файле. В противном случае операция завершится ошибкой ERROR_REPARSE_ATTRIBUTE_CONFLICT.
Чтобы определить, содержит ли файл или каталог точку повторного определения, используйте функцию GetFileAttributes . Если файл или каталог имеет связанную точку повторного извлечения, задается атрибут FILE_ATTRIBUTE_REPARSE_POINT .
Чтобы перезаписать существующую точку повторного обработки без дескриптора файла или каталога, вызовите CreateFile с FILE_FLAG_OPEN_REPARSE_POINT. Этот флаг позволяет открыть файл независимо от того, установлен ли соответствующий фильтр файловой системы и работает ли он правильно.