Windows NT Serial Communication Support, MS-DOS & Windows (101631)
The information in this article applies to:
- Microsoft Windows NT Server 3.1
- Microsoft Windows NT Workstation 3.1
- Microsoft Windows NT Advanced Server 3.1
This article was previously published under Q101631 SUMMARY
The text below describes how Windows NT supports serial communications
in 16-bit Windows-based and in MS-DOS-based applications.
16-Bit Windows-Based Applications
Windows NT supports serial communications in 16-bit Windows-based
applications in the same manner that 16-bit Windows 3.1 does, through
communications functions in the Windows application programming
interface (API). From the application standpoint, Windows NT provides
COMM.DRV, the communications driver in 16-bit Windows 3.1, because a
mapping exists between the Windows 3.1 and Windows NT functions. This
mechanism emulates the EventWord and shadow modem status register
(MSR) to support the GetCommEventMask() function. It also sends
WM_COMMNOTIFY messages to support the EnableCommNotification()
function.
If a 16-bit Windows-based application uses any extended functionality
provided by a third-party communications driver, it may not
communicate reliably because Windows NT may not support the extended
functionality.
MS-DOS-Based Applications
Most MS-DOS-based communication applications do not use any serial
port functions; instead, they directly access the serial port
hardware. Windows NT supports these applications by simulating the
standard hardware serial adapters, COM1 through COM4; the application
never directly controls the serial port hardware. Modems that are
setup for non standard irq's like irq 5 will not work with dos
applications in Windows NT. Win32 applications like DUN and
Hyperterminal will work correctly though.
Windows NT simulates four 16450 UARTs at the standard serial I/O
addresses and interrupt numbers used in IBM PC-compatible hardware.
When each virtual MS-DOS machine (VDM) starts, the simulated UARTs are
dormant. When an application accesses a simulated UART, Windows NT
connects the simulated UART to the corresponding Windows NT serial
port, even if it uses a different address, interrupt number, or a
completely different interface. If the corresponding serial port is
not present of if it is already in use, Windows NT displays an error
dialog box to inform the user of the problem.
Some applications have an "idle curiosity" about serial ports that
they do not otherwise use. When you run one of these applications in
Windows NT, it may cause spurious error messages and/or prevent
another application from using the serial ports. At this time, if the
software does not provide a method to disable this behavior, there is
no method to work around this behavior. Contact your software supplier
for 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.
Modification Type: | Major | Last Reviewed: | 11/20/2003 |
---|
Keywords: | kb3rdparty kbinterop KB101631 |
---|
|