3 Copyright (c) Alex Ionescu. All rights reserved.
11 Type definitions for the Power Subystem
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
26 #ifndef NTOS_MODE_USER
33 typedef enum _SYSTEM_DOCK_STATE
35 SystemDockStateUnknown
,
38 } SYSTEM_DOCK_STATE
, *PSYSTEM_DOCK_STATE
;
40 #ifndef NTOS_MODE_USER
43 // Processor Power State Data
45 struct _PROCESSOR_POWER_STATE
;
49 (FASTCALL
*PPROCESSOR_IDLE_FUNCTION
)(
50 struct _PROCESSOR_POWER_STATE
*PState
);
52 typedef struct _PROCESSOR_POWER_STATE
54 PPROCESSOR_IDLE_FUNCTION IdleFunction
;
55 ULONG Idle0KernelTimeLimit
;
59 ULONG IdleHandlersCount
;
61 PROCESSOR_IDLE_TIMES IdleTimes
;
65 UCHAR CurrentThrottle
;
66 UCHAR ThermalThrottleLimit
;
67 UCHAR CurrentThrottleIndex
;
68 UCHAR ThermalThrottleIndex
;
69 ULONG LastKernelUserTime
;
74 ULONGLONG TotalIdleStateTime
[3];
75 ULONG TotalIdleTransitions
[3];
76 ULONGLONG PreviousC3StateTime
;
77 UCHAR KneeThrottleIndex
;
78 UCHAR ThrottleLimitIndex
;
79 UCHAR PerfStatesCount
;
80 UCHAR ProcessorMinThrottle
;
81 UCHAR ProcessorMaxThrottle
;
82 UCHAR LastBusyPercentage
;
83 UCHAR LastC3Percentage
;
84 UCHAR LastAdjustedBusyPercentage
;
90 LARGE_INTEGER PerfCounterFrequency
;
94 PROCESSOR_PERF_STATE
*PerfStates
;
95 PVOID PerfSetThrottle
;
96 ULONG LastC3KernelUserTime
;
98 } PROCESSOR_POWER_STATE
, *PPROCESSOR_POWER_STATE
;
101 // Device Notification Structure
103 typedef struct _PO_DEVICE_NOTIFY
106 PDEVICE_OBJECT TargetDevice
;
109 PDEVICE_OBJECT DeviceObject
;
115 } PO_DEVICE_NOTIFY
, *PPO_DEVICE_NOTIFY
;
120 typedef struct _PO_IRP_QUEUE
124 } PO_IRP_QUEUE
, *PPO_IRP_QUEUE
;
127 typedef struct _PO_IRP_MANAGER
129 PO_IRP_QUEUE DeviceIrpQueue
;
130 PO_IRP_QUEUE SystemIrpQueue
;
131 } PO_IRP_MANAGER
, *PPO_IRP_MANAGER
;
133 #endif // !NTOS_MODE_USER