Index: win_iocp_handle_service.ipp =================================================================== --- win_iocp_handle_service.ipp (revision 85729) +++ win_iocp_handle_service.ipp (working copy) @@ -366,18 +366,17 @@ } else { - DWORD bytes_transferred = 0; op->Offset = offset & 0xFFFFFFFF; op->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; BOOL ok = ::WriteFile(impl.handle_, boost::asio::buffer_cast(buffer), static_cast(boost::asio::buffer_size(buffer)), - &bytes_transferred, op); + NULL, op); DWORD last_error = ::GetLastError(); if (!ok && last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA) { - iocp_service_.on_completion(op, last_error, bytes_transferred); + iocp_service_.on_completion(op, last_error, 0); } else { @@ -474,18 +473,17 @@ } else { - DWORD bytes_transferred = 0; op->Offset = offset & 0xFFFFFFFF; op->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; BOOL ok = ::ReadFile(impl.handle_, boost::asio::buffer_cast(buffer), static_cast(boost::asio::buffer_size(buffer)), - &bytes_transferred, op); + NULL, op); DWORD last_error = ::GetLastError(); if (!ok && last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA) { - iocp_service_.on_completion(op, last_error, bytes_transferred); + iocp_service_.on_completion(op, last_error, 0); } else {