SOCKET copy(WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO
       , FROM_PROTOCOL_INFO, &info, NULL, NULL));

   ip::tcp::socket scopy(ios, ip::tcp::v4(), copy);

 
For debug purposes, did you check what the value of "copy" is? Did you try to perform a simple winsock i/o operation on it? I.e., are you sure that you've got valid tcp socket descriptor?