Никакая промывка не решит вашу проблему.Что делать, если система зависает во время очистки буферов?
Существует несколько решений.Вы можете записать в 2 (или более) чередующихся файла, для одного: вы знаете, что если один поврежден, предыдущий, скорее всего, будет в порядке (за исключением некоторого ужасного замораживания во время сценариев восстановления).Это хорошо работает, если ваши файлы контрольных точек маленькие.Запись контрольной суммы с данными помогает избежать сомнений при восстановлении.
Открытие файла с FILE_FLAG_NO_BUFFERING
требует прямой записи на диск, избегая сквозного кэша системы.Это работает, вероятно, лучше в сочетании с предыдущим вариантом, так как система все еще может дать сбой во время контрольной точки, искажающей весь файл.
Далее, у Windows есть производительная и простая в использовании транзакционная файловая система .
Наконец, если у вас нет доступа к способу записи контрольных точек, просто установите некоторую процедуру резервного копирования, чтобы сохранить файл контрольных точек на другом диске между контрольными точками.Если файл запаздывает, вы можете использовать некоторые программы горячего резервного копирования, доступные в избытке от 0 до 100 долларов.Утилита Windows Robocopy вполне может соответствовать вашим требованиям.