Vaciado System-Buffered datos de E/S en disco
Windows almacena los datos en operaciones de lectura y escritura de archivos en búferes de datos mantenidos por el sistema para optimizar el rendimiento del disco. Cuando una aplicación escribe en un archivo, el sistema normalmente almacena en búfer los datos y escribe los datos en el disco de forma periódica. Una aplicación puede forzar al sistema operativo a escribir el contenido de estos búferes de datos en el disco mediante la función FlushFileBuffers . Como alternativa, una aplicación puede especificar que las operaciones de escritura omitan el búfer de datos y escriban directamente en el disco estableciendo la marca FILE_FLAG_NO_BUFFERING cuando se crea o se abre el archivo mediante la función CreateFile .
Si hay datos en el búfer interno cuando se cierra el archivo, el sistema operativo no escribe automáticamente el contenido del búfer en el disco antes de cerrar el archivo. Si la aplicación no fuerza al sistema operativo a escribir el búfer en el disco antes de cerrar el archivo, el algoritmo de almacenamiento en caché determina cuándo se escribe el búfer.
Nota
El acceso a un búfer de datos mientras se usa una operación de lectura o escritura puede dañar el búfer. Las aplicaciones no deben leer, escribir en, reasignar ni liberar el búfer de datos que usa una operación de lectura o escritura hasta que se complete la operación.