Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Win32 IO完成端口和同步IO会发生什么情况?_Io_Synchronous_Readfile_Iocp - Fatal编程技术网

Win32 IO完成端口和同步IO会发生什么情况?

Win32 IO完成端口和同步IO会发生什么情况?,io,synchronous,readfile,iocp,Io,Synchronous,Readfile,Iocp,据介绍,如果满足某些条件,对ReadFile的调用可能会显示为同步。例如,如果目标文件是NTFS压缩的。本文没有说明如果文件句柄与IOCP关联会发生什么 那么,当文件句柄与IOCP关联时,在这种情况下会发生什么呢?我是否仍会收到此请求的IO完成数据包,或者请求是否完全同步执行 如果是这样,我必须将整个ReadFile调用放在一个工作线程中。最初发出ReadFile调用的线程不允许被阻止。我之所以考虑IOCP,是因为将ReadFile调用放入工作线程意味着将上下文切换到工作线程,然后在读取文件后立

据介绍,如果满足某些条件,对ReadFile的调用可能会显示为同步。例如,如果目标文件是NTFS压缩的。本文没有说明如果文件句柄与IOCP关联会发生什么

那么,当文件句柄与IOCP关联时,在这种情况下会发生什么呢?我是否仍会收到此请求的IO完成数据包,或者请求是否完全同步执行


如果是这样,我必须将整个ReadFile调用放在一个工作线程中。最初发出ReadFile调用的线程不允许被阻止。我之所以考虑IOCP,是因为将ReadFile调用放入工作线程意味着将上下文切换到工作线程,然后在读取文件后立即阻塞。

任何以
错误\u成功
错误\u IO_挂起
完成的重叠操作都将生成一个完成数据包。看

这假设您没有使用在有关句柄上启用成功时的
文件\u跳过\u完成\u端口。如果在成功时启用了
FILE\u SKIP\u COMPLETION\u PORT\u
,则以
ERROR\u SUCCESS
完成的操作将不会生成完成数据包,您应该在发出重叠操作的点进行完成处理