Виндовс 8, х64.
Использование перекрывающихся сокетов Windows Api с IOCP.
Заметил неожиданное поведение с сокетами: например, вызов DisconnectEx возвращает ошибку WSAENOTCONN, но позже я получаю событие в GetQueuedCompletionStatusEx именно для этого отключения (как будто оно все еще было запланировано независимо от возвращенной ошибки). То же самое происходит с AcceptEx (с другой ошибкой, например, WSAEINVAL).
Я ожидал, что событие IOCP будет запланировано только для незавершенных операций (возвращенный код ошибки WSA_IO_PENDING), но не для других ошибок.
EDIT: Мой вопрос: могут ли события IOCP планироваться системой, даже если вызовы DisconnectEx/AcceptEx возвращают ошибку (WSAGetLastError), которая не является WSA_IO_PENDING?
Спасибо!