struct _DEVICE_NODE { struct _DEVICE_NODE* Sibling;/* 0x0 8 */ struct _DEVICE_NODE* Child;/* 0x8 8 */ struct _DEVICE_NODE* Parent;/* 0x10 8 */ struct _DEVICE_NODE* LastChild;/* 0x18 8 */ unsigned long Level;/* 0x20 4 */ /* 4 bytes padding */ struct _PO_DEVICE_NOTIFY Notify;/* 0x28 64 */ /* ── cacheline 1 boundary (64 bytes) ── */ struct _PO_IRP_MANAGER PoIrpManager;/* 0x68 32 */ /* ── cacheline 2 boundary (128 bytes) ── */ enum _PNP_DEVNODE_STATE State;/* 0x88 4 */ enum _PNP_DEVNODE_STATE PreviousState;/* 0x8c 4 */ enum _PNP_DEVNODE_STATE StateHistory[20];/* 0x90 80 */ /* ── cacheline 3 boundary (192 bytes) ── */ unsigned long StateHistoryEntry;/* 0xe0 4 */ long CompletionStatus;/* 0xe4 4 */ struct _IRP* PendingIrp;/* 0xe8 8 */ unsigned long Flags;/* 0xf0 4 */ unsigned long UserFlags;/* 0xf4 4 */ unsigned long Problem;/* 0xf8 4 */ /* 4 bytes padding */ /* ── cacheline 4 boundary (256 bytes) ── */ struct _DEVICE_OBJECT* PhysicalDeviceObject;/* 0x100 8 */ struct _CM_RESOURCE_LIST* ResourceList;/* 0x108 8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated;/* 0x110 8 */ struct _UNICODE_STRING InstancePath;/* 0x118 16 */ struct _UNICODE_STRING ServiceName;/* 0x128 16 */ struct _DEVICE_OBJECT* DuplicatePDO;/* 0x138 8 */ /* ── cacheline 5 boundary (320 bytes) ── */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements;/* 0x140 8 */ enum _INTERFACE_TYPE InterfaceType;/* 0x148 4 */ unsigned long BusNumber;/* 0x14c 4 */ enum _INTERFACE_TYPE ChildInterfaceType;/* 0x150 4 */ unsigned long ChildBusNumber;/* 0x154 4 */ unsigned short ChildBusTypeIndex;/* 0x158 2 */ unsigned char RemovalPolicy;/* 0x15a 1 */ unsigned char HardwareRemovalPolicy;/* 0x15b 1 */ /* 4 bytes padding */ struct _LIST_ENTRY TargetDeviceNotify;/* 0x160 16 */ struct _LIST_ENTRY DeviceArbiterList;/* 0x170 16 */ /* ── cacheline 6 boundary (384 bytes) ── */ struct _LIST_ENTRY DeviceTranslatorList;/* 0x180 16 */ unsigned short NoTranslatorMask;/* 0x190 2 */ unsigned short QueryTranslatorMask;/* 0x192 2 */ unsigned short NoArbiterMask;/* 0x194 2 */ unsigned short QueryArbiterMask;/* 0x196 2 */ union { struct _DEVICE_NODE* LegacyDeviceNode;/* 0x198 8 */ struct _DEVICE_RELATIONS* PendingDeviceRelations;/* 0x198 8 */ void* Information;/* 0x198 8 */ } OverUsed1;/* 0x198 8 */ union { struct _DEVICE_NODE* NextResourceDeviceNode;/* 0x1a0 8 */ } OverUsed2;/* 0x1a0 8 */ struct _CM_RESOURCE_LIST* BootResources;/* 0x1a8 8 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated;/* 0x1b0 8 */ unsigned long CapabilityFlags;/* 0x1b8 4 */ /* 4 bytes padding */ /* ── cacheline 7 boundary (448 bytes) ── */ struct { enum PROFILE_STATUS DockStatus;/* 0x1c0 4 */ /* 4 bytes padding */ struct _LIST_ENTRY ListEntry;/* 0x1c8 16 */ unsigned short* SerialNumber;/* 0x1d8 8 */ } DockInfo;/* 0x1c0 32 */ unsigned long DisableableDepends;/* 0x1e0 4 */ /* 4 bytes padding */ struct _LIST_ENTRY PendedSetInterfaceState;/* 0x1e8 16 */ struct _LIST_ENTRY LegacyBusListEntry;/* 0x1f8 16 */ /* ── cacheline 8 boundary (512 bytes) ── */ unsigned long DriverUnloadRetryCount;/* 0x208 4 */ /* 4 bytes padding */ struct _DEVICE_NODE* PreviousParent;/* 0x210 8 */ unsigned long DeletedChildren;/* 0x218 4 */ unsigned long NumaNodeIndex;/* 0x21c 4 */};size 544 (0x220)50 members7 holes (28 bytes)padding 09 cachelines
Used in (1)