## DeviceTree Utility

### SUMMARY

DeviceTree is a driver development support utility that allows the user to examine the Device Objects and Driver Objects present in a system. The utility also shows the relations among these objects.

DeviceTree is useful for driver and system debugging and diagnosis.

#### Current Status

The current version of DeviceTree is V2.6 – While the tool has been successfully tested in a wide-variety of environments on Windows XP and Windows 2000, users must recognize that it is a support utility for use by knowledgeable kernel mode developers in test environments. Because of the depth of the information that it gathers and reports, DeviceTree is capable of crashing the system. Though these crashes are extremely rare, we recommend that DeviceTree not be used on production systems.

DeviceTree was written by OSR Open Systems Resources, Inc. (http://www.osr.com) and is distributed in the Windows DDK under license.

### Running the Tool

DeviceTree requires administrator privilege to run. It may not be run from a remote disk volume or via terminal server – it must be run from a local disk drive.

DeviceTree has two “views” – The Driver view (shown by pressing the D button on DeviceTree’s tool bar) and the PnP view (shown by pressing the P button on DeviceTree’s tool bar).

The Driver view lists all the drivers in the system, by name, and the Device Objects associated with these drivers. Selecting a driver or Device Object in the left pane of DeviceTree results in detailed information being displayed about the selected object in the right pane. Unnamed Device Objects are indicated by the name “(unnamed)”. In the Driver view, the details displayed in the right pane include driver name, load address, size, handle count, and which I/O and Fast I/O operations (if any) are supported by the driver. A summary of devices owned by the driver is also shown.

Driver Objects are denoted by DRV in the Driver view. Device Objects owned by the Driver Object are shown under the Driver Object with the legend DEV. Where one Device Object has another Device Object attached, either via the AttachedDevices pointer or via a Volume Parameter Block (VPB), the Device Object that is attached is shown with the legend ATT.

The Plug and Play view shows the Device Objects in the system and their relationship to each other in the Plug and Play “Device Tree”. The left pane starts with the root of the tree, the “Root Enumerator” (the PnP Manager). Expanding a level in the tree shows the devices enumerated at that level. An individual branch of the PnP device tree may thus be expanded from its root (on the left) all the way to a particular leaf (on the right).

When a Device Object is selected in the left pane, detailed information is shown about that Device Object in the right pane.

A few points regarding the notation used in the Plug and Play view might be useful. PDO indicates a Device Object that is a Physical Device Object. FDO indicates a Device Object that is either a Functional Device Object or a Filter driver Functional Device Object. As knowledgeable kernel-mode developers will know, a PnP driver instantiates a Functional Device Object over the Physical Device Object created by an underlying bus driver. A FDO layered over an PDO is shown above, or “further to the right” in DeviceTree’s display. When an FDO is shown to be layered over another FDO, the second FDO is likely to be the Device Object for a filter driver. When a PDO is shown in color (purple), it indicates a PDO that has been reported as owned by it’s preceding FDO, but that is actually owned by another driver.

### Limitations

DeviceTree supports IA32 architecture Windows 2000 and Windows XP systems. It does support Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows Millennium. It does not support any IA64 configuration at the present time.

### CODE TOUR

#### File Manifest

    File           Description

    DeviceTree.exe The executable file.

    DeviceTree.htm The documentation for this tool (this file).

### Feedback

We always welcome your comments, problem reports and wish list requests. Please submit them by pointing your Internet browser to http://www.microsoft.com/ddk.

Top of page

© Microsoft Corporation 2001
© Copyright 2000-2001 OSR Open Systems Resources, Inc.