1

MSDN 页面WriteFileEx说它不能在 IOCP 模型中使用,因为它有一个参数来指定完成例程。如果文件句柄已与 I/O 完成端口相关联,WriteFileEx则将失败。

但是,WSASend允许调用者指定完成例程作为其最后一个参数,而此函数可用于 IOCP 模型。

我检查了几个带有 IOCP 的 WinSock 示例,发现最后一个参数lpCompletionRoutine始终为空。这是强制性的吗?

4

1 回答 1

1

文档说的唯一内容是:

完成例程遵循为 Windows 文件 I/O 完成例程规定的相同规则。

这可能表明您不能将 IOCP 和 混合lpCompletionRoutine在一起,例如WriteFileEx(). 另一方面,您为什么首先要将它们混合在一起?完成端口得到结果,或者完成例程得到结果。为什么需要同时使用两者?

于 2013-01-25T00:33:49.480 回答