2 * PROJECT: ReactOS Composite Battery Driver
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: boot/drivers/bus/acpi/compbatt/compbatt.h
5 * PURPOSE: Main Header File
6 * PROGRAMMERS: ReactOS Portable Systems Group
12 #define COMPBATT_BATTERY_INFORMATION_PRESENT 0x04
13 #define COMPBATT_TAG_ASSIGNED 0x80
15 typedef struct _COMPBATT_BATTERY_DATA
17 LIST_ENTRY BatteryLink
;
18 IO_REMOVE_LOCK RemoveLock
;
19 PDEVICE_OBJECT DeviceObject
;
21 WORK_QUEUE_ITEM WorkItem
;
23 BATTERY_WAIT_STATUS WaitStatus
;
26 BATTERY_WAIT_STATUS WorkerWaitStatus
;
27 BATTERY_STATUS WorkerStatus
;
31 BATTERY_INFORMATION BatteryInformation
;
32 BATTERY_STATUS BatteryStatus
;
33 ULONGLONG InterruptTime
;
34 UNICODE_STRING BatteryName
;
35 } COMPBATT_BATTERY_DATA
, *PCOMPBATT_BATTERY_DATA
;
37 typedef struct _COMPBATT_DEVICE_EXTENSION
41 LIST_ENTRY BatteryList
;
45 BATTERY_INFORMATION BatteryInformation
;
46 BATTERY_STATUS BatteryStatus
;
47 ULONGLONG InterruptTime
;
48 POWER_STATE PowerState
;
51 PDEVICE_OBJECT AttachedDevice
;
52 PDEVICE_OBJECT DeviceObject
;
53 PVOID NotificationEntry
;
54 } COMPBATT_DEVICE_EXTENSION
, *PCOMPBATT_DEVICE_EXTENSION
;
59 IN PDRIVER_OBJECT DriverObject
,
60 IN PDEVICE_OBJECT PdoDeviceObject
65 CompBattPowerDispatch(
66 IN PDEVICE_OBJECT DeviceObject
,
73 IN PDEVICE_OBJECT DeviceObject
,
79 CompBattQueryInformation(
80 IN PCOMPBATT_DEVICE_EXTENSION FdoExtension
,
82 IN BATTERY_QUERY_INFORMATION_LEVEL InfoLevel
,
83 IN OPTIONAL LONG AtRate
,
85 IN ULONG BufferLength
,
86 OUT PULONG ReturnedLength
92 IN PCOMPBATT_DEVICE_EXTENSION DeviceExtension
,
94 IN PBATTERY_STATUS BatteryStatus
99 CompBattSetStatusNotify(
100 IN PCOMPBATT_DEVICE_EXTENSION DeviceExtension
,
102 IN PBATTERY_NOTIFY BatteryNotify
107 CompBattDisableStatusNotify(
108 IN PCOMPBATT_DEVICE_EXTENSION DeviceExtension
114 IN PCOMPBATT_DEVICE_EXTENSION DeviceExtension
,
120 CompBattMonitorIrpComplete(
121 IN PDEVICE_OBJECT DeviceObject
,
128 CompBattMonitorIrpCompleteWorker(
129 IN PCOMPBATT_BATTERY_DATA BatteryData
134 CompBattGetDeviceObjectPointer(
135 IN PUNICODE_STRING DeviceName
,
136 IN ACCESS_MASK DesiredAccess
,
137 OUT PFILE_OBJECT
*FileObject
,
138 OUT PDEVICE_OBJECT
*DeviceObject
144 IN ULONG IoControlCode
,
145 IN PDEVICE_OBJECT DeviceObject
,
146 IN PVOID InputBuffer
,
147 IN ULONG InputBufferLength
,
148 IN PVOID OutputBuffer
,
149 IN ULONG OutputBufferLength
,
150 IN BOOLEAN InternalDeviceIoControl
153 extern ULONG CompBattDebug
;