NTVDM and 16-bit app support

NTVDM, or the NT Virtual DOS Machine, is a system component introduced in 1993 for all IA-32 editions of the Windows NT family (not included with 64-bit versions of the OS). This component allows the execution of 16-bit Windows applications on 32-bit Windows operating systems, as well as the execution of both 16-bit and 32-bit DOS applications. The Windows NT 32-bit user-mode executable that is the basis for a single DOS (or Windows 3.x) environment is called ntvdm.exe.

Current status of NTVDM

Given that it's older technology introduced more than 20 years ago, the Microsoft Windows team can provide only limited support for NTVDM. Many enterprise customers are still running 16-bit Windows applications and depending on this feature. However, in modern operating systems, it's in maintenance mode and is no longer being developed. Therefore, our recommendation is that customers do not use NTVDM. We encourage our customers to build new apps that don’t rely on this component.

Note

NTVDM is a Feature on Demand and only supported on the x86 version of Windows. It is not supported on x64 and ARM versions of Windows, which do not support 16-bit x86 code of any kind, including DOS programs.

Security and Limitations

The technology underlying NTVDM is no longer actively under development and use of this technology may pose security risks. Microsoft does have Device Guard and other Windows features that can mitigate the security risks. We recommend that NTVDM is turned off in all enterprise environments.

What if I still need to run 16-bit apps on 32bit Windows 10?

We strongly recommend that you update your apps, so they are no longer dependent on NTVDM.

If you need assistance updating older apps, so that you are no longer dependent on this technology, enterprise customers can receive support. App Assure is a free program available to assist with app compatibility and OS upgrade issues. To get started, you can submit a request or email the team directly for support.

Steps to enable/disable 16-bit application support/NTVDM in Windows 10

If you are unable to update your apps and need to use NTVDM on Windows 10, he's how to do so.

Note

To ensable this feature, you must be running Windows 10 32-bit and must have local administrator privileges. We do not recommend enabling end-users to have local administrator privileges.

NTVDM is provided as a Feature on Demand, which first must be installed using a DISM command. Run Windows PowerShell ISE as an administrator and use the following command:

  • To enable NTVDM: DISM /online /enable-feature /all /featurename:NTVDM
  • To disable NTVDM: DISM /online /disable-feature /featurename:NTVDM