One of the strangest hardware
problems you'll encounter in XP are hidden and
ghosted hardware devices that are invisible to you but that can cause
system conflicts. You won't be able to see them in
the Device Manager
When you use that troubleshooting tool, you won't be
able to uncover any problems they might be causing.
The Device Manager hides several types of these devices. Non-Plug and
Play printers, drivers, and similar devices don't
show up. Most newer devices are Plug and Play, so
you'll most likely encounter this problem only if
you have old hardware attached to your PC. (Plug and Play devices are
automatically recognized and installed in XP.) In this instance, the
device is physically present on your PC, but the Device Manager
doesn't show you it's there.
Then there are the so-called
nonpresent or ghosted
devices—devices you've removed from your
system without doing an uninstall, or whose uninstallation did not
work properly. These devices aren't physically
present in your system, but XP treats them as if they were and
devotes system resources to them. For example, if you physically
remove an old network card without doing an uninstall, it might cause
IP and other kinds of conflicts because XP treats it as if it were
still in your system.
The Device Manager also might not give you details about
USB devices that you use only
temporarily and that you frequently attach and remove—for
example, MP3 players that you attach to your PC only when you want to
add or delete MP3 files from them. Even when these devices
aren't present in your system, XP devotes resources
to them. If you replace one USB device with another of the same
model, it's best to go through the uninstall process
rather than just swap them.
And then there are devices you might have moved from one slot to
another. XP might believe they are actually present in two slots, so
it devotes resources for both slots to them.
Displaying these hidden devices can help with troubleshooting. For
example, a hidden device could possibly conflict with a nonhidden
device. And sometimes you might want to uninstall hidden
devices—for example, when you've moved a
non-Plug and Play network card from one slot to another and want to
uninstall it from one slot.
But to do this kind of troubleshooting you'll need
to force the Device Manager to display information about the devices;
otherwise, you won't know how to solve the problem.
Forcing the Device Manager to display
non-Plug and Play printers, drivers, and similar devices is a simple
matter. Run the Device Manager by typing
devmgmt.msc at a command prompt and pressing
Enter, and then choosing View → Display Hidden Devices.
Displaying ghosted or nonpresent devices
takes a little more work. You'll set a systemwide
environment variable that forces the Device Manager to display them.
First, right-click My Computer and choose Properties →
Advanced → Environment Variables. The Environment Variable
dialog box opens. This dialog box lets you set system variables for
the entire system or for individual users. Environment variables
control a variety of XP features, such as the location of your
Windows directory and TEMP
directories and the filename and location of the command processor
that will launch when you run the command prompt.
The Environment Variables dialog box contains two sections:
"User variables" and
"System variables." To apply the
variable to a single user, use the "User
variables" dialog box; to apply the variable to all
users, use the "System variables"
dialog box. In this case, you'll want to create the
variable systemwide, so click New in the "System
variables" section. The New System Variable dialog
box appears. For "Variable name,"
type devmgr_show_nonpresent_devices. Once
you've created the name, you need to give it a
value. To turn the setting on, type 1 in the
"Variable value" box. You can see
the box filled out properly in Figure 1. Click OK
and then OK again.
Figure 1. Setting the Device Manager to always show ghosted devices
So, now you've set the system variable properly, but
the Device Manager won't display ghosted devices
yet. First you have to tell it to display them. Run the Device
Manager by typing devmgmt.msc at a command prompt
or in the Run box and pressing Enter. Then, choose View →
Display Hidden Devices and the ghosted devices will appear, as shown
in Figure 2. You should see quite a few devices
now, including a lengthy list of non-Plug and Play drivers.
Typically, devices that are not currently present on your PC will be
shown as gray, rather than the black that connotes present devices.
You might also see some devices listed more than once, as shown in
Figure 2.
Figure 2. Displaying ghosted devices in the Device Manager
Now, use the Device Manager to troubleshoot any of those ghosted
devices, as detailed in [Hack #115]. If you find any ghosted
devices that you will no longer use on your PC, uninstall them from
the Device Manager by right-clicking the device and choosing
Uninstall.
Hacking the Hack
If you want to use the Device
Manger only on occasion to show ghosted devices and you
don't want to add another environment variable to
your system, you can add the variable on an instance-by-instance
basis—for example, for a single time that you run the Device
Manager. At the command prompt, type set
devmgr_show_nonpresent_devices=1 and press Enter. You
won't get a prompt in response; the command prompt
will stay blank. At the same instance of the command prompt, type
startdevmgmt.msc and press
Enter. The Device Manager will launch in a separate window. Now,
enable the Device Manager to show ghosted devices in the same way you
did previously in this hack.
Keep in mind that you have to run the Device Manager from the same
instance of the command prompt in which you typed
devmgr_show_nonpresent_devices=1. If you run the
Device Manager outside the command prompt, it
won't display ghosted devices.