Partilhar via


Liberando dados de E/S System-Buffered para o disco

O Windows armazena os dados em operações de leitura e gravação de arquivos em buffers de dados mantidos pelo sistema para otimizar o desempenho do disco. Quando um aplicativo grava em um arquivo, o sistema geralmente armazena os dados em buffer e grava os dados no disco regularmente. Um aplicativo pode forçar o sistema operacional a gravar o conteúdo desses buffers de dados no disco usando a função FlushFileBuffers . Como alternativa, um aplicativo pode especificar que as operações de gravação devem ignorar o buffer de dados e gravar diretamente no disco definindo o sinalizador FILE_FLAG_NO_BUFFERING quando o arquivo é criado ou aberto usando a função CreateFile .

Se houver dados no buffer interno quando o arquivo for fechado, o sistema operacional não gravará automaticamente o conteúdo do buffer no disco antes de fechar o arquivo. Se o aplicativo não forçar o sistema operacional a gravar o buffer no disco antes de fechar o arquivo, o algoritmo de cache determinará quando o buffer é gravado.

Observação

Acessar um buffer de dados enquanto uma operação de leitura ou gravação está usando pode corromper o buffer. Os aplicativos não devem ler, gravar, realocar ou liberar o buffer de dados que uma operação de leitura ou gravação está usando até que a operação seja concluída.