Different behavior of NTFS on Vista and XP/2003

I did the following experiment on ntfs:
Using memory map to write data and use Non buffering mode to read the data.
i) memory map a file
ii) open the file with NO_BUFFERING flag set
iii) write new data directly to the memory through memory mapping (memory pointer get from i)
iv) read the data through the handle opened by ii)
On Windows XP/2003, I can see that during iv) the NTFS/
Cache Manager flush the file first (it issues a IRP_MJ_WRITE) since the read is IRP_NOCACHE (it wants to read directly from disk, so it needs to write the new data first to disk) however, on Windows Vista, I can’t see the IRP_MJ_WRITE issued, but the read in iv) can get the new data.
A strange thing related to it, if the same experiment did using fastfat, the data read from iv) is old data on Vista but new data on Windows XP/2003(because on XP/2003, it write data first to disk)
I seems that NTFS on vista doesn’t abide by the IRP_NOCACHE behavior.

Can someone gives me some explanation?