BUG: 32K Limit on Input/Output Queues in COMM.DRV
PSS ID Number: Q102642
Article last modified on 05-04-1994

3.10

WINDOWS


--------------------------------------------------------------------
The information in this article applies to:

 - Microsoft Windows Software Development Kit (SDK) for Windows
   version 3.1
--------------------------------------------------------------------

SUMMARY
=======

The cbInQueue and cbOutQueue parameters of OpenComm() are both type
UINT and should be valid up to 64K. However, values greater than or
equal to 32K cause strange behavior.

SYMPTOMS
========

OpenComm() does not fail. However, both WriteComm() and ReadComm()
fail without writing/reading any characters. GetCommError() returns a
CE_TXFULL on any WriteComm() calls, and CE_OVERRUN on any ReadComm()
calls.

CAUSE
=====

There is a signed comparison on the cbInQueue and cbOutQueue
parameters in COMM.DRV. Any number greater than or equal to 32K
resembles a negative number in these comparisons.

RESOLUTION
==========

Assign a value less than 32K to cbInQueue and cbOutQueue.

STATUS
======

This bug will not be fixed for the Windows 3.1 version COMM.DRV.

Additional reference words: 3.10
KBCategory: Prg
KBSubcategory: KrCommapi

=============================================================================

Copyright Microsoft Corporation 1994.
