PRB: COMM (TTY) Sample Does Not Work on Windows 95 (128787)
The information in this article applies to:
- Microsoft Win32 Application Programming Interface (API), when used with:
This article was previously published under Q128787 SYMPTOMS
The Win32 COMM (old TTY) sample that ships with Visual C++ version 2.x and
the Windows 95 SDK (pre-release) does not work correctly under Windows 95
M8 builds and later. The problem involves assigning values to the Offset
member of the OVERLAPPED structure which is one of the arguments to the
WriteFile function call.
The observed behavior is that the COMM sample writes only one byte to the
serial port. No other data is transmitted after the first byte.
CAUSE
The documentation for the OVERLAPPED structure explicitly states that the
Offset and OffsetHigh members must be set to 0 when reading from or writing
to a named pipe or communications device. This was not done in the sample.
RESOLUTION- Delete the following line from the WriteCommByte() function in the
sample:
WRITE_OS( npTTYInfo ).Offset += dwBytesWritten ;
- Add the following lines to the CreateTTYInfo() function:
WRITE_OS( npTTYInfo ).Offset = 0 ;
WRITE_OS( npTTYInfo ).OffsetHigh = 0 ;
STATUS
This is a problem with the sample, not with Windows 95. Windows 95
correctly implements WriteFile() and use of the OVERLAPPED structure.
Modification Type: | Major | Last Reviewed: | 10/29/2003 |
---|
Keywords: | KB128787 |
---|
|