struct _POP_FX_DEVICE { struct _LIST_ENTRY Link;/* 0x0 8 */ struct _IRP* Irp;/* 0x8 4 */ struct _POP_IRP_DATA* IrpData;/* 0xc 4 */ volatile union _POP_FX_DEVICE_STATUS Status;/* 0x10 4 */ volatile long PowerReqCall;/* 0x14 4 */ volatile long PowerNotReqCall;/* 0x18 4 */ struct _DEVICE_NODE* DevNode;/* 0x1c 4 */ struct PEPHANDLE__* DpmContext;/* 0x20 4 */ struct _POP_FX_PLUGIN* Plugin;/* 0x24 4 */ struct PEPHANDLE__* PluginHandle;/* 0x28 4 */ struct _POP_FX_PLUGIN* AcpiPlugin;/* 0x2c 4 */ struct PEPHANDLE__* AcpiPluginHandle;/* 0x30 4 */ struct _DEVICE_OBJECT* DeviceObject;/* 0x34 4 */ struct _DEVICE_OBJECT* TargetDevice;/* 0x38 4 */ struct _POP_FX_DRIVER_CALLBACKS Callbacks;/* 0x3c 40 */ /* ── cacheline 1 boundary (64 bytes) ── */ void* DriverContext;/* 0x64 4 */ struct _LIST_ENTRY AcpiLink;/* 0x68 8 */ struct _UNICODE_STRING DeviceId;/* 0x70 8 */ volatile long CommonReferenceFlags;/* 0x78 4 */ struct _IO_REMOVE_LOCK RemoveLock;/* 0x7c 24 */ /* ── cacheline 2 boundary (128 bytes) ── */ struct _IO_REMOVE_LOCK AcpiRemoveLock;/* 0x94 24 */ struct _POP_FX_WORK_ORDER WorkOrder;/* 0xac 28 */ /* ── cacheline 3 boundary (192 bytes) ── */ unsigned long IdleLock;/* 0xc8 4 */ /* 4 bytes padding */ struct _KTIMER IdleTimer;/* 0xd0 40 */ struct _KDPC IdleDpc;/* 0xf8 32 */ /* ── cacheline 4 boundary (256 bytes) ── */ unsigned __int64 IdleTimeout;/* 0x118 8 */ unsigned __int64 IdleStamp;/* 0x120 8 */ struct _DEVICE_OBJECT* NextIrpDeviceObject[2];/* 0x128 8 */ union _POWER_STATE NextIrpPowerState[2];/* 0x130 8 */ void (*NextIrpCallerCompletion[2])(struct _DEVICE_OBJECT*, unsigned char, union _POWER_STATE, void*, struct _IO_STATUS_BLOCK*);/* 0x138 8 */ /* ── cacheline 5 boundary (320 bytes) ── */ void* NextIrpCallerContext[2];/* 0x140 8 */ struct _KEVENT IrpCompleteEvent;/* 0x148 16 */ unsigned char (*PowerOnDumpDeviceCallback)(struct _PEP_CRASHDUMP_INFORMATION*);/* 0x158 4 */ /* 4 bytes padding */ struct _POP_FX_ACCOUNTING Accounting;/* 0x160 216 */ /* ── cacheline 8 boundary (512 bytes) ── */ volatile unsigned long Flags;/* 0x238 4 */ unsigned long ComponentCount;/* 0x23c 4 */ /* ── cacheline 9 boundary (576 bytes) ── */ struct _POP_FX_COMPONENT** Components;/* 0x240 4 */ unsigned long LogEntries;/* 0x244 4 */ struct _POP_FX_LOG_ENTRY* Log;/* 0x248 4 */ volatile long LogIndex;/* 0x24c 4 */ struct _DRIVER_OBJECT* DripsWatchdogDriverObject;/* 0x250 4 */ struct _POP_FX_DRIPS_WATCHDOG_CONTEXT DripsWatchdogContext;/* 0x254 20 */ unsigned long DirectedTimeout;/* 0x268 4 */ struct _POP_FX_WORK_ORDER DirectedWorkOrder;/* 0x26c 28 */ /* ── cacheline 10 boundary (640 bytes) ── */ struct _POP_FX_WORK_ORDER_WATCHDOG_INFO DirectedWorkWatchdogInfo;/* 0x288 104 */ /* ── cacheline 11 boundary (704 bytes) ── */ unsigned long DirectedLock;/* 0x2f0 4 */ volatile long DirectedTransitionCallCount;/* 0x2f4 4 */ struct _POP_FX_DEVICE_DIRECTED_TRANSITION_STATE DirectedTransitionState;/* 0x2f8 12 */ /* ── cacheline 12 boundary (768 bytes) ── */ struct _POP_DEVICE_POWER_PROFILE* PowerProfile;/* 0x304 4 */ struct _UNICODE_STRING FriendlyName;/* 0x308 8 */};size 784 (0x310)50 members2 holes (8 bytes)padding 013 cachelines
Used in (5)