首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CancelIo()对已经读取的字节做了什么?

CancelIo()对已经读取的字节做了什么?
EN

Stack Overflow用户
提问于 2009-08-06 13:30:28
回答 2查看 634关注 0票数 1

如果I ReadFile() 10个字节(在重叠模式下没有超时),但在读取5个字节后调用CancelIo(),会发生什么?CancelIo()的文档说它取消了任何挂起的I/O,但是已经读取的5个字节发生了什么呢?他们迷路了吗?它们是否重新排队,以便下次我ReadFile()时,我将再次获得它们?

我正在寻找这样或那样的规格说明。我不想依赖经验证据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-07 18:55:16

根据http://groups.google.ca/group/microsoft.public.win32.programmer.kernel/browse_thread/thread/4fded0ac7e4ecfb4?hl=en的说法

这取决于驱动程序编写器如何实现设备。在操作上取消的确切语义没有定义到该级别。

票数 3
EN

Stack Overflow用户

发布于 2009-08-19 05:38:09

这并不重要,因为您正在使用重叠的I/O,或者当您知道已取消I/O时,可以手动调用SetFilePointer

如果您只是强制执行该问题,则不必依赖于未记录的行为。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1238905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档