1

我调用CreateFilewithFILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH | FILE_FLAG_OVERLAPPED然后调用许多WriteFilewithOVERLAPPED结构,其中两者OffsetOffsetHigh成员都设置为0xFFFFFFFF将新数据附加到文件中。

是否保证操作将按照要求的顺序完成?

这对我来说似乎是合乎逻辑的,但我没有看到明确和明确的证据。

来自https://support.microsoft.com/en-us/kb/156932的引用表明操作将是同步的:

在 Windows NT 上,对扩展其长度的文件的任何写操作都是同步的。

伟大的。同步操作保持顺序。但是之后:

FILE_FLAG_NO_BUFFERING标志对异步操作的文件系统行为影响最大。这是保证 I/O 请求实际上是异步的最佳方式。

后来引起了我的怀疑。有人可以澄清一下吗?

4

0 回答 0