msdn里面有说明,这个标志的使用有前提
An application must meet certain requirements when working with files
opened with FILE_FLAG_NO_BUFFERING:
当使用FILE_FLAG_NO_BUFFERING打开文件进行工作时,程序必须达到下列要求:
File access must begin at byte offsets within the file that are
integer multiples of the volume's sector size.
文件的存取开头的字节偏移量必须是扇区尺寸的整倍数.
File access must be for numbers of bytes that are integer
multiples of the volume's sector size. For example, if the sector
size is 512 bytes, an application can request reads and writes of
512, 1024, or 2048 bytes, but not of 335, 981, or 7171bytes.
文件存取的字节数必须是扇区尺寸的整倍数.例如,如果扇区尺寸是512字节
程序就可以读或者写512,1024或者2048字节,但不能够是335,981或者7171
字节.
buffer addresses for read and write operations must be sector
aligned(aligned on addresses in memory that are integer multiples
of the volume's sector size).
进行读和写操作的地址必须在扇区的对齐位置,在内存中对齐的地址是扇区
尺寸的整倍数.