struct _PPM_IDLE_STATES { unsigned char InterfaceVersion;/* 0x0 1 */ unsigned char IdleOverride;/* 0x1 1 */ unsigned char EstimateIdleDuration;/* 0x2 1 */ unsigned char ExitLatencyTraceEnabled;/* 0x3 1 */ unsigned char NonInterruptibleTransition;/* 0x4 1 */ unsigned char UnaccountedTransition;/* 0x5 1 */ unsigned char IdleDurationLimited;/* 0x6 1 */ unsigned char IdleCheckLimited;/* 0x7 1 */ unsigned char StrictVetoBias;/* 0x8 1 */ /* 3 bytes padding */ unsigned long ExitLatencyCountdown;/* 0xc 4 */ unsigned long TargetState;/* 0x10 4 */ unsigned long ActualState;/* 0x14 4 */ unsigned long OldState;/* 0x18 4 */ unsigned long OverrideIndex;/* 0x1c 4 */ unsigned long ProcessorIdleCount;/* 0x20 4 */ unsigned long Type;/* 0x24 4 */ unsigned __int64 LevelId;/* 0x28 8 */ unsigned short ReasonFlags;/* 0x30 2 */ /* 6 bytes padding */ volatile unsigned __int64 InitiateWakeStamp;/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ long PreviousStatus;/* 0x40 4 */ unsigned long PreviousCancelReason;/* 0x44 4 */ struct _KAFFINITY_EX PrimaryProcessorMask;/* 0x48 12 */ struct _KAFFINITY_EX SecondaryProcessorMask;/* 0x54 12 */ void (*IdlePrepare)(struct _PROCESSOR_IDLE_PREPARE_INFO*);/* 0x60 4 */ long (*IdlePreExecute)(void*, unsigned long, unsigned long, unsigned long, unsigned long*);/* 0x64 4 */ long (*IdleExecute)(void*, unsigned __int64, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long*);/* 0x68 4 */ unsigned long (*IdlePreselect)(void*, struct _PROCESSOR_IDLE_CONSTRAINTS*);/* 0x6c 4 */ unsigned long (*IdleTest)(void*, unsigned long, unsigned long);/* 0x70 4 */ unsigned long (*IdleAvailabilityCheck)(void*, unsigned long);/* 0x74 4 */ void (*IdleComplete)(void*, unsigned long, unsigned long, unsigned long, unsigned long*);/* 0x78 4 */ void (*IdleCancel)(void*, unsigned long);/* 0x7c 4 */ /* ── cacheline 2 boundary (128 bytes) ── */ unsigned char (*IdleIsHalted)(void*);/* 0x80 4 */ unsigned char (*IdleInitiateWake)(void*);/* 0x84 4 */ struct _PROCESSOR_IDLE_PREPARE_INFO PrepareInfo;/* 0x88 80 */ /* ── cacheline 3 boundary (192 bytes) ── */ struct _KAFFINITY_EX DeepIdleSnapshot;/* 0xd8 12 */ struct _PERFINFO_PPM_STATE_SELECTION* Tracing;/* 0xe4 4 */ struct _PERFINFO_PPM_STATE_SELECTION* CoordinatedTracing;/* 0xe8 4 */ struct _PPM_SELECTION_MENU ProcessorMenu;/* 0xec 8 */ struct _PPM_SELECTION_MENU CoordinatedMenu;/* 0xf4 8 */ struct _PPM_COORDINATED_SELECTION CoordinatedSelection;/* 0xfc 16 */ /* ── cacheline 4 boundary (256 bytes) ── */ struct _PPM_IDLE_STATE State[1];/* 0x10c 68 */};size 336 (0x150)41 members2 holes (9 bytes)padding 06 cachelines
Used in (1)