source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/poclass.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 11.1 KB
Line 
1/**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5
6#include <winapifamily.h>
7#include <devpropdef.h>
8
9DEFINE_DEVPROPKEY(PROCESSOR_NUMBER_PKEY,0x5724c81d,0xd5af,0x4c1f,0xa1,0x03,0xa0,0x6e,0x28,0xf2,0x04,0xc6,1);
10
11DEFINE_GUID(GUID_DEVICE_BATTERY,0x72631e54,0x78A4,0x11d0,0xbc,0xf7,0x00,0xaa,0x00,0xb7,0xb3,0x2a);
12DEFINE_GUID(GUID_DEVICE_APPLICATIONLAUNCH_BUTTON,0x629758ee,0x986e,0x4d9e,0x8e,0x47,0xde,0x27,0xf8,0xab,0x05,0x4d);
13DEFINE_GUID(GUID_DEVICE_SYS_BUTTON,0x4AFA3D53,0x74A7,0x11d0,0xbe,0x5e,0x00,0xA0,0xC9,0x06,0x28,0x57);
14DEFINE_GUID(GUID_DEVICE_LID,0x4AFA3D52,0x74A7,0x11d0,0xbe,0x5e,0x00,0xA0,0xC9,0x06,0x28,0x57);
15DEFINE_GUID(GUID_DEVICE_THERMAL_ZONE,0x4AFA3D51,0x74A7,0x11d0,0xbe,0x5e,0x00,0xA0,0xC9,0x06,0x28,0x57);
16DEFINE_GUID(GUID_DEVICE_PROCESSOR,0x97fadb10,0x4e33,0x40ae,0x35,0x9c,0x8b,0xef,0x02,0x9d,0xbd,0xd0);
17DEFINE_GUID(GUID_DEVICE_MEMORY,0x3fd0f03d,0x92e0,0x45fb,0xb7,0x5c,0x5e,0xd8,0xff,0xb0,0x10,0x21);
18DEFINE_GUID(GUID_DEVICE_ACPI_TIME,0x97f99bf6,0x4497,0x4f18,0xbb,0x22,0x4b,0x9f,0xb2,0xfb,0xef,0x9c);
19DEFINE_GUID(GUID_DEVICE_MESSAGE_INDICATOR,0xcd48a365,0xfa94,0x4ce2,0xa2,0x32,0xa1,0xb7,0x64,0xe5,0xd8,0xb4);
20DEFINE_GUID(GUID_CLASS_INPUT,0x4d1e55b2,0xf16f,0x11cf,0x88,0xcb,0x00,0x11,0x11,0x00,0x00,0x30);
21
22#ifndef _POCLASS_
23#define _POCLASS_
24
25#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
26
27#define BATTERY_UNKNOWN_CAPACITY 0xffffffff
28#define UNKNOWN_CAPACITY BATTERY_UNKNOWN_CAPACITY
29
30#define BATTERY_SET_CHARGE_SUPPORTED 0x1
31#define BATTERY_SET_DISCHARGE_SUPPORTED 0x2
32#define BATTERY_SET_CHARGINGSOURCE_SUPPORTED 0x4
33#define BATTERY_SET_RESUME_SUPPORTED 0x4
34#define BATTERY_SEALED 0x10000000
35#define BATTERY_IS_SHORT_TERM 0x20000000
36#define BATTERY_CAPACITY_RELATIVE 0x40000000
37#define BATTERY_SYSTEM_BATTERY 0x80000000
38
39#define BATTERY_UNKNOWN_TIME 0xffffffff
40
41#define BATTERY_UNKNOWN_CURRENT 0xffffffff
42#define UNKNOWN_CURRENT BATTERY_UNKNOWN_CURRENT
43
44#define BATTERY_UNKNOWN_VOLTAGE 0xffffffff
45#define BATTERY_UNKNOWN_RATE 0x80000000
46#define UNKNOWN_RATE BATTERY_UNKNOWN_RATE
47#define UNKNOWN_VOLTAGE BATTERY_UNKNOWN_VOLTAGE
48
49#define BATTERY_POWER_ON_LINE 0x1
50#define BATTERY_DISCHARGING 0x2
51#define BATTERY_CHARGING 0x4
52#define BATTERY_CRITICAL 0x8
53
54#define BATTERY_TAG_INVALID 0
55
56#define ACTIVE_COOLING 0x0
57#define PASSIVE_COOLING 0x1
58
59#define SYS_BUTTON_POWER 0x1
60#define SYS_BUTTON_SLEEP 0x2
61#define SYS_BUTTON_LID 0x4
62#define SYS_BUTTON_WAKE 0x80000000
63
64#define SYS_BUTTON_LID_STATE_MASK 0x30000
65#define SYS_BUTTON_LID_OPEN 0x10000
66#define SYS_BUTTON_LID_CLOSED 0x20000
67#define SYS_BUTTON_LID_INITIAL 0x40000
68#define SYS_BUTTON_LID_CHANGED 0x80000
69
70#define PROCESSOR_PCC_COMMAND_GET_AVERAGE_FREQUENCY 0x0
71#define PROCESSOR_PCC_COMMAND_SET_DESIRED_FREQUENCY 0x1
72
73#define ACPI_TIME_ADJUST_DAYLIGHT 0x1
74#define ACPI_TIME_IN_DAYLIGHT 0x2
75#define ACPI_TIME_ZONE_UNKNOWN 0x7FF
76
77#define PROCESSOR_PCC_INTERFACE_STANDARD_VERSION 1
78
79#define THERMAL_COOLING_INTERFACE_VERSION 1
80
81#define THERMAL_DEVICE_INTERFACE_VERSION 1
82
83#define MAX_BATTERY_STRING_SIZE 128
84#define MAX_ACTIVE_COOLING_LEVELS 10
85
86#define IOCTL_SET_SYS_MESSAGE_INDICATOR CTL_CODE(FILE_DEVICE_BATTERY,0x70,METHOD_BUFFERED,FILE_WRITE_ACCESS)
87
88#define IOCTL_SET_WAKE_ALARM_VALUE CTL_CODE(FILE_DEVICE_BATTERY,0x80,METHOD_BUFFERED,FILE_WRITE_ACCESS)
89#define IOCTL_SET_WAKE_ALARM_POLICY CTL_CODE(FILE_DEVICE_BATTERY,0x81,METHOD_BUFFERED,FILE_WRITE_ACCESS)
90#define IOCTL_GET_WAKE_ALARM_VALUE CTL_CODE(FILE_DEVICE_BATTERY,0x82,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
91#define IOCTL_GET_WAKE_ALARM_POLICY CTL_CODE(FILE_DEVICE_BATTERY,0x83,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
92
93#define IOCTL_ACPI_GET_REAL_TIME CTL_CODE(FILE_DEVICE_BATTERY,0x84,METHOD_BUFFERED,FILE_READ_DATA)
94#define IOCTL_ACPI_SET_REAL_TIME CTL_CODE(FILE_DEVICE_BATTERY,0x85,METHOD_BUFFERED,FILE_WRITE_ACCESS)
95
96#define IOCTL_BATTERY_QUERY_TAG CTL_CODE(FILE_DEVICE_BATTERY,0x10,METHOD_BUFFERED,FILE_READ_ACCESS)
97#define IOCTL_BATTERY_QUERY_INFORMATION CTL_CODE(FILE_DEVICE_BATTERY,0x11,METHOD_BUFFERED,FILE_READ_ACCESS)
98#define IOCTL_BATTERY_SET_INFORMATION CTL_CODE(FILE_DEVICE_BATTERY,0x12,METHOD_BUFFERED,FILE_WRITE_ACCESS)
99#define IOCTL_BATTERY_QUERY_STATUS CTL_CODE(FILE_DEVICE_BATTERY,0x13,METHOD_BUFFERED,FILE_READ_ACCESS)
100
101#define IOCTL_THERMAL_QUERY_INFORMATION CTL_CODE(FILE_DEVICE_BATTERY,0x20,METHOD_BUFFERED,FILE_READ_ACCESS)
102#define IOCTL_THERMAL_SET_COOLING_POLICY CTL_CODE(FILE_DEVICE_BATTERY,0x21,METHOD_BUFFERED,FILE_WRITE_ACCESS)
103#define IOCTL_RUN_ACTIVE_COOLING_METHOD CTL_CODE(FILE_DEVICE_BATTERY,0x22,METHOD_BUFFERED,FILE_WRITE_ACCESS)
104#define IOCTL_THERMAL_SET_PASSIVE_LIMIT CTL_CODE(FILE_DEVICE_BATTERY,0x23,METHOD_BUFFERED,FILE_WRITE_ACCESS)
105#define IOCTL_THERMAL_READ_TEMPERATURE CTL_CODE(FILE_DEVICE_BATTERY,0x24,METHOD_BUFFERED,FILE_READ_ACCESS)
106#define IOCTL_QUERY_LID CTL_CODE(FILE_DEVICE_BATTERY,0x30,METHOD_BUFFERED,FILE_READ_ACCESS)
107#define IOCTL_NOTIFY_SWITCH_EVENT CTL_CODE(FILE_DEVICE_BATTERY,0x40,METHOD_BUFFERED,FILE_READ_ACCESS)
108#define IOCTL_GET_SYS_BUTTON_CAPS CTL_CODE(FILE_DEVICE_BATTERY,0x50,METHOD_BUFFERED,FILE_READ_ACCESS)
109#define IOCTL_GET_SYS_BUTTON_EVENT CTL_CODE(FILE_DEVICE_BATTERY,0x51,METHOD_BUFFERED,FILE_READ_ACCESS)
110
111#define IOCTL_GET_PROCESSOR_OBJ_INFO \
112 CTL_CODE(FILE_DEVICE_BATTERY,0x60,METHOD_BUFFERED,FILE_READ_ACCESS)
113
114typedef enum {
115 BatteryInformation, BatteryGranularityInformation, BatteryTemperature, BatteryEstimatedTime,
116 BatteryDeviceName, BatteryManufactureDate, BatteryManufactureName, BatteryUniqueID,
117 BatterySerialNumber
118} BATTERY_QUERY_INFORMATION_LEVEL;
119
120typedef enum {
121 BatteryCriticalBias, BatteryCharge, BatteryDischarge, BatteryChargingSource
122} BATTERY_SET_INFORMATION_LEVEL;
123
124typedef enum _BATTERY_CHARGING_SOURCE_TYPE {
125 BatteryChargingSourceType_None, BatteryChargingSourceType_AC,
126 BatteryChargingSourceType_USB, BatteryChargingSourceType_Wireless
127} BATTERY_CHARGING_SOURCE_TYPE, *PBATTERY_CHARGING_SOURCE_TYPE;
128
129typedef struct _BATTERY_QUERY_INFORMATION {
130 ULONG BatteryTag;
131 BATTERY_QUERY_INFORMATION_LEVEL InformationLevel;
132 ULONG AtRate;
133} BATTERY_QUERY_INFORMATION, *PBATTERY_QUERY_INFORMATION;
134
135typedef struct _BATTERY_INFORMATION {
136 ULONG Capabilities;
137 UCHAR Technology;
138 UCHAR Reserved[3];
139 UCHAR Chemistry[4];
140 ULONG DesignedCapacity;
141 ULONG FullChargedCapacity;
142 ULONG DefaultAlert1;
143 ULONG DefaultAlert2;
144 ULONG CriticalBias;
145 ULONG CycleCount;
146} BATTERY_INFORMATION, *PBATTERY_INFORMATION;
147
148typedef struct _BATTERY_CHARGING_SOURCE {
149 BATTERY_CHARGING_SOURCE_TYPE Type;
150 ULONG MaxCurrent;
151} BATTERY_CHARGING_SOURCE, *PBATTERY_CHARGING_SOURCE;
152
153typedef struct _BATTERY_SET_INFORMATION {
154 ULONG BatteryTag;
155 BATTERY_SET_INFORMATION_LEVEL InformationLevel;
156 UCHAR Buffer[1];
157} BATTERY_SET_INFORMATION, *PBATTERY_SET_INFORMATION;
158
159typedef struct _BATTERY_WAIT_STATUS {
160 ULONG BatteryTag;
161 ULONG Timeout;
162 ULONG PowerState;
163 ULONG LowCapacity;
164 ULONG HighCapacity;
165} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;
166
167typedef struct _BATTERY_STATUS {
168 ULONG PowerState;
169 ULONG Capacity;
170 ULONG Voltage;
171 LONG Rate;
172} BATTERY_STATUS, *PBATTERY_STATUS;
173
174typedef struct _BATTERY_MANUFACTURE_DATE {
175 UCHAR Day;
176 UCHAR Month;
177 USHORT Year;
178} BATTERY_MANUFACTURE_DATE, *PBATTERY_MANUFACTURE_DATE;
179
180typedef struct _THERMAL_INFORMATION {
181 ULONG ThermalStamp;
182 ULONG ThermalConstant1;
183 ULONG ThermalConstant2;
184 KAFFINITY Processors;
185 ULONG SamplingPeriod;
186 ULONG CurrentTemperature;
187 ULONG PassiveTripPoint;
188 ULONG CriticalTripPoint;
189 UCHAR ActiveTripPointCount;
190 ULONG ActiveTripPoint[MAX_ACTIVE_COOLING_LEVELS];
191} THERMAL_INFORMATION, *PTHERMAL_INFORMATION;
192
193typedef struct _THERMAL_WAIT_READ {
194 ULONG Timeout;
195 ULONG LowTemperature;
196 ULONG HighTemperature;
197} THERMAL_WAIT_READ, *PTHERMAL_WAIT_READ;
198
199typedef struct {
200 ULONG PhysicalID;
201 ULONG PBlkAddress;
202 UCHAR PBlkLength;
203} PROCESSOR_OBJECT_INFO, *PPROCESSOR_OBJECT_INFO;
204
205typedef struct {
206 ULONG PhysicalID;
207 ULONG PBlkAddress;
208 UCHAR PBlkLength;
209 ULONG InitialApicId;
210} PROCESSOR_OBJECT_INFO_EX, *PPROCESSOR_OBJECT_INFO_EX;
211
212#ifndef _WINDOWS_
213
214#include "pshpack1.h"
215
216typedef struct _PCC_HEADER {
217 ULONG Signature;
218 USHORT HeaderLength;
219 UCHAR MajorVersion;
220 UCHAR MinorVersion;
221 union {
222 __MINGW_EXTENSION struct {
223 ULONG SciDoorbell : 1;
224 ULONG Reserved : 31;
225 };
226 ULONG AsULong;
227 } SupportedFeatures;
228 union {
229 __MINGW_EXTENSION struct {
230 USHORT CommandCode : 8;
231 USHORT ReservedZ : 7;
232 USHORT SciDoorbell : 1;
233 };
234 USHORT AsUShort;
235 } Command;
236 union {
237 __MINGW_EXTENSION struct {
238 USHORT CommandComplete : 1;
239 USHORT SciReceived : 1;
240 USHORT Error : 1;
241 USHORT Reserved : 13;
242 };
243 USHORT AsUShort;
244 } Status;
245 ULONG Latency;
246 ULONG MinimumCommandInterval;
247 ULONG MaximumCommandInterval;
248 ULONG NominalFrequency;
249 ULONG MinimumFrequency;
250 ULONG MinimumUnthrottledFrequency;
251} PCC_HEADER, *PPCC_HEADER;
252
253typedef struct _PCC_INPUT_BUFFER {
254 UCHAR ControlEnabled;
255 __MINGW_EXTENSION union {
256 struct {
257 UCHAR ReservedZ[3];
258 } GetAverageFrequency;
259 struct {
260 UCHAR DesiredFrequency;
261 UCHAR ReservedZ[2];
262 } SetDesiredFrequency;
263 };
264} PCC_INPUT_BUFFER, *PPCC_INPUT_BUFFER;
265
266typedef union _PCC_OUTPUT_BUFFER {
267 struct {
268 UCHAR AverageFrequency;
269 UCHAR FrequencyLimit;
270 UCHAR Reserved[2];
271 } GetAverageFrequency;
272 struct {
273 UCHAR Reserved[4];
274 } SetDesiredFrequency;
275} PCC_OUTPUT_BUFFER, *PPCC_OUTPUT_BUFFER;
276
277#include "poppack.h"
278
279typedef VOID (*PPROCESSOR_PCC_DOORBELL_CALLBACK)(ULONG Status, ULONG_PTR Context);
280typedef NTSTATUS (*PPROCESSOR_PCC_RING_DOORBELL)(UCHAR Command, PPROCESSOR_PCC_DOORBELL_CALLBACK Callback, ULONG_PTR Context);
281
282typedef struct _PROCESSOR_PCC_INTERFACE_STANDARD {
283 USHORT Size;
284 USHORT Version;
285 PVOID Context;
286 PINTERFACE_REFERENCE InterfaceReference;
287 PINTERFACE_DEREFERENCE InterfaceDereference;
288 PPROCESSOR_PCC_RING_DOORBELL PccRingDoorbell;
289 PPCC_HEADER PccHeader;
290 ULONG PccHeaderLength;
291} PROCESSOR_PCC_INTERFACE_STANDARD, *PPROCESSOR_PCC_INTERFACE_STANDARD;
292
293typedef VOID (*PDEVICE_ACTIVE_COOLING)(PVOID Context, BOOLEAN Engaged);
294typedef VOID (*PDEVICE_PASSIVE_COOLING)(PVOID Context, ULONG Percentage);
295
296typedef struct _THERMAL_COOLING_INTERFACE {
297 USHORT Size;
298 USHORT Version;
299 PVOID Context;
300 PINTERFACE_REFERENCE InterfaceReference;
301 PINTERFACE_DEREFERENCE InterfaceDereference;
302 ULONG Flags;
303 PDEVICE_ACTIVE_COOLING ActiveCooling;
304 PDEVICE_PASSIVE_COOLING PassiveCooling;
305} THERMAL_COOLING_INTERFACE, *PTHERMAL_COOLING_INTERFACE;
306
307typedef THERMAL_COOLING_INTERFACE THERMAL_DEVICE_INTERFACE;
308typedef THERMAL_COOLING_INTERFACE *PTHERMAL_DEVICE_INTERFACE;
309
310typedef enum _THERMAL_DEVICE_INTERFACE_FLAGS {
311 ThermalDeviceFlagActiveCooling = 1,
312 ThermalDeviceFlagPassiveCooling = 2
313} THERMAL_DEVICE_INTERFACE_FLAGS, *PTHERMAL_DEVICE_INTERFACE_FLAGS;
314
315#endif // _WINDOWS_
316
317typedef struct _WAKE_ALARM_INFORMATION {
318 ULONG TimerIdentifier;
319 ULONG Timeout;
320} WAKE_ALARM_INFORMATION, *PWAKE_ALARM_INFORMATION;
321
322typedef struct _ACPI_REAL_TIME {
323 UINT16 Year;
324 UINT8 Month;
325 UINT8 Day;
326 UINT8 Hour;
327 UINT8 Minute;
328 UINT8 Second;
329 UINT8 Valid;
330 UINT16 Milliseconds;
331 INT16 TimeZone;
332 UINT8 DayLight;
333 UINT8 Reserved1[3];
334} ACPI_REAL_TIME, *PACPI_REAL_TIME;
335
336#endif /* WINAPI_PARTITION_DESKTOP. */
337
338#endif
339
Note: See TracBrowser for help on using the repository browser.