[Bug 40540] New: ReadFile overlapped not using ReadIntervalTimeout
wine-bugs at winehq.org
wine-bugs at winehq.org
Tue Apr 26 13:30:48 CDT 2016
https://bugs.winehq.org/show_bug.cgi?id=40540
Bug ID: 40540
Summary: ReadFile overlapped not using ReadIntervalTimeout
Product: Wine
Version: 1.9.8
Hardware: x86-64
OS: Linux
Status: UNCONFIRMED
Severity: major
Priority: P2
Component: -unknown
Assignee: wine-bugs at winehq.org
Reporter: henry at littau.org
Distribution: ---
Created attachment 54371
--> https://bugs.winehq.org/attachment.cgi?id=54371
Copy of code where error occurs in Appload.exe
I am running on wine-1.9.8 (Staging).
Program is connected to a USB VCP serial device as COMnn. The behavior of
overlapped reads is different between Windows and Wine.
A Serial write is sent to the device, which triggers a response. The code below
is waiting for the response. The response is 8 characters, pretty much
immediately.
Under Wine, when I step with the VS2008 debugger remotely, the ReadFile returns
with IO_Pending, and I see the eight characters in the read buffer. The call to
WaitForSingleObject blocks until it times out, returns TIMEOUT, and the read
process is considered failed.
Under Windows, ReadFile also returns IO_Pending, read buffer unmodified. The
call to WaitForSingleObject returns Success. GetOverlappedResult succeeds with
read length of 8. Life is good.
If I set dwToRead to 8 the code works correctly under Wine. When it is at 64,
we have problems under Wine but not Windows.
ReadIntervalTimeout in COMMTIMEOUTS is 1000 so after one second without new
characters, the ReadFile should be considered complete and WaitForSingleObject
should return. This appears not to be happening under Wine. Is this fixable
under Wine?
Example code attached.
App is called Appload and is available here:
https://wiki.opticonusa.com/techsupport/en/Appload
To run the app and demonstrate the issue you would need an Opticon barcode
scanner, or a mock up of a scanner, on /dev/ttyACM0. App does an enumeration of
COM devices, so Wine needs registry mods as described here:
http://www.downtowndougbrown.com/2013/03/getting-x-ctu-in-wine-to-detect-your-serial-ports/
I can likely provide whatever a credible developer needs if the example
attached is not sufficient.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list