Microsoft KB Archive/105302

{|
 * width="100%"|

INFO: Canceling WaitCommEvent with SetCommMask

 * }

Q105302

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), used with:
 * the operating system: Microsoft Windows NT, versions 3.1, 3.5, 4.0
 * the operating system: Microsoft Windows 2000

-

SUMMARY
If a serial port is in nonoverlapped mode (without FILE_FLAG_OVERLAPPED) and SetCommMask is called, the call does not return until any pending WaitCommEvent calls return. This apparently contradicts the following statement from the SetCommMask Help

"If SetCommMask is called for a communications resource while a wait is pending for that resource, WaitCommEvent returns an error." and the following statement from the WaitCommEvent Help:

"If a process attempts to change the device handle's event mask by using the SetCommMask function while a WaitCommEvent operation is in progress, WaitCommEvent returns immediately." However, this is the expected behavior. If you open a serial port in the nonoverlapped mode, then you can do only one thing at a time with the serial port. SetCommMask must block while the WaitCommEvent call is blocking.

If the serial port was opened with FILE_FLAG_OVERLAPPED, WaitCommEvent will return after SetCommEvent has been called.

The SDK 3.51 docs have been corrected.

Additional query words: 3.10 3.50 com1 com2

Keywords : kbAPI kbCommPort kbKernBase kbOSWin2000 kbDSupport kbGrpDSKernBase kbSerial

Issue type : kbinfo

Technology : kbAudDeveloper kbWin32sSearch kbWin32API