w32api - Справочник по Windows API
Найти:
На:





Функция FlushFileBuffers сбрасывает на диск все буферы указанного файла и заставляет записать в файл все буферы данных.

BOOL FlushFileBuffers(
  HANDLE hFile
);
Параметры:

hFile Дескриптор открытого файла.

Этот файловый дескриптор должен иметь право доступа GENERIC_WRITE.

Если hFile – это устройство коммуникации, функция сбасывает только буфер передачи.

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

Если вызов функции успешен, возвращается ненулевое значение.

При ошибке возвращается ноль. Для получения дополнительной информации об ошибке, вызывайте GetLastError.

Функция завершится с ошибкой, если указан дескриптор вывода консоли. Это потому, что вывод консоли не буферизируется. Функция возвращает FALSE, и GetLastError возвращает ERROR_INVALID_HANDLE.

Windows Me/98/95: Функция ничего не делает, если указан дескриптор вывода консоли. Это потому, что вывод консоли не буферизируется. Функция возвращает TRUE, но она ничего не делает.

Замечания:

Обычно, функции WriteFile и WriteFileEx записывают данные во внутренний буфер, который операционная система записывает на диск в регулярном порядке. Функция FlushFileBuffers записывает на диск всю буферизованную информацию для указанного файла.

Для открытия файла для небуферизированного вв/выв, вызовите функцию CreateFile с флагом FILE_FLAG_NO_BUFFERING. Это предотвращает содержимое файла от кэширования. Тем не менее, метаданные файла могут оставаться кэшируемыми. Для сброса метаданных на диск, используйте FlushFileBuffers.

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

Когда открывается раздел с помощью CreateFile, строка lpFileName должна быть следующего вида: \\.\x: или \\?\Раздел{GUID}. Не используйте завершающий обратный слеш в имени раздела, потому что оно определяет корневую директорию диска.

Смотрите также:



Hosted by uCoz