#ifndef _NTPOAPI_H
// rev
/**
* The POWER_INFORMATION_ENERGY_TRACKER_QUERY_OUTPUT structure contains the fixed prefix returned by EnergyTrackerQuery.
*
* This prefix has the same layout as POWER_INFORMATION_ENERGY_TRACKER_QUERY_HEADER.
* Variable-length process records, energy values, tracker configuration, statistics, SIDs and strings
* follow it and are located by their buffer-relative offsets; TotalSize includes all of these sections.
* On STATUS_BUFFER_TOO_SMALL, a buffer of at least 0x0C bytes receives Signature, HeaderSize = 0,
* and the required TotalSize. The remaining fields are valid only after a successful query.
*/
typedef struct _POWER_INFORMATION_ENERGY_TRACKER_QUERY_OUTPUT
{
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_OUTPUT, *PPOWER_INFORMATION_ENERGY_TRACKER_QUERY_OUTPUT;
View code on GitHubNo description available.