Serial and pread

Izak Burger izakb at synapp.com
Wed Apr 14 04:39:10 CDT 2004


Thanks for the speedy reply.

Mike McCormack wrote:
> The wineserver may also change the status of the request to 
> STATUS_SUCCESS after a certain timeout is reached.  The problem is most 
> likely that the timeout is not being calculated properly.
 >
 > The code to do that is in server/async.c and server/serial.c.

I cannot actually find the place where that happens (setting the status 
to STATUS_SUCCESS), but I guess I will eventually.

 > The timeouts are set by the SetCommTimeouts call.  Try using the
 > +serial debug channel to see what timeouts are being set.  The

Ok.  I had to set +comm to get that info, and modified the code to dump 
the contents of the COMMTIMEOUTS structure:

trace:comm:SetCommTimeouts ReadIntervalTimeout=4294967295
trace:comm:SetCommTimeouts ReadTotalTimeoutMultiplier=0
trace:comm:SetCommTimeouts ReadTotalTimeoutConstant=0
trace:comm:SetCommTimeouts WriteTotalTimeoutMultiplier=0
trace:comm:SetCommTimeouts WriteTotalTimeoutConstant=5000

MSDN says this means to return immediately with whatever is there.

> ReadFile command may also be important - check whether it is being 
> called with an overlapped structure or not.

It is called with an overlapped structure:
trace:file:ReadFile 0x88 0x42295ff1 1040 0x4081ace0 0x42295b5f
                                                     ^^^^^^^^^^
regards,
Izak




More information about the wine-devel mailing list