This article was previously published under Q101631
This article has been archived. It is offered "as is" and will no longer be updated.
The text below describes how Windows NT supports serial communicationsin 16-bit Windows-based and in MS-DOS-based applications.
16-Bit Windows-Based Applications
Windows NT supports serial communications in 16-bit Windows-basedapplications in the same manner that 16-bit Windows 3.1 does, throughcommunications functions in the Windows application programminginterface (API). From the application standpoint, Windows NT providesCOMM.DRV, the communications driver in 16-bit Windows 3.1, because amapping exists between the Windows 3.1 and Windows NT functions. Thismechanism emulates the EventWord and shadow modem status register(MSR) to support the GetCommEventMask() function. It also sendsWM_COMMNOTIFY messages to support the EnableCommNotification()function.
If a 16-bit Windows-based application uses any extended functionalityprovided by a third-party communications driver, it may notcommunicate reliably because Windows NT may not support the extendedfunctionality.
Most MS-DOS-based communication applications do not use any serialport functions; instead, they directly access the serial porthardware. Windows NT supports these applications by simulating thestandard hardware serial adapters, COM1 through COM4; the applicationnever directly controls the serial port hardware. Modems that aresetup for non standard irq's like irq 5 will not work with dosapplications in Windows NT. Win32 applications like DUN andHyperterminal will work correctly though.
Windows NT simulates four 16450 UARTs at the standard serial I/Oaddresses and interrupt numbers used in IBM PC-compatible hardware.When each virtual MS-DOS machine (VDM) starts, the simulated UARTs aredormant. When an application accesses a simulated UART, Windows NTconnects the simulated UART to the corresponding Windows NT serialport, even if it uses a different address, interrupt number, or acompletely different interface. If the corresponding serial port isnot present of if it is already in use, Windows NT displays an errordialog box to inform the user of the problem.
Some applications have an "idle curiosity" about serial ports thatthey do not otherwise use. When you run one of these applications inWindows NT, it may cause spurious error messages and/or preventanother application from using the serial ports. At this time, if thesoftware does not provide a method to disable this behavior, there isno method to work around this behavior. Contact your software supplierfor a corrected, or Windows NT-specific, version of the application.
NOTE: Serial communications is not emulated perfectly because of fundamental differences between the preemptive and nonpreemtive multitasking environments. If an application uses real-time hardware interrupts, it may experience problems caused by preemptive multitasking in Windows NT. Timing serial events in Windows NT may be different than in 16-bit Windows 3.1. Also, the ability to directly access hardware is not available in Windows NT. If your application directly accesses hardware, contact your vendor for a Windows NT-specific version of the application.