Running Nonnative Applications in Windows 2000 Professional
When Windows 2000 runs on a 486-based processor, a processor mode called Virtual-86 mode is available. This mode allows direct execution of most instructions in an MS-DOS-based application. A few instructions (such as I/O instructions) must be emulated to communicate with the hardware.
An MS-DOS VDM contains three threads:
An application thread on which the MS-DOS-based application runs.
A heartbeat thread that simulates the timer interrupts on native MS-DOS.
A console thread that handles console I/O for the application.
To run MS-DOS-based applications, the VDM acts as a virtual computer that supports:
x 86-based processor instructions, provided by the Instruction Execution Unit.
Read-only memory basic I/O system (ROM BIOS) interrupt services, provided by the MS-DOS emulation module.
MS-DOS Interrupt 21 services, provided by the MS-DOS emulation module.
Virtual hardware for devices, such as the screen and keyboard, provided by Windows 2000 device drivers.
Displaying Under MS-DOS VDM
On x 86-based computers, character-based applications can run either in a full screen display or in a window. Graphical applications can be displayed only in full screen. If an application in a window changes its video mode, it automatically switches to full screen.
Files Used by MS-DOS VDM
Table B.3 contains the principal files used by MS-DOS VDMs.
Table B.3 Principal Files Used by an MS-DOS VDM
File |
Description |
Logical Location |
---|---|---|
Autoexec.nt, Config.nt |
System configuration files |
SystemRoot \System32 (you can change this location using a program information file) |
Command.com |
MS-DOS command interpreter |
16-bit MS-DOS emulation layer |
Dosx.exe |
DPMI interface TSR program |
16-bit MS-DOS emulation layer |
Himem.sys |
Extended memory specification (XMS) driver |
16-bit MS-DOS emulation layer |
Mscdexnt.exe |
MSCDEX interface TSR program |
16-bit MS-DOS emulation layer |
Ntdos.sys |
MS-DOS system kernel |
16-bit MS-DOS emulation layer |
Ntio.sys |
MS-DOS I/O kernel |
16-bit MS-DOS emulation layer |
Ntvdm.exe |
VDM server |
SystemRoot \System32 |
Redir.exe |
NetBIOS interface TSR program |
16-bit MS-DOS emulation layer |
xxx .pif |
Program information file (PIF) |
S ystemRoot (by default) |
Autoexec.nt and Config.nt are used to start the files needed to run MS-DOS-based applications. The system creates Autoexec.nt from the VDMs Autoexec.bat file and creates Config.nt subsequently. It writes comments to the Autoexec.bat and Config.sys files describing the .nt versions.
PIF files provide information about the best way to run the application. If the application has no PIF file, the system uses a default file, _default.pif.
MS-DOS VDM Interprocess Communication
MS-DOS-based applications can communicate on Windows 2000 using the mechanisms of network basic I/O system (NetBIOS) and RPC. Named pipes cannot be created, but can be opened.