Microsoft KB Archive/102642

From BetaArchive Wiki

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.