#ifndef _NTEXAPI_H
/**
* \brief Extended energy accounting values for a process, providing activity timelines
* and additional duration/input statistics not present in PROCESS_ENERGY_VALUES.
*
* \details Added in REDSTONE2; the Timelines array grew from 9 to 14 entries in REDSTONE3.
* The Durations union and the input/audio fields are REDSTONE3+.
*/
typedef struct _PROCESS_ENERGY_VALUES_EXTENSION
{
union
{
/** Activity timelines indexed by resource type (9 entries pre-RS3, 14 entries RS3+). */
TIMELINE_BITMAP Timelines[14]; // 9 for REDSTONE2, 14 for REDSTONE3/4/5
struct
{
/**
* CPU activity timeline.
*/
TIMELINE_BITMAP CpuTimeline;
/**
* Disk I/O activity timeline.
*/
TIMELINE_BITMAP DiskTimeline;
/**
* Network activity timeline.
*/
TIMELINE_BITMAP NetworkTimeline;
/**
* Mobile Broadband (MBB) activity timeline.
*/
TIMELINE_BITMAP MBBTimeline;
/**
* Foreground visibility timeline.
*/
TIMELINE_BITMAP ForegroundTimeline;
/**
* Desktop visible timeline.
*/
TIMELINE_BITMAP DesktopVisibleTimeline;
/**
* DWM composition rendered timeline.
*/
TIMELINE_BITMAP CompositionRenderedTimeline;
/**
* DWM composition dirty-generated timeline.
*/
TIMELINE_BITMAP CompositionDirtyGeneratedTimeline;
/**
* DWM composition dirty-propagated timeline.
*/
TIMELINE_BITMAP CompositionDirtyPropagatedTimeline;
/**
* Input activity timeline (REDSTONE3+).
*/
TIMELINE_BITMAP InputTimeline; // REDSTONE3
/**
* Audio input (microphone) activity timeline (REDSTONE3+).
*/
TIMELINE_BITMAP AudioInTimeline;
/**
* Audio output (speaker/headphone) activity timeline (REDSTONE3+).
*/
TIMELINE_BITMAP AudioOutTimeline;
/**
* Display-required (screen-on prevention) timeline (REDSTONE3+).
*/
TIMELINE_BITMAP DisplayRequiredTimeline;
/**
* Keyboard input activity timeline (REDSTONE3+).
*/
TIMELINE_BITMAP KeyboardInputTimeline;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
union // REDSTONE3
{
/**
* Activity state durations for extended resource types (REDSTONE3+).
*/
ENERGY_STATE_DURATION Durations[5];
struct
{
/**
* Duration the process received user input (REDSTONE3+).
*/
ENERGY_STATE_DURATION InputDuration;
/**
* Duration the process used audio input (REDSTONE3+).
*/
ENERGY_STATE_DURATION AudioInDuration;
/**
* Duration the process used audio output (REDSTONE3+).
*/
ENERGY_STATE_DURATION AudioOutDuration;
/**
* Duration the process prevented display power-off (REDSTONE3+).
*/
ENERGY_STATE_DURATION DisplayRequiredDuration;
/**
* Duration the process ran in PSM background state (REDSTONE3+).
*/
ENERGY_STATE_DURATION PSMBackgroundDuration;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
/**
* Number of keyboard input events attributed to the process (REDSTONE3+).
*/
ULONG KeyboardInput;
/**
* Number of mouse input events attributed to the process (REDSTONE3+).
*/
ULONG MouseInput;
} PROCESS_ENERGY_VALUES_EXTENSION, *PPROCESS_ENERGY_VALUES_EXTENSION;
View code on GitHubNo description available.