На странице MSDN для WriteFileEx
говорится, что его нельзя использовать в модели IOCP, поскольку у него есть аргумент для указания процедуры завершения. Если дескриптор файла был связан с портом завершения ввода-вывода, то WriteFileEx
завершится ошибкой.
Однако WSASend
позволяет вызывающей стороне указать процедуру завершения в качестве последнего аргумента, в то время как эту функцию можно использовать в модели IOCP.
Я рассмотрел несколько примеров WinSock с IOCP и обнаружил, что последний аргумент lpCompletionRoutine
всегда равен нулю. Это обязательно?