Microsoft KB Archive/128787

{|
 * width="100%"|

PRB: COMM (TTY) Sample Does Not Work on Windows 95

 * }

Q128787

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), included with:
 * Microsoft Windows 95

-

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.

Additional query words: 4.00

Keywords : kbOSWin95

Issue type :

Technology : kbAudDeveloper kbWin32sSearch kbWin32API