Функция 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 |