Функция FltTagFileEx (fltkernel.h)

FltTagFileEx задает точку повторного выражения для файла или каталога.

Синтаксис

NTSTATUS FLTAPI FltTagFileEx(
  PFLT_INSTANCE InitiatingInstance,
  PFILE_OBJECT  FileObject,
  ULONG         FileTag,
  GUID          *Guid,
  PVOID         DataBuffer,
  USHORT        DataBufferLength,
  ULONG         ExistingFileTag,
  GUID          *ExistingGuid,
  ULONG         Flags
);

Параметры

InitiatingInstance

Непрозрачный указатель на экземпляр драйвера минифильтра, который инициировал этот запрос ввода-вывода. Этот параметр является обязательным и не может иметь значение NULL.

FileObject

Указатель на объект file для файла или каталога, для которого необходимо задать точку повторного аналитики. Файловый объект должен быть открыт для FILE_WRITE_DATA доступа. Этот параметр является обязательным и не может иметь значение NULL.

FileTag

Повторно пропарировать тег точки. Может быть одним из значений IO_REPARSE_TAG_XXX,определенных в ntifs.h.

Guid

GUID, который однозначно идентифицирует точку повторного измерения. Если FileTag является сторонним тегом, этот параметр является обязательным и не может иметь значение NULL. Если существующий тег репараметра изменяется, guid, указанный в этом параметре, должен соответствовать GUID точки повторного изменения.

DataBuffer

Указатель на буфер, содержащий определяемые пользователем данные для точки повторного анализа.

DataBufferLength

Размер (в байтах) буфера, на который указывает DataBuffer .

ExistingFileTag

Существующий тег в файле, если тег необходимо заменить. Для этого параметра необходимо задать нулевое значение, чтобы задать тег повторной аналитики для файла, который еще не имеет его.

ExistingGuid

GUID, который однозначно идентифицирует существующую точку повторного измерения. Если ExistingFileTag является тегом не майкрософт и не равен нулю, этот параметр не должен иметь значение NULL.

Flags

Указывает флаги REPARSE_DATA_BUFFER_EX_XXX, определенные в файле ntifs.h.

Возвращаемое значение

Эта функция возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:

Код возврата Описание
STATUS_IO_REPARSE_TAG_MISMATCH Значение тега, указанное в ExistingFileTag, не соответствует значению существующего тега.
STATUS_REPARSE_ATTRIBUTE_CONFLICT Для существующей точки повторного исследования с тегом, не относящемся к Корпорации Майкрософт, ExistingFileTag соответствует существующему значению тега, но guid не соответствует существующему guid.

Комментарии

Драйверы минифильтра должны использовать FltTagFileEx вместо FSCTL_SET_REPARSE_POINT_EX для задания точки повторного анализа.

Не все файловые системы поддерживают точки повторного анализа; Например, файловая система NTFS и ReFS поддерживает их, но файловая система FAT — нет. Драйверы минифильтра могут определить, поддерживает ли файловая система точки повторного анализа, вызвав FltQueryVolumeInformation, указав FileFsAttributeInformation для параметра FsInformation и проверив битовый флаг FILE_SUPPORTS_REPARSE_POINTS в возвращаемой структуре FILE_FS_ATTRIBUTE_INFORMATION .

Чтобы удалить существующую точку повторного обработки, вызовите FltUntagFile.

Дополнительные сведения о точках повторного анализа см. в документации по Microsoft Windows SDK.

Требования

Требование Значение
Заголовок fltkernel.h

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

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFile

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER