Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма NtFlushBuffersFileEx отправляет запрос на очистку заданного файла в файловую систему. Необязательный флаг операции очистки можно задать для управления записью данных файла в хранилище.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
[in] HANDLE FileHandle,
[in] ULONG Flags,
[in] PVOID Parameters,
[in] ULONG ParametersSize,
[out] PIO_STATUS_BLOCK IoStatusBlock
);
Параметры
[in] FileHandle
Дескриптор, возвращаемый NtCreateFile или NtOpenFile для файла, буферы которого будут промыты. Этот параметр является обязательным и не может иметь значение NULL.
[in] Flags
Флаги операций очистки. Флаги могут быть одним из следующих значений:
| Ценность | Значение |
|---|---|
| 0 (обычный) | Данные файлов и метаданные в кэше файлов записываются, а базовое хранилище синхронизируется с очисткой кэша. Поддерживаемые файловые системы Windows: NTFS, ReFS, FAT, exFAT. |
| FLUSH_FLAGS_FILE_DATA_ONLY | Данные файлов в кэше файлов записываются. Метаданные не записываются, а базовое хранилище не синхронизировано для очистки кэша. Этот флаг недопустим с дескрипторами томов. Поддерживаемые файловые системы Windows: NTFS, FAT, exFAT. |
| FLUSH_FLAGS_NO_SYNC | Данные файлов и метаданные в кэше файлов записываются. Базовое хранилище не синхронизировано для очистки кэша. Этот флаг недопустим с дескрипторами томов. Поддерживаемые файловые системы Windows: NTFS, FAT, exFAT. |
| FLUSH_FLAGS_FILE_DATA_SYNC_ONLY | Данные из заданного файла будут записаны из кэша в памяти Windows. Только метаданные, необходимые для извлечения данных, будут промыты (обновление метки времени будет пропущено как можно больше). Базовое хранилище синхронизировано для очистки кэша. Этот флаг недопустим с дескрипторами томов или каталогов. Поддерживаемые файловые системы Windows: NTFS. |
[in] Parameters
Указатель на блок с дополнительными параметрами. В настоящее время этот параметр должен иметь значение NULL.
[in] ParametersSize
Размер блока, на который параметры указывает. В настоящее время этот параметр должен иметь значение 0.
[out] IoStatusBlock
Адрес блока состояния ввода-вывода вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.
Возвращаемое значение
NtFlushBuffersFileEx возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих:
| Возвращаемый код | Описание |
|---|---|
| STATUS_MEDIA_WRITE_PROTECTED | Файл находится на томе, защищенном записью; это код ошибки. |
| STATUS_VOLUME_DISMOUNTED | Файл находится на томе, который в настоящее время не подключен; это код ошибки. |
| STATUS_ACCESS_DENIED | Файл не имеет доступа к записи или добавлению. |
Замечания
Драйверы минифильтра должны вызывать FltFlushBuffers2 вместо вызова NtFlushBuffersFileEx.
Устаревший драйвер фильтра файловой системы может вызывать NtFlushBuffersFileEx для выдачи запроса IRP_MJ_FLUSH_BUFFERS файловой системе для заданного файла. Операция очистки синхронна.
Вызывающие NtFlushBuffersFileEx должны выполняться в IRQL = PASSIVE_LEVEL и со специальными API-интерфейсами ядра, включенными.
Для вызовов драйверов в режиме ядра NtXxx и ZwXxx версии подпрограммы Windows Native System Services могут вести себя по-разному в том, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между NtXxx и ZwXxx версиями подпрограммы см. в разделе Using Nt and Zw Versions of the Native System Services Routines.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 8 |
| целевая платформа | Всеобщий |
| заголовка | ntifs.h (include Ntifs.h) |
| библиотеки | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL (см. раздел "Примечания".) |
См. также
использование версий собственных системных служб и Zw