1eccdbb0532bc7e0bc647b4a6d16f9bd16b0a698
[reactos.git] / reactos / include / ndk / potypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/potypes.h
4 * PURPOSE: Defintions for Power Manager Types not documented in DDK/IFS.
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _POTYPES_H
10 #define _POTYPES_H
11
12 /* DEPENDENCIES **************************************************************/
13 #include <ntpoapi.h>
14
15 /* EXPORTED DATA *************************************************************/
16
17 /* CONSTANTS *****************************************************************/
18
19 /* ENUMERATIONS **************************************************************/
20
21 /* TYPES *********************************************************************/
22
23 typedef struct _PROCESSOR_POWER_STATE
24 {
25 PVOID IdleFunction;
26 ULONG Idle0KernelTimeLimit;
27 ULONG Idle0LastTime;
28 PVOID IdleHandlers;
29 PVOID IdleState;
30 ULONG IdleHandlersCount;
31 ULONGLONG LastCheck;
32 PROCESSOR_IDLE_TIMES IdleTimes;
33 ULONG IdleTime1;
34 ULONG PromotionCheck;
35 ULONG IdleTime2;
36 UCHAR CurrentThrottle;
37 UCHAR ThermalThrottleLimit;
38 UCHAR CurrentThrottleIndex;
39 UCHAR ThermalThrottleIndex;
40 ULONG LastKernelUserTime;
41 ULONG PerfIdleTime;
42 ULONG DebugDelta;
43 ULONG DebugCount;
44 ULONG LastSysTime;
45 ULONG TotalIdleStateTime[3];
46 ULONG TotalIdleTransitions[3];
47 ULONGLONG PreviousC3StateTime;
48 UCHAR KneeThrottleIndex;
49 UCHAR ThrottleLimitIndex;
50 UCHAR PerfStatesCount;
51 UCHAR ProcessorMinThrottle;
52 UCHAR ProcessorMaxThrottle;
53 UCHAR LastBusyPercentage;
54 UCHAR LastC3Percentage;
55 UCHAR LastAdjustedBusyPercentage;
56 ULONG PromotionCount;
57 ULONG DemotionCount;
58 ULONG ErrorCount;
59 ULONG RetryCount;
60 ULONG Flags;
61 LARGE_INTEGER PerfCounterFrequency;
62 ULONG PerfTickCount;
63 KTIMER PerfTimer;
64 KDPC PerfDpc;
65 PROCESSOR_PERF_STATE *PerfStates;
66 PVOID PerfSetThrottle;
67 ULONG LastC3KernelUserTime;
68 ULONG Spare1[1];
69 } PROCESSOR_POWER_STATE, *PPROCESSOR_POWER_STATE;
70
71 typedef struct _PO_DEVICE_NOTIFY
72 {
73 LIST_ENTRY Link;
74 PDEVICE_OBJECT TargetDevice;
75 UCHAR WakeNeeded;
76 UCHAR OrderLevel;
77 PDEVICE_OBJECT DeviceObject;
78 PVOID Node;
79 PUSHORT DeviceName;
80 PUSHORT DriverName;
81 ULONG ChildCount;
82 ULONG ActiveChild;
83 } PO_DEVICE_NOTIFY, *PPO_DEVICE_NOTIFY;
84
85 #endif