ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

cmbatt.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.