GetQueuedCompletionStatus()
将完成通知出列,但它不会返回通知类型(例如,阅读通知,写入通知)。
我有责任跟踪我发起的操作,例如当我使用WSARecv()
时,我在OVERLAPPED
结构中添加一个标志,指示这是什么操作(在这种情况下读取) ),当我将通知出列时,我读到了这个标志。那么有谁知道为什么GetQueuedCompletionStatus()
不返回操作类型?
答案 0 :(得分:1)
为什么要关心?您可以通过API传递用户数据,导致通过GetQueuedCompletionStatus()
提取完成,那么为什么还需要其他内容?由于您可以使用PostQueuedCompletionStatus()
发布自己的完成情况,因此无数次'操作'你可以完成,所以在扩展的OVERLAPPED
结构中传递它,你可以传递任何东西......
如果您可以通过自己单独的标记,那么它实际上不会将额外的额外内容作为扩展OVERLAPPED
结构传递,因为它能够通过数据缓冲区和其他信息以及操作无论如何,所以一个额外的标志不太可能值得...我的设计需要的不仅仅是你的设计需要,所以我们只需要处理API设计者给我们的方法...... < / p>