Elizabeth Figura (@zfigura) commented about dlls/ntdll/unix/socket.c:
rem_async->iov[0].iov_len = data_size;
for (i = 0; i < iov_count; ++i)
{
memcpy( p, iov[i].iov_base, iov[i].iov_len );
p += iov[i].iov_len;
}
rem_async->unix_flags = async->unix_flags;
memcpy( p, async->addr, addr_size );
rem_async->addr = (const struct WS_sockaddr *)p;
p += addr_size;
rem_async->addr_len = async->addr_len;
rem_async->iov_cursor = 0;
rem_async->sent_len = 0;
rem_io = (IO_STATUS_BLOCK *)p;
p += sizeof(IO_STATUS_BLOCK);
status = sock_send( handle, NULL, NULL, NULL, rem_io, fd, rem_async, TRUE );
This needs handling of wow64 IOSB like sync_ioctl().