Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.8 KiB

  1. //
  2. // Direct Access IOCTLs
  3. //
  4. #define IOCTL_CMBATT_UID \
  5. CTL_CODE(FILE_DEVICE_BATTERY, 0x101, METHOD_BUFFERED, FILE_READ_ACCESS)
  6. #define IOCTL_CMBATT_STA \
  7. CTL_CODE(FILE_DEVICE_BATTERY, 0x102, METHOD_BUFFERED, FILE_READ_ACCESS)
  8. #define IOCTL_CMBATT_PSR \
  9. CTL_CODE(FILE_DEVICE_BATTERY, 0x103, METHOD_BUFFERED, FILE_READ_ACCESS)
  10. #define IOCTL_CMBATT_BTP \
  11. CTL_CODE(FILE_DEVICE_BATTERY, 0x104, METHOD_BUFFERED, FILE_WRITE_ACCESS)
  12. #define IOCTL_CMBATT_BIF \
  13. CTL_CODE(FILE_DEVICE_BATTERY, 0x105, METHOD_BUFFERED, FILE_READ_ACCESS)
  14. #define IOCTL_CMBATT_BST \
  15. CTL_CODE(FILE_DEVICE_BATTERY, 0x106, METHOD_BUFFERED, FILE_READ_ACCESS)
  16. #if (CMB_DIRECT_IOCTL_ONLY != 1)
  17. #define CM_MAX_STRING_LENGTH 256
  18. //
  19. // This is the static data defined by the ACPI spec for the control method battery
  20. // It is returned by the _BIF control method
  21. //
  22. typedef struct {
  23. ULONG PowerUnit; // units used by interface 0:mWh or 1:mAh
  24. ULONG DesignCapacity; // Nominal capacity of a new battery
  25. ULONG LastFullChargeCapacity; // Predicted capacity when fully charged
  26. ULONG BatteryTechnology; // 0:Primary (not rechargable), 1:Secondary (rechargable)
  27. ULONG DesignVoltage; // Nominal voltage of a new battery
  28. ULONG DesignCapacityOfWarning; // OEM-designed battery warning capacity
  29. ULONG DesignCapacityOfLow; // OEM-designed battery low capacity
  30. ULONG BatteryCapacityGran_1; // capacity granularity between low and warning
  31. ULONG BatteryCapacityGran_2; // capacity granularity between warning and full
  32. UCHAR ModelNumber[CM_MAX_STRING_LENGTH];
  33. UCHAR SerialNumber[CM_MAX_STRING_LENGTH];
  34. UCHAR BatteryType[CM_MAX_STRING_LENGTH];
  35. UCHAR OEMInformation[CM_MAX_STRING_LENGTH];
  36. } CM_BIF_BAT_INFO, *PCM_BIF_BAT_INFO;
  37. //
  38. // This is the battery status data defined by the ACPI spec for a control method battery
  39. // It is returned by the _BST control method
  40. //
  41. typedef struct {
  42. ULONG BatteryState; // Charging/Discharging/Critical
  43. ULONG PresentRate; // Present draw rate in units defined by PowerUnit
  44. // Unsigned value, direction is determined by BatteryState
  45. ULONG RemainingCapacity; // Estimated remaining capacity, units defined by PowerUnit
  46. ULONG PresentVoltage; // Present voltage across the battery terminals
  47. } CM_BST_BAT_INFO, *PCM_BST_BAT_INFO;
  48. #endif // (CMB_DIRECT_IOCTL_ONLY != 1)