Win32 IO完成端口和同步IO会发生什么情况?
据介绍,如果满足某些条件,对ReadFile的调用可能会显示为同步。例如,如果目标文件是NTFS压缩的。本文没有说明如果文件句柄与IOCP关联会发生什么 那么,当文件句柄与IOCP关联时,在这种情况下会发生什么呢?我是否仍会收到此请求的IO完成数据包,或者请求是否完全同步执行Win32 IO完成端口和同步IO会发生什么情况?,io,synchronous,readfile,iocp,Io,Synchronous,Readfile,Iocp,据介绍,如果满足某些条件,对ReadFile的调用可能会显示为同步。例如,如果目标文件是NTFS压缩的。本文没有说明如果文件句柄与IOCP关联会发生什么 那么,当文件句柄与IOCP关联时,在这种情况下会发生什么呢?我是否仍会收到此请求的IO完成数据包,或者请求是否完全同步执行 如果是这样,我必须将整个ReadFile调用放在一个工作线程中。最初发出ReadFile调用的线程不允许被阻止。我之所以考虑IOCP,是因为将ReadFile调用放入工作线程意味着将上下文切换到工作线程,然后在读取文件后立
如果是这样,我必须将整个ReadFile调用放在一个工作线程中。最初发出ReadFile调用的线程不允许被阻止。我之所以考虑IOCP,是因为将ReadFile调用放入工作线程意味着将上下文切换到工作线程,然后在读取文件后立即阻塞。任何以
错误\u成功
或错误\u IO_挂起
完成的重叠操作都将生成一个完成数据包。看
这假设您没有使用在有关句柄上启用成功时的文件\u跳过\u完成\u端口。如果在成功时启用了FILE\u SKIP\u COMPLETION\u PORT\u
,则以ERROR\u SUCCESS
完成的操作将不会生成完成数据包,您应该在发出重叠操作的点进行完成处理