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.