title: Flush disk write cache
body: <p>When the policy for a disk in Windows XP and Vista is set to enable write caching on the hard disk, is there a way to flush a file that has just been written, and ensure that it has been committed to disk?</p>
  
  <p>I want to do this programmatically in C++.</p>
  
  <p>Closing the file does perform a flush at the application level, but not at the operating system level.  If the power is removed from the PC after closing the file, but before the operating system has flushed the disk write cache, the file is lost, even though it was closed.</p>