x64x86arm64 / ntdllntoskrnl

_PROC_PERF_DOMAIN

← 10.0.28000.3231 20 builds latest →
struct _PROC_PERF_DOMAIN {
/* ── cacheline 8 boundary (512 bytes) ── */
unsigned __int64 DomainContext;/* 0x220 8 */
unsigned long ProcessorCount;/* 0x228 4 */
unsigned char EfficiencyClass;/* 0x22c 1 */
unsigned char NominalPerformanceClass;/* 0x22d 1 */
unsigned char PerformanceClass;/* 0x22e 1 */
/* 1 byte padding */
/* 4 bytes padding */
/* ── cacheline 9 boundary (576 bytes) ── */
void (*GetFFHThrottleState)(unsigned __int64*);/* 0x240 8 */
void (*TimeWindowHandler)(unsigned __int64, unsigned long);/* 0x248 8 */
void (*BoostPolicyHandler)(unsigned __int64, unsigned long);/* 0x250 8 */
void (*BoostModeHandler)(unsigned __int64, unsigned long);/* 0x258 8 */
void (*AutonomousActivityWindowHandler)(unsigned __int64, unsigned long);/* 0x260 8 */
void (*AutonomousModeHandler)(unsigned __int64, unsigned long);/* 0x268 8 */
void (*ReinitializeHandler)(unsigned __int64);/* 0x270 8 */
unsigned long (*PerfTargetHandler)(unsigned __int64, unsigned long, unsigned long, unsigned long, unsigned long, unsigned __int64*);/* 0x278 8 */
/* ── cacheline 10 boundary (640 bytes) ── */
void (*PerfSelectionHandler)(unsigned __int64, unsigned __int64, struct _PERF_CONTROL_STATE_SELECTION*);/* 0x280 8 */
long (*PerfPriorityHandler)(unsigned __int64, unsigned long, unsigned long, unsigned __int64*);/* 0x288 8 */
void (*PerfControlHandler)(unsigned __int64, struct _PERF_CONTROL_STATE_SELECTION*, unsigned char, unsigned char);/* 0x290 8 */
void (*PerfControlHandlerHidden)(unsigned __int64, struct _PERF_CONTROL_STATE_SELECTION*, unsigned char, unsigned char);/* 0x298 8 */
void (*DomainPerfControlHandler)(unsigned __int64, struct _PERF_CONTROL_STATE_SELECTION*, unsigned char, unsigned char);/* 0x2a0 8 */
void (*PerfUpdateHwDebugData)(unsigned __int64, unsigned __int64, unsigned char);/* 0x2a8 8 */
unsigned long (*PerfQueryProcMeasurementCapabilities)(void);/* 0x2b0 8 */
long (*PerfQueryProcMeasurementValues)(unsigned long, unsigned long*, void*, unsigned long);/* 0x2b8 8 */
/* ── cacheline 11 boundary (704 bytes) ── */
unsigned long Id;/* 0x2c0 4 */
unsigned long MaxFrequency;/* 0x2c4 4 */
unsigned long NominalFrequency;/* 0x2c8 4 */
unsigned long MaxPercent;/* 0x2cc 4 */
unsigned long MinPerfPercent;/* 0x2d0 4 */
unsigned long MinThrottlePercent;/* 0x2d4 4 */
unsigned long AdvertizedMaximumFrequency;/* 0x2d8 4 */
/* 4 bytes padding */
unsigned __int64 MinimumRelativePerformance;/* 0x2e0 8 */
unsigned __int64 NominalRelativePerformance;/* 0x2e8 8 */
unsigned char NominalRelativePerformancePercent;/* 0x2f0 1 */
unsigned char Coordination;/* 0x2f1 1 */
unsigned char HardPlatformCap;/* 0x2f2 1 */
unsigned char AffinitizeControl;/* 0x2f3 1 */
unsigned char EfficientThrottle;/* 0x2f4 1 */
unsigned char AllowSchedulerDirectedPerfStates;/* 0x2f5 1 */
unsigned char InitiateAllProcessors;/* 0x2f6 1 */
unsigned char AllowVmPerfSelection;/* 0x2f7 1 */
unsigned char TurboRangeKnown;/* 0x2f8 1 */
/* 3 bytes padding */
unsigned long VmFrequencyStepMhz;/* 0x2fc 4 */
/* ── cacheline 12 boundary (768 bytes) ── */
unsigned long VmHighestFrequencyMhz;/* 0x300 4 */
unsigned long VmNominalFrequencyMhz;/* 0x304 4 */
unsigned long VmLowestFrequencyMhz;/* 0x308 4 */
unsigned long VmThrottlePriorityCount;/* 0x30c 4 */
unsigned long VmBoostPriorityCount;/* 0x310 4 */
unsigned char AutonomousMode;/* 0x314 1 */
unsigned char AutonomousCapability;/* 0x315 1 */
unsigned char ProvideGuidance;/* 0x316 1 */
unsigned char EppSupported;/* 0x317 1 */
unsigned long DesiredPercent;/* 0x318 4 */
unsigned long GuaranteedPercent;/* 0x31c 4 */
unsigned char EngageResponsivenessOverrides;/* 0x320 1 */
/* 3 bytes padding */
/* ── cacheline 16 boundary (1024 bytes) ── */
unsigned long QosDisableReasons[7];/* 0x43c 28 */
/* ── cacheline 17 boundary (1088 bytes) ── */
unsigned short QosEquivalencyMasks[7];/* 0x458 14 */
unsigned char QosSupported;/* 0x466 1 */
/* 1 byte padding */
volatile unsigned long SelectionGeneration;/* 0x468 4 */
/* 4 bytes padding */
/* ── cacheline 26 boundary (1664 bytes) ── */
unsigned __int64 PerfChangeTime;/* 0x6a0 8 */
unsigned long PerfChangeIntervalCount;/* 0x6a8 4 */
unsigned char Force;/* 0x6ac 1 */
unsigned char Update;/* 0x6ad 1 */
unsigned char Apply;/* 0x6ae 1 */
};
size 1712 (0x6b0)68 members7 holes (20 bytes)padding 127 cachelines
Used in (1)