https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-flushfilebuffers
Можно очистить весь жесткий диск.
Чтобы сбросить все открытые файлы на томе, вызовите FlushFileBuffers с дескриптором для тома. Абонент должен иметь права администратора. Для получения дополнительной информации см. Запуск со специальными привилегиями.
Кроме того, в той же статье указывается правильная процедура, которую необходимо выполнить, если по какой-то причине данные должны быть сброшены: CreateFile
функция с флагами FILE_FLAG_NO_BUFFERING
и FILE_FLAG_WRITE_THROUGH
.
Из-за взаимодействия кэширования диска в системе функция FlushFileBuffers может быть неэффективной при использовании после каждой записи на устройство с диском, когда многие записи выполняются отдельно. Если приложение выполняет несколько операций записи на диск, а также необходимо обеспечить запись критических данных на постоянный носитель, приложение должно использовать небуферизованный ввод-вывод вместо частого вызова FlushFileBuffers. Чтобы открыть файл для небуферизованного ввода-вывода, вызовите функцию CreateFile с флагами FILE_FLAG_NO_BUFFERING и FILE_FLAG_WRITE_THROUGH. Это предотвращает кэширование содержимого файла и сбрасывает метаданные на диск при каждой записи. Для получения дополнительной информации см. CreateFile.
Но также проверьте ограничения буферизации файлов в отношении памяти и выравнивания данных.