POWER_INFORMATION_ENERGY_TRACKER_QUERY_HEADER - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTPOAPI_H

// rev
/**
 * The POWER_INFORMATION_ENERGY_TRACKER_QUERY_HEADER structure describes the fixed header of an energy tracker query.
 *
 * All offsets are byte offsets from the start of the output buffer. ProcessRecordOffset locates
 * ProcessRecordCount entries, each ProcessRecordSize bytes long. StatisticsOffset and
 * CumulativeStatisticsOffset locate the current-query and cumulative tracker statistics, respectively;
 * each block is a POWER_INFORMATION_ENERGY_TRACKER_STATISTICS structure (0x10 bytes), not energy values.
 * TrackerConfigurationOffset locates the effective POWER_INFORMATION_ENERGY_TRACKER_CREATE_INPUT (0x0C bytes).
 * The tick-count fields contain milliseconds derived from TickCount and TickCountMultiplier, not QPC ticks.
 * TickCountDelta and UnbiasedInterruptTimeMsDelta are measured since creation or the previous successful query.
 */
typedef struct _POWER_INFORMATION_ENERGY_TRACKER_QUERY_HEADER
{
    ULONG Signature;                         // POWER_INFORMATION_ENERGY_TRACKER_SIGNATURE
    ULONG HeaderSize;                        // Size of the fixed header, in bytes; zero on STATUS_BUFFER_TOO_SMALL.
    ULONG TotalSize;                         // Required output buffer size, in bytes.
    ULONG Sequence;                          // Starts at 1; advances after each successful query.
    ULONG TickCountDelta;                    // Elapsed tick-count milliseconds.
    ULONG UnbiasedInterruptTimeMsDelta;      // Elapsed unbiased interrupt-time milliseconds.
    ULONG SnapshotTickCount;                 // Tick count before serializing the records.
    ULONG CurrentTickCount;                  // Tick count after serializing the records.
    ULONG CurrentTimelineBitmapTime;         // KeQueryTimelineBitmapTime.
    ULONG ProcessRecordOffset;               // Offset to POWER_INFORMATION_ENERGY_TRACKER_PROCESS_ENTRY[ProcessRecordCount]; 0x48.
    ULONG ProcessRecordCount;                // Number of aggregate process records.
    ULONG StatisticsOffset;                  // Offset to POWER_INFORMATION_ENERGY_TRACKER_STATISTICS (0x10 bytes); current-query counters.
    ULONG CumulativeStatisticsOffset;        // Offset to POWER_INFORMATION_ENERGY_TRACKER_STATISTICS (0x10 bytes); cumulative counters, including this query.
    ULONG TrackerConfigurationOffset;        // Offset to POWER_INFORMATION_ENERGY_TRACKER_CREATE_INPUT (0x0C bytes); effective creation parameters.
    USHORT ProcessRecordSize;                // Size of each aggregate process record, in bytes.
    USHORT StatisticsSize;                   // Size of each tracker statistics block, in bytes.
    USHORT TrackerConfigurationSize;         // Size of the effective tracker configuration, in bytes.
    USHORT Reserved;                         // Reserved.
    ULONG CurrentSystemTimeLow;              // Low 32 bits of the system time.
    ULONG CurrentSystemTimeHigh;             // High 32 bits of the system time.
} POWER_INFORMATION_ENERGY_TRACKER_QUERY_HEADER, *PPOWER_INFORMATION_ENERGY_TRACKER_QUERY_HEADER;

#endif

View code on GitHub

NtDoc

No description available.