Article ID: 99279 - View products that this article applies to.
This article was previously published under Q99279
Windows NT provides a fully-integrated command prompt that enables you to launch both Windows-based and MS-DOS-based applications. Although the concept of running an MS-DOS-based application in a Windows-based environment may be familiar to you, Windows NT handles this somewhat differently than Windows (16-bit) does.
The essential difference lies in the command prompt itself; under Windows NT, the command prompt is a 32-bit Windows NT-based application, not the virtual MS-DOS machine you would expect from Windows. Under Windows NT, until you start an MS-DOS-based application, no virtual MS-DOS machine is created. Furthermore, once you start an MS-DOS-based application, its virtual MS-DOS machine is used for all subsequent MS-DOS-based applications started from the same command prompt.
As in Windows, each MS-DOS-based application can have a program information file (PIF). If there is no PIF for a particular application, the default PIF, _DEFAULT.PIF, is used. Because Windows NT only uses the PIF from the first application started in any given command prompt, you may need to take special care in the way you start your applications. For example, if you design a PIF that allocates some EMS memory, it is important that you start the associated application first; otherwise, the EMS memory may never be allocated. You may start a Windows NT command prompt and then run the MS-DOS command, MEM, to see how much memory you have free. Because MEM is another MS-DOS-based application, Windows NT creates a virtual MS-DOS machine, probably using _DEFAULT.PIF. After MEM finishes, you start the application you created the PIF for. Unfortunately, because _DEFAULT.PIF doesn't instruct Windows NT to allocate EMS memory, your application reports that it can find no EMS memory. Rechecking the PIF you created does not solve the problem. You need to start another command prompt and then make sure to start your EMS-requiring application first, before you start any other MS-DOS-based applications.
There is one more difference to be aware of: each PIF contains a pointer to AUTOEXEC and CONFIG files. Usually these default to the Windows NT versions, AUTOEXEC.NT and CONFIG.NT. If you want to change environment variables for your MS-DOS-based applications, you need to point their PIFs to different files or modify the default ones. (To see these files and their locations, run PIF Editor and choose Windows NT.)
Article ID: 99279 - Last Review: October 31, 2006 - Revision: 3.1