#ifndef _NTEXAPI_H
// private
/**
* The SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION_EX structure contains system processor performance information.
*/
typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION_EX
{
LARGE_INTEGER IdleTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER DpcTime;
LARGE_INTEGER InterruptTime;
ULONG InterruptCount;
ULONG Spare0;
//
// The amount of time that the processor has spent executing low priority (background) threads,
// in 100-nanosecond intervals. This is the remainder of the "% Priority Time" raw counter
// (counter set {b4fc721a-0378-476f-89ba-a5a79f810b36}, counter 15), whose raw value is exactly
// IdleTime + AvailableTime. That counter is a PERF_100NSEC_TIMER_INV, so:
//
// PercentPriorityTime = 100 * (1 - d(IdleTime + AvailableTime) / dElapsed100ns)
//
// giving the percentage of elapsed time spent executing threads that are not low priority.
//
LARGE_INTEGER AvailableTime;
LARGE_INTEGER Spare1;
LARGE_INTEGER Spare2;
} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION_EX, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION_EX;
View code on GitHubNo description available.