Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер мини-фильтра вызывает FltFlushBuffers2 отправить запрос на очистку в файловую систему для заданного файла.
Синтаксис
NTSTATUS FLTAPI FltFlushBuffers2(
PFLT_INSTANCE Instance,
PFILE_OBJECT FileObject,
ULONG FlushType,
PFLT_CALLBACK_DATA CallbackData
);
Параметры
Instance
[in] Указатель непрозрачного экземпляра для вызывающего экземпляра драйвера минифильтра. Этот параметр является обязательным и не может иметь значение NULL.
FileObject
[in] Указатель на объект файла или тома для очистки. Этот параметр является обязательным и не может иметь значение NULL.
FlushType
[in] Указывает тип очистки файловой системы, которая должна выполняться в файле. FlushType может быть одним из следующих вариантов:
| Значение операции FlushType | Описание |
|---|---|
| 0 | Если FileObject для файла, данные файла и метаданные в кэше файлов будут записаны, а базовое хранилище будет синхронизировано для очистки кэша. Если FileObject предназначен для тома, файловая система приведет к записи данных файлов и метаданных для всех измененных файлов тома, а базовое хранилище будет синхронизировано для очистки кэша. Эта операция эквивалентна FltFlushBuffers. |
| FLT_FLUSH_TYPE_FLUSH_AND_PURGE | То же, что и 0 (FltFlushBuffers), за исключением того, что кэш также очищается после завершения очистки. |
| FLT_FLUSH_TYPE_FILE_DATA_ONLY | Если файл находится в файловой системе NTFS, будут записаны только данные файлов в кэше файлов. Метаданные не записываются, а базовое хранилище не синхронизировано для очистки кэша. Этот флаг недопустим, если fileObject предназначен для тома. |
| FLT_FLUSH_TYPE_NO_SYNC | Если файл находится в файловой системе NTFS, данные файлов и метаданные в кэше файлов будут записаны. Базовое хранилище не будет синхронизировано для очистки кэша. Этот флаг недопустим, если fileObject предназначен для тома. |
| FLT_FLUSH_TYPE_DATA_SYNC_ONLY | Если файл находится в файловой системе NTFS, данные файлов в кэше файлов записываются. Метаданные не записываются. Базовое хранилище синхронизировано для очистки кэша. Этот флаг недопустим, если fileObject предназначен для тома или каталога. |
CallbackData
[in/необязательный] Указатель на необязательную FLT_CALLBACK_DATA структуру, используемую для распространения расширения IRP вызывающего абонента. См. fltPropagateIrpExtension.
Возвращаемое значение
FltFlushBuffers2 возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих:
| Возвращаемый код | Описание |
|---|---|
| STATUS_MEDIA_WRITE_PROTECTED | Файл находится в томе, защищенном записью. Это код ошибки. |
| STATUS_VOLUME_DISMOUNTED | Файл находится на томе, который в настоящее время не подключен. Это код ошибки. |
Замечания
Драйвер мини-фильтра может вызвать FltFlushBuffers2, чтобы отправить IRP_MJ_FLUSH_BUFFERS запрос к файловой системе для заданного файла. Операция очистки синхронна и выдается экземплярам под указанным экземпляром.
Если файл находится в файловой системе NTFS, мини-фильтр может управлять типом очистки с помощью параметра FlushType.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 10 версии 1903 |
| заголовка | fltkernel.h |