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

Подпрограмма FltFlushBuffers используется драйвером минифильтра для отправки запроса на очистку заданного файла в файловую систему. Используйте FltFlushBuffers2 , чтобы указать различные параметры типа очистки.

Синтаксис

NTSTATUS FLTAPI FltFlushBuffers(
  [in] PFLT_INSTANCE Instance,
  [in] PFILE_OBJECT  FileObject
);

Параметры

[in] Instance

Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.

[in] FileObject

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

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

FltFlushBuffers возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_MEDIA_WRITE_PROTECTED
Файл находится на томе, защищенном от записи. Это код ошибки.
STATUS_VOLUME_DISMOUNTED
Файл находится на томе, который в настоящее время не подключен. Это код ошибки.

Комментарии

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

Если FileObject предназначен для файла, будут записаны и данные файла, и метаданные в файловом кэше, а базовое хранилище будет синхронизировано для очистки кэша. Если FileObject предназначен для тома, файловая система приведет к записи файловых данных и метаданных для всех измененных файлов на томе, а базовое хранилище будет синхронизировано для очистки кэша. Используйте FltFlushBuffers2 для более детального управления типом очистки, который должна выполнять файловая система.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
IRQL PASSIVE_LEVEL

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

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS