[documentation] winedev-kernel

Troy Rollo wine at troy.rollo.name
Sun Mar 13 15:44:19 CST 2005


On Sun, 13 Mar 2005 19:21, Dmitry Timoshkov wrote:
> "Eric Pouech" <pouech-eric at wanadoo.fr> wrote:
> > > For asynchronous read operations, hFile can be any handle opened with
> > > the FILE_FLAG_OVERLAPPED flag by the CreateFile function, or a socket
> > > handle returned by the socket or accept function.
> >
> > which means that ReadFile() only works on socket for async reads, not
> > sync reads. I'll precise this.

It's not quite correct. The following sequence of code will cause all sockets 
created subsequently with socket() to be usable with ReadFile() and 
WriteFile() without overlapped calls. I can confirm that I've done this many 
times (using sockets of this variety is a good way of porting UNIX apps which 
use select on a pipe).

 int optval = SO_SYNCHRONOUS_NONALERT;

 setsockopt( INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE,
  (char *) &optval, sizeof optval );

According to MSDN you can also use WSASocket in Windows Sockets version 2.0 or 
later to create sockets that do this by not using the WSA_FLAG_OVERLAPPED 
flag.



More information about the wine-devel mailing list