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