wine server

Mike McCormack mike_mccormack at
Wed Aug 15 04:45:02 CDT 2001

Hi Phillip,

The wineserver does the job of the Windows NT kernel in wine.

Here's a summary of what i've worked out about the wineserver:

* the wineserver is responsible for all system level synchronization
of wine processes, and maintaining integrity of handles

* the wineserver is the sole repository for all HANDLE data in the
wine process group.

* wineserver communicates with each wine process thru a socket and
shared memory. There is one socket and one shared memory area per wine

* the main task of wineserver is a loop which polls on all the wine
process sockets, and handles timeouts.

* the wineserver processes requests one by one (it is a single

* each request is triggered by the wine process writing to its socket,
and ended when the wineserver writes back to the socket. During the
request, the wine process is effectively stopped.

* request data may be read to or written from the shared memory, but
the shared memory is not used for synchronization. Synchronization is
maintained solely by socket reads and writes.

* the wineserver should end each request before processing the next

* the wineserver must never wait for or depend upon any wine
processes. All wine processes must be assumed to be unstable and
unreliable. (even if they're not)

* the wineserver design is reliable, but rather slow due to all the
context switching required by each request. David Howells made an
effort to turn it into a Linux kernel module... he hasn't finished

hope that's accurate and helpful... 


mailto:Mike_McCormack at
ph +82 16 430 0425

Get your free Australian email account at

More information about the wine-devel mailing list