Vidage des données d’E/S System-Buffered sur le disque
Windows stocke les données dans les opérations de lecture et d’écriture de fichiers dans des mémoires tampons de données gérées par le système pour optimiser les performances du disque. Lorsqu’une application écrit dans un fichier, le système met généralement en mémoire tampon les données et écrit les données sur le disque régulièrement. Une application peut forcer le système d’exploitation à écrire le contenu de ces mémoires tampons de données sur le disque à l’aide de la fonction FlushFileBuffers . Une application peut également spécifier que les opérations d’écriture sont de contourner la mémoire tampon de données et d’écrire directement sur le disque en définissant l’indicateur FILE_FLAG_NO_BUFFERING lors de la création ou de l’ouverture du fichier à l’aide de la fonction CreateFile .
S’il existe des données dans la mémoire tampon interne lorsque le fichier est fermé, le système d’exploitation n’écrit pas automatiquement le contenu de la mémoire tampon sur le disque avant de fermer le fichier. Si l’application ne force pas le système d’exploitation à écrire la mémoire tampon sur le disque avant de fermer le fichier, l’algorithme de mise en cache détermine quand la mémoire tampon est écrite.
Notes
L’accès à une mémoire tampon de données lorsqu’une opération de lecture ou d’écriture l’utilise peut endommager la mémoire tampon. Les applications ne doivent pas lire à partir de, écrire dans, réallouer ou libérer la mémoire tampon de données qu’une opération de lecture ou d’écriture utilise jusqu’à ce que l’opération se termine.