struct _POP_FX_DEVICE { struct _LIST_ENTRY Link;/* 0x0 16 */ struct _IRP* Irp;/* 0x10 8 */ struct _POP_IRP_DATA* IrpData;/* 0x18 8 */ volatile union _POP_FX_DEVICE_STATUS Status;/* 0x20 4 */ volatile long PowerReqCall;/* 0x24 4 */ volatile long PowerNotReqCall;/* 0x28 4 */ /* 4 bytes padding */ struct _DEVICE_NODE* DevNode;/* 0x30 8 */ struct PEPHANDLE__* DpmContext;/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ struct _POP_FX_PLUGIN* Plugin;/* 0x40 8 */ struct PEPHANDLE__* PluginHandle;/* 0x48 8 */ struct _POP_FX_PLUGIN* AcpiPlugin;/* 0x50 8 */ struct PEPHANDLE__* AcpiPluginHandle;/* 0x58 8 */ struct _DEVICE_OBJECT* DeviceObject;/* 0x60 8 */ struct _DEVICE_OBJECT* TargetDevice;/* 0x68 8 */ struct _POP_FX_DRIVER_CALLBACKS Callbacks;/* 0x70 80 */ /* ── cacheline 3 boundary (192 bytes) ── */ void* DriverContext;/* 0xc0 8 */ struct _LIST_ENTRY AcpiLink;/* 0xc8 16 */ struct _UNICODE_STRING DeviceId;/* 0xd8 16 */ volatile long CommonReferenceFlags;/* 0xe8 4 */ /* 4 bytes padding */ struct _IO_REMOVE_LOCK RemoveLock;/* 0xf0 32 */ /* ── cacheline 4 boundary (256 bytes) ── */ volatile long RemoveLockReferenceCount[10];/* 0x110 40 */ struct _IO_REMOVE_LOCK AcpiRemoveLock;/* 0x138 32 */ /* ── cacheline 5 boundary (320 bytes) ── */ struct _POP_FX_WORK_ORDER WorkOrder;/* 0x158 56 */ /* ── cacheline 6 boundary (384 bytes) ── */ unsigned __int64 IdleLock;/* 0x190 8 */ struct _KTIMER IdleTimer;/* 0x198 64 */ /* ── cacheline 7 boundary (448 bytes) ── */ struct _KDPC IdleDpc;/* 0x1d8 64 */ /* ── cacheline 8 boundary (512 bytes) ── */ unsigned __int64 IdleTimeout;/* 0x218 8 */ unsigned __int64 IdleStamp;/* 0x220 8 */ struct _DEVICE_OBJECT* NextIrpDeviceObject[2];/* 0x228 16 */ union _POWER_STATE NextIrpPowerState[2];/* 0x238 8 */ /* ── cacheline 9 boundary (576 bytes) ── */ void (*NextIrpCallerCompletion[2])(struct _DEVICE_OBJECT*, unsigned char, union _POWER_STATE, void*, struct _IO_STATUS_BLOCK*);/* 0x240 16 */ void* NextIrpCallerContext[2];/* 0x250 16 */ struct _KEVENT IrpCompleteEvent;/* 0x260 24 */ unsigned char (*PowerOnDumpDeviceCallback)(struct _PEP_CRASHDUMP_INFORMATION*);/* 0x278 8 */ /* ── cacheline 10 boundary (640 bytes) ── */ struct _POP_FX_ACCOUNTING Accounting;/* 0x280 224 */ /* ── cacheline 13 boundary (832 bytes) ── */ volatile unsigned long Flags;/* 0x360 4 */ unsigned long ComponentCount;/* 0x364 4 */ struct _POP_FX_COMPONENT** Components;/* 0x368 8 */ unsigned long LogEntries;/* 0x370 4 */ /* 4 bytes padding */ struct _POP_FX_LOG_ENTRY* Log;/* 0x378 8 */ /* ── cacheline 14 boundary (896 bytes) ── */ volatile long LogIndex;/* 0x380 4 */ /* 4 bytes padding */ struct _DRIVER_OBJECT* DripsWatchdogDriverObject;/* 0x388 8 */ struct _POP_FX_DRIPS_WATCHDOG_CONTEXT DripsWatchdogContext;/* 0x390 40 */ unsigned long ChildDeviceComponentIndex;/* 0x3b8 4 */ unsigned long DirectedTimeout;/* 0x3bc 4 */ /* ── cacheline 15 boundary (960 bytes) ── */ struct _POP_FX_WORK_ORDER DirectedWorkOrder;/* 0x3c0 56 */ struct _POP_FX_WORK_ORDER_WATCHDOG_INFO DirectedWorkWatchdogInfo;/* 0x3f8 176 */ /* ── cacheline 18 boundary (1152 bytes) ── */ unsigned __int64 DirectedLock;/* 0x4a8 8 */ volatile long DirectedTransitionCallCount;/* 0x4b0 4 */ /* 4 bytes padding */ struct _POP_FX_DEVICE_DIRECTED_TRANSITION_STATE DirectedTransitionState;/* 0x4b8 16 */ /* ── cacheline 19 boundary (1216 bytes) ── */ struct _POP_DEVICE_POWER_PROFILE* PowerProfile;/* 0x4c8 8 */ struct _UNICODE_STRING FriendlyName;/* 0x4d0 16 */ struct _WORK_QUEUE_ITEM ReportDevicePoweredOnPassiveWorkItem;/* 0x4e0 32 */ /* ── cacheline 20 boundary (1280 bytes) ── */ unsigned __int64 RelationsLock;/* 0x500 8 */ unsigned long IdleProviderCount;/* 0x508 4 */ /* 4 bytes padding */ struct _IRP* PendingDevicePowerIrp;/* 0x510 8 */ struct _LIST_ENTRY ExternalDependencies;/* 0x518 16 */};size 1320 (0x528)57 members6 holes (24 bytes)padding 021 cachelines
Used in (5)