Virtual Device Driver Error Message in 16-Bit MS-DOS Subsystem

This information applies to:

 

·         Microsoft Windows 2000 Server

·         Microsoft Windows 2000 Advanced Server

·         Microsoft Windows 2000 Professional

·         Microsoft Windows NT Workstation 4.0

 

IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs.

SYMPTOMS

After you install some programs, one of the following error messages may appear when you attempt to run 16-bit programs:

 

16 bit MS-DOS Subsystem
drive:\program path
XXXX. An installable Virtual Device Driver failed DLL initialization. Choose 'Close' to terminate the application.

 

-or-

 

16 bit MS-DOS Subsystem
drive:\program path
SYSTEM\CurrentControlSet\Control\VirtualDeviceDrivers. VDD. Virtual Device Driver format in the registry is invalid. Choose 'Close' to terminate the application.

 

In some cases, clicking Ignore allows the program to run properly, but the error message continues to be displayed when you start 16-bit programs.

CAUSE

This behaviour can occur if the following registry value has become corrupted:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\VirtualDeviceDrivers\VDD


This issue may occur after you install a 16-bit program, or a program that uses a 16-bit installation program, that is not Windows 2000 compliant.

RESOLUTION

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Use Registry Editor at your own risk.

 

1.       Start Registry Editor (Regedt32.exe).

2.       Locate and click the following value:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\VirtualDeviceDrivers\VDD

 

3.       On the Edit menu, click Delete.

4.       On the Edit menu, click Add Value.

5.       Type VDD in the Value Name box, click REG_MULTI_SZ for the Data Type, and then click OK.

6.       The Multi-String editor appears. Leave this entry blank and click OK.

7.       Quit Registry Editor.

 

If the above steps do not work, or if you are unable to create the VDD key, it may be necessary to also delete and recreate the whole VirtualDeviceDrivers registry key.

 

SYMPTOMS

After the installation of Service Pack 2, (SP2), for Windows 2000 the operating system ceases to execute 16-bit programs and generates the following error code

<Program> caused a general Protection Fault in module KRNL386.EXE at 0001:6382 Choose close. <Program> will close

CAUSE

This is due to a program compatibility feature within VDM, (Windows NT Virtual Dos Machine), that prevents the operation of 16-bit applications.

RESOLUTION

1.       Start Registry Editor (Regedt32.exe).

2.       Locate and click the following value:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\AppCompatability\

3.       Delete the NTVDM.EXE subkey

4.       Click YES for confirmation

5.       Quit Registry Editor

6.       Restart your computer

 

 

WARNING

Torbjörn Hovmark of Abtrusion Security AB reports that Windows NT, XP, and 2000 can easily be made to load 16-bit Windows applications, which the user is not authorized to run. While such applications cannot be run if the user clicks them in the Windows GUI, all he or she must do to execute them is run them through the "DOS shell" via the command

 

command /c 16BitWindowsApp.exe

 

The program will be run even if the user does not have permission to execute it.

This bug, reported to Microsoft in July, can be used to bypass administrative restrictions and to deliver worms, viruses, Trojan horses, and other malware against which a user would normally be protected. Microsoft has told the author of the advisory that the problem will be addressed in "future service packs."