CreateFile() and FILE_FLAG_WRITE_THROUGH
- From: "Nick Tucker" <nick.tucker@xxxxxxxxxxxxxxxxx>
- Date: Wed, 10 Sep 2008 14:19:19 +0100
Hi everyone
If I create a file using CreateFile(), specifying the
FILE_FLAG_WRITE_THROUGH flag, then write to that file, the file still shows
as zero bytes long in the directory and in Windows Explorer, and if I then
turn the power off, that file is still zero bytes long on restart, so the
data I wrote is unavailable. I have tried this test on a variety of
operating systems including Vista, XP and Windows Server 2003/2008 using a
variety of hardware platforms with both SATA and SCSI disk systems, and they
all behave the same way.
Surely the whole point of specifying that flag is that I want the data to be
written to disk, together with it's corresponding metadata, so if a
catastrophic failure occurs, the data is available to me on restart.
My researches of newsgroup articles on this subject suggest that if I want
this, then I also have to use FlushFileBuffers(), but if that is so then
surely I don't need to specify the write through flag since all file and
folder data will be committed to disk when I call that function.
So, what is the point of specifying the write-through flag in this scenario?
I think the documentation of CreateFile() could do with a little
clarification!
Thanks in advance for responses.
Nick
.
- Follow-Ups:
- Re: CreateFile() and FILE_FLAG_WRITE_THROUGH
- From: Dilip Naik
- Re: CreateFile() and FILE_FLAG_WRITE_THROUGH
- Prev by Date: Re: What problems will I encounter with when istalling a new motherboa
- Next by Date: Re: Puzzles about memory-mapped files
- Previous by thread: What problems will I encounter with when istalling a new motherboa
- Next by thread: Re: CreateFile() and FILE_FLAG_WRITE_THROUGH
- Index(es):
Relevant Pages
|