Last Updated On: 08/05/2004
Windows NT Application Support
Windows 3.x applications, or Win16 applications, are supported by Windows NT as well. The best way to understand how Windows NT handles Win16 applications is to understand how DOS handles Win16 applications.
In Windows NT, when a Win16 application is executed, something called a WOW (Windows on Windows) is opened. This is a 32-bit emulator for the Windows 3.x environment. From the application's perspective, it is running in Windows 3.x, not Windows NT.
However, just as Windows 3.x requires DOS, the WOW requires an NTVDM in which to run. Therefore, when a Win16 application is executed, a WOW is opened inside an NTVDM. This Figure illustrates this by showing both platforms side by side. On the left we see the Windows 3.x platform, with DOS running in the background. On the right, an NTVDM is used to emulate DOS, so that the WOW, an emulator for Windows 3.x, can run.
Win16 applications, contrasted with DOS applications, always run in the same NTVDM by default. If you open 20 different Win16 applications, they will always open in the same NTVDM and WOW. This figure shows the Task Manager Process tab with two Win16 applications, badapp16.exe and spind16.exe running.
Starting Win16 applications In Separate Memory
Win16 applications can be started in separate NTVDM's if directed to do so. Three methods exist to accomplish this task.
- From a command prompt, run the application using the following syntax:
START /SEPARATE APPLICATION.EXE
- Click on the "Start" button and then click "Run". Type in the path to the Win16 application. When the path is entered, notice that the checkbox labeled "Run in separate memory is enabled. Check this box.
- Create a shortcut to the Win16 application. Right-click on the shortcut icon you created and choose "Properties" from the menu. Choose the "Shortcut" tab. On this tab you will notice that there is a checkbox labeled "Run in Separate Memory Space". Check that box and close the properties. The next time you open the shortcut to the application it will execute in a separate NTVDM.
Notice in this figure that two Win16 applications were executed initially, spind16.exe and badapp16.exe. These, by default, started in the same NTVDM in the same memory space. The third application, another instance of spind16.exe, was executed in separated memory using one of the aforementioned methods. Notice that two NTVDM's are opened.