1

GetQueuedCompletionStatus()出队完成通知,但它不返回它是什么类型的通知(例如读取通知,写入通知)。

我有责任跟踪我启动的操作,例如,当我使用 时WSARecv(),我在结构中添加一个标志OVERLAPPED,指示这是什么操作(在这种情况下读取),当我出列通知时,我读取了这个标志. 那么有谁知道为什么GetQueuedCompletionStatus()不返回操作类型?

4

1 回答 1

1

为什么要关心?您可以通过导致通过提取完成的 API 传递用户数据,GetQueuedCompletionStatus()那么为什么还需要其他任何东西呢?由于您可以使用可以完成PostQueuedCompletionStatus()的无限数量的“操作”发布自己的完成,因此将其传递到“扩展OVERLAPPED结构”中,您可以传递任何东西......

如果您可以传递自己的单独标志,那么它实际上并不会消除将额外的额外内容作为扩展OVERLAPPED结构传递的需要,因为无论如何能够传递数据缓冲区和其他信息以及操作非常有用,所以额外的一个flag 不太可能值得拥有...我的设计需要的比您的设计需要的更多,所以让我们处理 API 设计人员给我们的方法...

于 2015-02-25T22:16:48.460 回答