Index: win_iocp_socket_service_base.ipp =================================================================== --- win_iocp_socket_service_base.ipp (revision 85729) +++ win_iocp_socket_service_base.ipp (working copy) @@ -351,14 +351,13 @@ iocp_service_.on_completion(op, boost::asio::error::bad_descriptor); else { - DWORD bytes_transferred = 0; int result = ::WSASend(impl.socket_, buffers, - static_cast(buffer_count), &bytes_transferred, flags, op, 0); + static_cast(buffer_count), NULL, flags, op, 0); DWORD last_error = ::WSAGetLastError(); if (last_error == ERROR_PORT_UNREACHABLE) last_error = WSAECONNREFUSED; if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); + iocp_service_.on_completion(op, last_error, 0); else iocp_service_.on_pending(op); } @@ -377,15 +376,14 @@ iocp_service_.on_completion(op, boost::asio::error::bad_descriptor); else { - DWORD bytes_transferred = 0; int result = ::WSASendTo(impl.socket_, buffers, static_cast(buffer_count), - &bytes_transferred, flags, addr, addrlen, op, 0); + NULL, flags, addr, addrlen, op, 0); DWORD last_error = ::WSAGetLastError(); if (last_error == ERROR_PORT_UNREACHABLE) last_error = WSAECONNREFUSED; if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); + iocp_service_.on_completion(op, last_error, 0); else iocp_service_.on_pending(op); } @@ -405,18 +403,17 @@ iocp_service_.on_completion(op, boost::asio::error::bad_descriptor); else { - DWORD bytes_transferred = 0; DWORD recv_flags = flags; int result = ::WSARecv(impl.socket_, buffers, static_cast(buffer_count), - &bytes_transferred, &recv_flags, op, 0); + NULL, &recv_flags, op, 0); DWORD last_error = ::WSAGetLastError(); if (last_error == ERROR_NETNAME_DELETED) last_error = WSAECONNRESET; else if (last_error == ERROR_PORT_UNREACHABLE) last_error = WSAECONNREFUSED; if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); + iocp_service_.on_completion(op, last_error, 0); else iocp_service_.on_pending(op); } @@ -454,16 +451,15 @@ iocp_service_.on_completion(op, boost::asio::error::bad_descriptor); else { - DWORD bytes_transferred = 0; DWORD recv_flags = flags; int result = ::WSARecvFrom(impl.socket_, buffers, static_cast(buffer_count), - &bytes_transferred, &recv_flags, addr, addrlen, op, 0); + NULL, &recv_flags, addr, addrlen, op, 0); DWORD last_error = ::WSAGetLastError(); if (last_error == ERROR_PORT_UNREACHABLE) last_error = WSAECONNREFUSED; if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); + iocp_service_.on_completion(op, last_error, 0); else iocp_service_.on_pending(op); }