首页 > 解决方案 > 如果异步完成,ReadFile() 是否总是返回 FALSE?

问题描述

如果异步完成,ReadFile() 是否总是返回 FALSE?或者当通过从文件系统缓存复制立即完成读取请求时是否存在异常 fe ?我不是在询问要传输的字节数为零时的特殊情况。

标签: winapi

解决方案


即使异步调用 ReadFile 也有可能同步完成。如果 ReadFile 返回 true,则无论是否为重叠 IO 打开句柄,它都会同步完成。从 ReadFile 返回 FALSE 但从 GetLastError() 返回的结果不是 ERROR_IO_PENDING 表明对 ReadFile 的调用实际上存在问题。ReadFile 实际异步完成的唯一情况是它返回 FALSE 并且 GetLastError() 返回 ERROR_IO_PENDING。


推荐阅读