Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/105302

From BetaArchive Wiki

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


Last Reviewed: October 27, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.