_DEVICE_NODE

//0x118 bytes (sizeof) struct _DEVICE_NODE { struct _DEVICE_NODE* Sibling; //0x0 struct _DEVICE_NODE* Child; //0x4 struct _DEVICE_NODE* Parent; //0x8 struct _DEVICE_NODE* LastChild; //0xc ULONG Level; //0x10 struct _PO_DEVICE_NOTIFY* Notify; //0x14 enum _PNP_DEVNODE_STATE State; //0x18 enum _PNP_DEVNODE_STATE PreviousState; //0x1c enum _PNP_DEVNODE_STATE StateHistory[20]; //0x20 ULONG StateHistoryEntry; //0x70 LONG CompletionStatus; //0x74 struct _IRP* PendingIrp; //0x78 ULONG Flags; //0x7c ULONG UserFlags; //0x80 ULONG Problem; //0x84 struct _DEVICE_OBJECT* PhysicalDeviceObject; //0x88 struct _CM_RESOURCE_LIST* ResourceList; //0x8c struct _CM_RESOURCE_LIST* ResourceListTranslated; //0x90 struct _UNICODE_STRING InstancePath; //0x94 struct _UNICODE_STRING ServiceName; //0x9c struct _DEVICE_OBJECT* DuplicatePDO; //0xa4 struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; //0xa8 enum _INTERFACE_TYPE InterfaceType; //0xac ULONG BusNumber; //0xb0 enum _INTERFACE_TYPE ChildInterfaceType; //0xb4 ULONG ChildBusNumber; //0xb8 USHORT ChildBusTypeIndex; //0xbc UCHAR RemovalPolicy; //0xbe UCHAR HardwareRemovalPolicy; //0xbf struct _LIST_ENTRY TargetDeviceNotify; //0xc0 struct _LIST_ENTRY DeviceArbiterList; //0xc8 struct _LIST_ENTRY DeviceTranslatorList; //0xd0 USHORT NoTranslatorMask; //0xd8 USHORT QueryTranslatorMask; //0xda USHORT NoArbiterMask; //0xdc USHORT QueryArbiterMask; //0xde union { struct _DEVICE_NODE* LegacyDeviceNode; //0xe0 struct _DEVICE_RELATIONS* PendingDeviceRelations; //0xe0 } OverUsed1; //0xe0 union { struct _DEVICE_NODE* NextResourceDeviceNode; //0xe4 } OverUsed2; //0xe4 struct _CM_RESOURCE_LIST* BootResources; //0xe8 ULONG CapabilityFlags; //0xec struct { enum PROFILE_STATUS DockStatus; //0xf0 struct _LIST_ENTRY ListEntry; //0xf4 USHORT* SerialNumber; //0xfc } DockInfo; //0xf0 ULONG DisableableDepends; //0x100 struct _LIST_ENTRY PendedSetInterfaceState; //0x104 struct _LIST_ENTRY LegacyBusListEntry; //0x10c ULONG DriverUnloadRetryCount; //0x114 };