Standard-mode Windows does not provide the same multitasking environment as 386 enhanced-mode Windows, so the potential impact on existing network software is not as great. Nevertheless, network software may need modification or additional software to accommodate the following:
Asynchronous network requests
Application Programming Interface (API) mapping
Expanded Memory Specification (EMS) memory
The following sections discuss these topics.
Asynchronous network requests can corrupt data or code if the user switches away from the non-Windows application that initiated the request before the network has completed to it. Standard-mode Windows automatically prevents the user from switching away from an application that uses asynchronous NetBIOS calls.
This may require changes to both the MS-DOS Extender and the non-Windows application support module (that is, WINOLDAP.) Both the MS-DOS Extender and WINOLDAP include support specifically for NetBIOS. Unfortunately, these modules are not easily adapted to support other network API.
Standard-mode Windows prevents switches from occurring during critical sections. By default, MS-DOS functions, including network functions, are considered critical sections.
Windows applications in standard-mode use protected-mode addresses. Network drivers that rely on real-mode network software to carry out network requests must translate protected-mode addresses in the requests to real-mode addresses before passing the request on to the network software.
Windows translates the following APIs:
Standard MS-DOS functions, including network-related functions
Standard BIOS functions
Standard NetBIOS functions
If the network driver uses other real-mode functions to carry out a network request, the driver or related software must translate the protected-mode addresses to real-mode addresses.
Since many networks use additional functions, code to support the address translation is required.
Some network software uses expanded memory to store portions of its own code and data. This helps minimize conventional memory usage, but may be incompatible with standard-mode use of memory.
On machines with expanded memory specification (EMS) hardware, standard-mode Windows does not alter the EMS hardware. This means the EMS memory continues to function and is available for use by Windows applications and non-Windows applications. Furthermore, starting or terminating standard-mode Windows does not disrupt the state of the EMS memory, so memory-resident applications, such as network software, can continue uninterrupted use of EMS memory.
On 80386 machines however, protected-mode EMS emulators are typically used to provide EMS memory. Since EMS emulators are often protected-mode software, standard-mode Windows cannot run unless it can turn the emulator off. Standard-mode Windows can turn off certain expanded memory emulators (including all the versions of Microsoft EMM386 and Compaq CEMM) provided they have no open handles. In such cases, there will be no EMS memory available while standard-mode Windows is running. Windows turns on the EMS emulator when Windows exits.