#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;
View code on GitHubNo description available.