PROCESS_ENERGY_VALUES_EXTENSION - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#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;

#endif

View code on GitHub

NtDoc

No description available.