Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencmbatt.h
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS ACPI-Compliant Control Method Battery 00003 * LICENSE: BSD - See COPYING.ARM in the top level directory 00004 * FILE: boot/drivers/bus/acpi/cmbatt/cmbatt.h 00005 * PURPOSE: Main Header File 00006 * PROGRAMMERS: ReactOS Portable Systems Group 00007 */ 00008 00009 #include <ntddk.h> 00010 #include <initguid.h> 00011 #include <batclass.h> 00012 #include <acpiioct.h> 00013 #include <wmilib.h> 00014 #include <wdmguid.h> 00015 #include <debug.h> 00016 00017 #define IOCTL_BATTERY_QUERY_UNIQUE_ID \ 00018 CTL_CODE(FILE_DEVICE_BATTERY, 0x101, METHOD_BUFFERED, FILE_READ_ACCESS) // 0x294404 00019 00020 #define IOCTL_BATTERY_QUERY_STA \ 00021 CTL_CODE(FILE_DEVICE_BATTERY, 0x102, METHOD_BUFFERED, FILE_READ_ACCESS) // 0x294408 00022 00023 #define IOCTL_BATTERY_QUERY_PSR \ 00024 CTL_CODE(FILE_DEVICE_BATTERY, 0x103, METHOD_BUFFERED, FILE_READ_ACCESS) // 0x29440C 00025 00026 #define IOCTL_BATTERY_SET_TRIP_POINT \ 00027 CTL_CODE(FILE_DEVICE_BATTERY, 0x104, METHOD_BUFFERED, FILE_READ_ACCESS) // 0x294410 00028 00029 #define IOCTL_BATTERY_QUERY_BIF \ 00030 CTL_CODE(FILE_DEVICE_BATTERY, 0x105, METHOD_BUFFERED, FILE_READ_ACCESS) // 0x294414 00031 00032 #define IOCTL_BATTERY_QUERY_BST \ 00033 CTL_CODE(FILE_DEVICE_BATTERY, 0x106, METHOD_BUFFERED, FILE_READ_ACCESS) // 0x294418 00034 00035 #define CMBATT_GENERIC_STATUS 0x01 00036 #define CMBATT_GENERIC_INFO 0x02 00037 #define CMBATT_GENERIC_WARNING 0x04 00038 #define CMBATT_ACPI_WARNING 0x08 00039 #define CMBATT_POWER_INFO 0x10 00040 #define CMBATT_PNP_INFO 0x20 00041 #define CMBATT_ACPI_ENTRY_EXIT 0x40 00042 #define CMBATT_PNP_ENTRY_EXIT 0x200 00043 #define CMBATT_ACPI_ASSERT 0x400 00044 00045 typedef enum _CMBATT_EXTENSION_TYPE 00046 { 00047 CmBattAcAdapter, 00048 CmBattBattery 00049 } CMBATT_EXTENSION_TYPE; 00050 00051 #define ACPI_BUS_CHECK 0x00 00052 #define ACPI_DEVICE_CHECK 0x01 00053 00054 #define ACPI_STA_PRESENT 0x01 00055 #define ACPI_STA_ENABLED 0x02 00056 #define ACPI_STA_SHOW_UI 0x04 00057 #define ACPI_STA_FUNCTIONAL 0x08 00058 #define ACPI_STA_BATTERY_PRESENT 0x10 00059 00060 #define ACPI_BATT_NOTIFY_STATUS 0x80 00061 #define ACPI_BATT_NOTIFY_INFO 0x81 00062 00063 #define ACPI_BATT_STAT_DISCHARG 0x0001 00064 #define ACPI_BATT_STAT_CHARGING 0x0002 00065 #define ACPI_BATT_STAT_CRITICAL 0x0004 00066 00067 #define CM_MAX_VALUE 0x7FFFFFFF 00068 #define CM_UNKNOWN_VALUE 0xFFFFFFFF 00069 00070 typedef struct _ACPI_BST_DATA 00071 { 00072 ULONG State; 00073 ULONG PresentRate; 00074 ULONG RemainingCapacity; 00075 ULONG PresentVoltage; 00076 } ACPI_BST_DATA, *PACPI_BST_DATA; 00077 00078 #define ACPI_BATT_POWER_UNIT_WATTS 0x0 00079 #define ACPI_BATT_POWER_UNIT_AMPS 0x1 00080 00081 typedef struct _ACPI_BIF_DATA 00082 { 00083 ULONG PowerUnit; 00084 ULONG DesignCapacity; 00085 ULONG LastFullCapacity; 00086 ULONG BatteryTechnology; 00087 ULONG DesignVoltage; 00088 ULONG DesignCapacityWarning; 00089 ULONG DesignCapacityLow; 00090 ULONG BatteryCapacityGranularity1; 00091 ULONG BatteryCapacityGranularity2; 00092 CHAR ModelNumber[256]; 00093 CHAR SerialNubmer[256]; 00094 CHAR BatteryType[256]; 00095 CHAR OemInfo[256]; 00096 } ACPI_BIF_DATA, *PACPI_BIF_DATA; 00097 00098 #define CMBATT_AR_NOTIFY 0x01 00099 #define CMBATT_AR_INSERT 0x02 00100 #define CMBATT_AR_REMOVE 0x04 00101 00102 typedef struct _CMBATT_DEVICE_EXTENSION 00103 { 00104 CMBATT_EXTENSION_TYPE FdoType; 00105 PDEVICE_OBJECT DeviceObject; 00106 PDEVICE_OBJECT FdoDeviceObject; 00107 PDEVICE_OBJECT PdoDeviceObject; 00108 PDEVICE_OBJECT AttachedDevice; 00109 FAST_MUTEX FastMutex; 00110 ULONG HandleCount; 00111 PIRP PowerIrp; 00112 POWER_STATE PowerState; 00113 WMILIB_CONTEXT WmiLibInfo; 00114 BOOLEAN WaitWakeEnable; 00115 IO_REMOVE_LOCK RemoveLock; 00116 ULONG DeviceId; 00117 PUNICODE_STRING DeviceName; 00118 ACPI_INTERFACE_STANDARD AcpiInterface; 00119 BOOLEAN DelayNotification; 00120 BOOLEAN ArFlag; 00121 PVOID ClassData; 00122 BOOLEAN Started; 00123 BOOLEAN NotifySent; 00124 LONG ArLockValue; 00125 ULONG TagData; 00126 ULONG Tag; 00127 ULONG ModelNumberLength; 00128 PCHAR ModelNumber; 00129 ULONG SerialNumberLength; 00130 PCHAR SerialNumber; 00131 ULONG OemInfoLength; 00132 PCHAR OemInfo; 00133 ACPI_BST_DATA BstData; 00134 ACPI_BIF_DATA BifData; 00135 ULONG Id; 00136 ULONG State; 00137 ULONG RemainingCapacity; 00138 ULONG PresentVoltage; 00139 ULONG Rate; 00140 BATTERY_INFORMATION BatteryInformation; 00141 ULONG BatteryCapacityGranularity1; 00142 ULONG BatteryCapacityGranularity2; 00143 BOOLEAN TripPointSet; 00144 ULONG TripPointValue; 00145 ULONG TripPointOld; 00146 ULONGLONG InterruptTime; 00147 } CMBATT_DEVICE_EXTENSION, *PCMBATT_DEVICE_EXTENSION; 00148 00149 NTSTATUS 00150 NTAPI 00151 CmBattPowerDispatch( 00152 PDEVICE_OBJECT DeviceObject, 00153 PIRP Irp 00154 ); 00155 00156 NTSTATUS 00157 NTAPI 00158 CmBattPnpDispatch( 00159 PDEVICE_OBJECT DeviceObject, 00160 PIRP Irp 00161 ); 00162 00163 NTSTATUS 00164 NTAPI 00165 CmBattAddDevice( 00166 PDRIVER_OBJECT DriverObject, 00167 PDEVICE_OBJECT DeviceObject 00168 ); 00169 00170 NTSTATUS 00171 NTAPI 00172 CmBattSystemControl( 00173 PDEVICE_OBJECT DeviceObject, 00174 PIRP Irp 00175 ); 00176 00177 NTSTATUS 00178 NTAPI 00179 CmBattGetBstData( 00180 PCMBATT_DEVICE_EXTENSION DeviceExtension, 00181 PACPI_BST_DATA BstData 00182 ); 00183 00184 NTSTATUS 00185 NTAPI 00186 CmBattGetPsrData( 00187 PDEVICE_OBJECT DeviceObject, 00188 PULONG PsrData 00189 ); 00190 00191 NTSTATUS 00192 NTAPI 00193 CmBattGetStaData( 00194 PDEVICE_OBJECT DeviceObject, 00195 PULONG StaData 00196 ); 00197 00198 NTSTATUS 00199 NTAPI 00200 CmBattGetBifData( 00201 PCMBATT_DEVICE_EXTENSION DeviceExtension, 00202 PACPI_BIF_DATA BifData 00203 ); 00204 00205 NTSTATUS 00206 NTAPI 00207 CmBattSetTripPpoint( 00208 PCMBATT_DEVICE_EXTENSION DeviceExtension, 00209 ULONG AlarmValue 00210 ); 00211 00212 VOID 00213 NTAPI 00214 CmBattNotifyHandler( 00215 IN PCMBATT_DEVICE_EXTENSION DeviceExtension, 00216 IN ULONG NotifyValue 00217 ); 00218 00219 NTSTATUS 00220 NTAPI 00221 CmBattWmiDeRegistration( 00222 PCMBATT_DEVICE_EXTENSION DeviceExtension 00223 ); 00224 00225 NTSTATUS 00226 NTAPI 00227 CmBattWmiRegistration( 00228 PCMBATT_DEVICE_EXTENSION DeviceExtension 00229 ); 00230 00231 NTSTATUS 00232 NTAPI 00233 CmBattGetUniqueId( 00234 PDEVICE_OBJECT DeviceObject, 00235 PULONG UniqueId 00236 ); 00237 00238 NTSTATUS 00239 NTAPI 00240 CmBattQueryInformation( 00241 IN PCMBATT_DEVICE_EXTENSION FdoExtension, 00242 IN ULONG Tag, 00243 IN BATTERY_QUERY_INFORMATION_LEVEL InfoLevel, 00244 IN OPTIONAL LONG AtRate, 00245 IN PVOID Buffer, 00246 IN ULONG BufferLength, 00247 OUT PULONG ReturnedLength 00248 ); 00249 00250 NTSTATUS 00251 NTAPI 00252 CmBattQueryStatus( 00253 IN PCMBATT_DEVICE_EXTENSION DeviceExtension, 00254 IN ULONG Tag, 00255 IN PBATTERY_STATUS BatteryStatus 00256 ); 00257 00258 NTSTATUS 00259 NTAPI 00260 CmBattSetStatusNotify( 00261 IN PCMBATT_DEVICE_EXTENSION DeviceExtension, 00262 IN ULONG BatteryTag, 00263 IN PBATTERY_NOTIFY BatteryNotify 00264 ); 00265 00266 NTSTATUS 00267 NTAPI 00268 CmBattDisableStatusNotify( 00269 IN PCMBATT_DEVICE_EXTENSION DeviceExtension 00270 ); 00271 00272 NTSTATUS 00273 NTAPI 00274 CmBattQueryTag( 00275 IN PCMBATT_DEVICE_EXTENSION DeviceExtension, 00276 OUT PULONG Tag 00277 ); 00278 00279 extern PDEVICE_OBJECT AcAdapterPdo; 00280 extern ULONG CmBattDebug; 00281 00282 /* EOF */ Generated on Sun May 27 2012 04:27:25 for ReactOS by
1.7.6.1
|