struct DEVICE_NODE

typedef struct _DEVICE_NODE
{
     PDEVICE_NODE Sibling;
     PDEVICE_NODE Child;
     PDEVICE_NODE Parent;
     PDEVICE_NODE LastChild;
     ULONG Level;
     PO_DEVICE_NOTIFY Notify;
     PO_IRP_MANAGER PoIrpManager;
     PNP_DEVNODE_STATE State;
     PNP_DEVNODE_STATE PreviousState;
     PNP_DEVNODE_STATE StateHistory[20];
     ULONG StateHistoryEntry;
     LONG CompletionStatus;
     PIRP PendingIrp;
     ULONG Flags;
     ULONG UserFlags;
     ULONG Problem;
     PDEVICE_OBJECT PhysicalDeviceObject;
     PCM_RESOURCE_LIST ResourceList;
     PCM_RESOURCE_LIST ResourceListTranslated;
     UNICODE_STRING InstancePath;
     UNICODE_STRING ServiceName;
     PDEVICE_OBJECT DuplicatePDO;
     PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements;
     INTERFACE_TYPE InterfaceType;
     ULONG BusNumber;
     INTERFACE_TYPE ChildInterfaceType;
     ULONG ChildBusNumber;
     WORD ChildBusTypeIndex;
     UCHAR RemovalPolicy;
     UCHAR HardwareRemovalPolicy;
     LIST_ENTRY TargetDeviceNotify;
     LIST_ENTRY DeviceArbiterList;
     LIST_ENTRY DeviceTranslatorList;
     WORD NoTranslatorMask;
     WORD QueryTranslatorMask;
     WORD NoArbiterMask;
     WORD QueryArbiterMask;
     ULONG OverUsed1;
     ULONG OverUsed2;
     PCM_RESOURCE_LIST BootResources;
     PCM_RESOURCE_LIST BootResourcesTranslated;
     ULONG CapabilityFlags;
     BYTE DockInfo[16];
     ULONG DisableableDepends;
     LIST_ENTRY PendedSetInterfaceState;
     LIST_ENTRY LegacyBusListEntry;
     ULONG DriverUnloadRetryCount;
     PDEVICE_NODE PreviousParent;
     ULONG DeletedChildren;
     ULONG NumaNodeIndex;
} DEVICE_NODE, *PDEVICE_NODE;

Windows Vista Kernel Structures