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

ID: 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

  1. Delete the following line from the WriteCommByte() function in the sample:
    
       WRITE_OS( npTTYInfo ).Offset += dwBytesWritten ; 


  2. 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 : kbWinOS95
Version :
Platform :
Issue type :


Last Reviewed: September 23, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.