struct async_private needs generalization for Winsock

Martin Wilck Martin.Wilck at fujitsu-siemens.com
Wed Jan 9 08:22:17 CST 2002


On 7 Jan 2002, Alexandre Julliard wrote:

> But in our case Wine would be considered the service provider, so we
> can use the structure. It seems you should be able to use the existing
> code by providing a different async_handler function, and storing the
> needed information in the WSAOVERLAPPED structure. That would be
> cleaner than having the low-level file I/O routines know about winsock
> structures.

I have overseen something: In Winsock routines it is allowed to pass
a NULL LPWSAOVERLAPPED pointer, if a completion routine is specified
(they may even both be NULL, then the operation is carried out
synchronously). Thus the overlapped field obviously cannot be used
by Wine for internal purposes, unless you want to allocate one if the
user hasn't done so (but that would mean allocating a lot of useless
memory space and causing confusion).

I am not certain if the fact that Mike's server code identifies requests
by their OVERLAPPED pointers may cause trouble with NULL OVERLAPPED
pointers. I guess not, though, because for activating requests the first
NULL pointer request will be scheduled, and the Winsock2 Specs state that
"There is no way to cancel indiviual overlapped operations pending on a
given socket".

Martin

-- 
Martin Wilck                Phone: +49 5251 8 15113
Fujitsu Siemens Computers   Fax:   +49 5251 8 20409
Heinz-Nixdorf-Ring 1	    mailto:Martin.Wilck at Fujitsu-Siemens.com
D-33106 Paderborn           http://www.fujitsu-siemens.com/primergy









More information about the wine-devel mailing list