Error Message: Cannot Find a Device File That May Be Needed to Run Windows

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.


When you start Windows, you may receive the following error message:

Cannot find a device file that may be needed to run Windows or a Windows application.

The Windows registry or SYSTEM.INI file refers to this device file, but the device file no longer exists.

If you deleted this file on purpose, try uninstalling the associated application using its uninstall program or setup program.

If you still want to use the application associated with this device file, try reinstalling that application to replace the missing file.


NOTE: The specific file may not be named.


This error message can occur for either of the following reasons:

  • A Windows virtual device driver (VxD) referenced in the System.ini file or registry is missing or damaged.
  • One of the StaticVxD values in the registry contains invalid data. For example, the value is blank or contains only spaces. In this case, the missing device driver is not named in the error message.


WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys And Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it.

To resolve this problem, follow each step below until the error no longer occurs:

  1. If you have recently removed a program or component, reinstall the program or component, then run the uninstall tool if one is available. If no uninstall tool is available for the program or component, contact the manufacturer to obtain instructions on uninstalling.
  2. If the missing device driver has a .386 extension, disable the line referring to this device driver in the System.ini file by placing a semicolon (;) at the beginning of the line. For example, if the line referencing the missing device driver reads

    change the line to read

  3. If the missing device driver has a .vxd extension, it is a driver designed for use with Windows 95 or Windows 98 and is referenced in the registry. In most cases, a program or component with drivers designed for use with Windows 95 or Windows 98 will also be listed in the Add/Remove Programs tool in Control Panel. Following the instructions in step 1 should correct the problem.

    For Windows 98

    If the error message still occurs after following the instructions in step 1 or it does not apply, use System File Checker to extract the missing file from the Windows 98 CD-ROM as follows:

    1. Click Start, point to Programs, point to Accessories, point to System Tools, and then click System Information.
    2. On the Tools menu, click System File Checker.
    3. Click "Extract one file from installation disk," type the name of the file you want to extract in the "Specify the system file you would like to restore" box, and then click Start.
    4. In the Restore From box, type the path to the Win98 folder on the Windows 98 CD-ROM. Type the destination folder in the Save File In box if necessary, and then click OK.
    5. Click OK, click OK, and then click Yes when you are prompted to restart your computer.

    For Windows 95

    Use the following syntax to extract a file from a known cabinet file:

    extract <cabinet> <filename> /l <destination>
    For example, to extract the Windows 95 Unidrv.dll file from the file on a disk in drive A to the Windows\System folder on drive C, use the following command:
    extract a:\ unidrv.dll /l c:\windows\system

    For more information about how to extract a file, please see the following article in the Microsoft Knowledge base:
    ARTICLE-ID: 129605
    TITLE : How to Extract Original Compressed Windows Files
  4. If a specific device driver is not named in the error message, one of the StaticVxD values in the registry is probably blank or contains only spaces. The StaticVxD values are located in the registry keys below the following key:


    Use Registry Editor to locate and delete any StaticVxD value in the registry that contains invalid data, is blank, or contains only spaces.

More Information

When Windows starts, the System.ini file and the registry are read to obtain a list of device drivers to load. When Windows cannot locate a virtual device driver that it is attempting to load, an error message is generated.

Virtual device drivers are files required by various programs to communicate with your computer's hardware.

The following sample registry key contains a StaticVxD value:


The data for this StaticVxD value is "*COMBUFF" (without the quotation marks; the quotation marks appear in Registry Editor but are not part of the VxD name). The asterisk (*) preceding the VxD name indicates that the VxD is internal to the Vmm32.vxd file. If the VxD referenced by the StaticVxD value is not internal to the Vmm32.vxd file, its name is not preceded by an asterisk and typically has a .vxd extension.


Article ID: 132008 - Last Review: Jan 19, 2007 - Revision: 1