This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/batclass.h

320 lines
11 KiB
C

/*
* batclass.h Battery class functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _BATCLASS_
#define _BATCLASS_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Macro to specify battery class functions */
#ifndef _WINDOWS_
#define BATTERYCLASSAPI DECLSPEC_IMPORT
#endif
/* Battery device I/O control codes */
#define IOCTL_BATTERY_QUERY_TAG \
CTL_CODE( FILE_DEVICE_BATTERY, 0x0010, METHOD_BUFFERED, FILE_READ_ACCESS )
#define IOCTL_BATTERY_QUERY_INFORMATION \
CTL_CODE( FILE_DEVICE_BATTERY, 0x0011, METHOD_BUFFERED, FILE_READ_ACCESS )
#define IOCTL_BATTERY_SET_INFORMATION \
CTL_CODE( FILE_DEVICE_BATTERY, 0x0012, METHOD_BUFFERED, FILE_WRITE_ACCESS )
#define IOCTL_BATTERY_QUERY_STATUS \
CTL_CODE( FILE_DEVICE_BATTERY, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS )
/* Battery tag special value */
#define BATTERY_TAG_INVALID 0L
/* Battery capability flags */
#define BATTERY_SYSTEM_BATTERY 0x80000000L
#define BATTERY_CAPACITY_RELATIVE 0x40000000L
#define BATTERY_IS_SHORT_TERM 0x20000000L
#define BATTERY_SET_CHARGE_SUPPORTED 0x00000001L
#define BATTERY_SET_DISCHARGE_SUPPORTED 0x00000002L
/* Battery capacity special value */
#define BATTERY_UNKNOWN_CAPACITY 0xFFFFFFFFL
/* Battery estimated time special value */
#define BATTERY_UNKNOWN_TIME 0xFFFFFFFFL
/* Maximum battery string size */
#define MAX_BATTERY_STRING_SIZE 128
/* Battery power state flags */
#define BATTERY_POWER_ON_LINE 0x00000001L
#define BATTERY_DISCHARGING 0x00000002L
#define BATTERY_CHARGING 0x00000004L
#define BATTERY_CRITICAL 0x00000008L
/* Special battery status values */
#define BATTERY_UNKNOWN_VOLTAGE 0xFFFFFFFFL
#define BATTERY_UNKNOWN_RATE 0x80000000L
/* Battery class version numbers */
#ifndef _WINDOWS_
#define BATTERY_CLASS_MAJOR_VERSION 0x0001
#define BATTERY_CLASS_MINOR_VERSION 0x0000
#endif
/* Battery query information levels */
typedef enum {
BatteryInformation = 0,
BatteryGranularityInformation = 1,
BatteryTemperature = 2,
BatteryEstimatedTime = 3,
BatteryDeviceName = 4,
BatteryManufactureDate = 5,
BatteryManufactureName = 6,
BatteryUniqueID = 7,
BatterySerialNumber = 8
} BATTERY_QUERY_INFORMATION_LEVEL;
/* IOCTL_BATTERY_QUERY_INFORMATION parameters */
typedef struct _BATTERY_QUERY_INFORMATION {
ULONG BatteryTag;
BATTERY_QUERY_INFORMATION_LEVEL InformationLevel;
LONG AtRate;
} BATTERY_QUERY_INFORMATION;
typedef BATTERY_QUERY_INFORMATION *PBATTERY_QUERY_INFORMATION;
/* Battery information */
typedef struct _BATTERY_INFORMATION {
ULONG Capabilities;
UCHAR Technology;
UCHAR Reserved[3];
UCHAR Chemistry[4];
ULONG DesignedCapacity;
ULONG FullChargedCapacity;
ULONG DefaultAlert1;
ULONG DefaultAlert2;
ULONG CriticalBias;
ULONG CycleCount;
} BATTERY_INFORMATION;
typedef BATTERY_INFORMATION *PBATTERY_INFORMATION;
/* Battery reporting scale */
#if (NTDDI_VERSION < 0x05010000) && !defined( _NTPOAPI_ )
typedef struct {
ULONG Granularity;
ULONG Capacity;
} BATTERY_REPORTING_SCALE;
typedef BATTERY_REPORTING_SCALE *PBATTERY_REPORTING_SCALE;
#endif
/* Battery manufacture date */
typedef struct _BATTERY_MANUFACTURE_DATE {
UCHAR Day;
UCHAR Month;
USHORT Year;
} BATTERY_MANUFACTURE_DATE;
typedef BATTERY_MANUFACTURE_DATE *PBATTERY_MANUFACTURE_DATE;
/* Battery set information levels */
typedef enum {
BatteryCriticalBias = 0,
BatteryCharge = 1,
BatteryDischarge = 2
} BATTERY_SET_INFORMATION_LEVEL;
/* IOCTL_BATTERY_SET_INFORMATION parameters */
typedef struct _BATTERY_SET_INFORMATION {
ULONG BatteryTag;
BATTERY_SET_INFORMATION_LEVEL InformationLevel;
UCHAR Buffer[1];
} BATTERY_SET_INFORMATION;
typedef BATTERY_SET_INFORMATION *PBATTERY_SET_INFORMATION;
/* Battery wait status */
typedef struct _BATTERY_WAIT_STATUS {
ULONG BatteryTag;
ULONG Timeout;
ULONG PowerState;
ULONG LowCapacity;
ULONG HighCapacity;
} BATTERY_WAIT_STATUS;
typedef BATTERY_WAIT_STATUS *PBATTERY_WAIT_STATUS;
/* Battery status */
typedef struct _BATTERY_STATUS {
ULONG PowerState;
ULONG Capacity;
ULONG Voltage;
LONG Rate;
} BATTERY_STATUS;
typedef BATTERY_STATUS *PBATTERY_STATUS;
/* Battery notification */
#ifndef _WINDOWS_
typedef struct {
ULONG PowerState;
ULONG LowCapacity;
ULONG HighCapacity;
} BATTERY_NOTIFY;
typedef BATTERY_NOTIFY *PBATTERY_NOTIFY;
#endif
/* Battery class callbacks */
#ifndef _WINDOWS_
typedef NTSTATUS (NTAPI BCLASS_QUERY_TAG_CALLBACK)( PVOID, PULONG );
typedef NTSTATUS (NTAPI BCLASS_QUERY_INFORMATION_CALLBACK)( PVOID, ULONG, BATTERY_QUERY_INFORMATION_LEVEL, LONG, PVOID, ULONG, PULONG );
typedef NTSTATUS (NTAPI BCLASS_QUERY_STATUS_CALLBACK)( PVOID, ULONG, PBATTERY_STATUS );
typedef NTSTATUS (NTAPI BCLASS_SET_STATUS_NOTIFY_CALLBACK)( PVOID, ULONG, PBATTERY_NOTIFY );
typedef NTSTATUS (NTAPI BCLASS_SET_INFORMATION_CALLBACK)( PVOID, ULONG, BATTERY_SET_INFORMATION_LEVEL, PVOID );
typedef NTSTATUS (NTAPI BCLASS_DISABLE_STATUS_NOTIFY_CALLBACK)( PVOID );
typedef BCLASS_QUERY_TAG_CALLBACK *PBCLASS_QUERY_TAG_CALLBACK;
typedef BCLASS_QUERY_INFORMATION_CALLBACK *PBCLASS_QUERY_INFORMATION_CALLBACK;
typedef BCLASS_QUERY_STATUS_CALLBACK *PBCLASS_QUERY_STATUS_CALLBACK;
typedef BCLASS_SET_STATUS_NOTIFY_CALLBACK *PBCLASS_SET_STATUS_NOTIFY_CALLBACK;
typedef BCLASS_SET_INFORMATION_CALLBACK *PBCLASS_SET_INFORMATION_CALLBACK;
typedef BCLASS_DISABLE_STATUS_NOTIFY_CALLBACK *PBCLASS_DISABLE_STATUS_NOTIFY_CALLBACK;
typedef PBCLASS_QUERY_TAG_CALLBACK BCLASS_QUERY_TAG;
typedef PBCLASS_QUERY_INFORMATION_CALLBACK BCLASS_QUERY_INFORMATION;
typedef PBCLASS_QUERY_STATUS_CALLBACK BCLASS_QUERY_STATUS;
typedef PBCLASS_SET_STATUS_NOTIFY_CALLBACK BCLASS_SET_STATUS_NOTIFY;
typedef PBCLASS_SET_INFORMATION_CALLBACK BCLASS_SET_INFORMATION;
typedef PBCLASS_DISABLE_STATUS_NOTIFY_CALLBACK BCLASS_DISABLE_STATUS_NOTIFY;
#endif
/* Battery miniport information */
#ifndef _WINDOWS_
typedef struct {
USHORT MajorVersion;
USHORT MinorVersion;
PVOID Context;
BCLASS_QUERY_TAG QueryTag;
BCLASS_QUERY_INFORMATION QueryInformation;
BCLASS_SET_INFORMATION SetInformation;
BCLASS_QUERY_STATUS QueryStatus;
BCLASS_SET_STATUS_NOTIFY SetStatusNotify;
BCLASS_DISABLE_STATUS_NOTIFY DisableStatusNotify;
PDEVICE_OBJECT Pdo;
PUNICODE_STRING DeviceName;
} BATTERY_MINIPORT_INFO;
typedef BATTERY_MINIPORT_INFO *PBATTERY_MINIPORT_INFO;
#endif
/* Battery WMI status */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_STATUS {
ULONG Tag;
ULONG RemainingCapacity;
LONG ChargeRate;
LONG DischargeRate;
ULONG Voltage;
BOOLEAN PowerOnline;
BOOLEAN Charging;
BOOLEAN Discharging;
BOOLEAN Critical;
} BATTERY_WMI_STATUS;
typedef BATTERY_WMI_STATUS *PBATTERY_WMI_STATUS;
#endif
/* Battery WMI runtime */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_RUNTIME {
ULONG Tag;
ULONG EstimatedRuntime;
} BATTERY_WMI_RUNTIME;
typedef BATTERY_WMI_RUNTIME *PBATTERY_WMI_RUNTIME;
#endif
/* Battery WMI temperature */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_TEMPERATURE {
ULONG Tag;
ULONG Temperature;
} BATTERY_WMI_TEMPERATURE;
typedef BATTERY_WMI_TEMPERATURE *PBATTERY_WMI_TEMPERATURE;
#endif
/* Battery WMI full charged capacity */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_FULL_CHARGED_CAPACITY {
ULONG Tag;
ULONG FullChargedCapacity;
} BATTERY_WMI_FULL_CHARGED_CAPACITY;
typedef BATTERY_WMI_FULL_CHARGED_CAPACITY *PBATTERY_WMI_FULL_CHARGED_CAPACITY;
#endif
/* Battery WMI cycle count */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_CYCLE_COUNT {
ULONG Tag;
ULONG CycleCount;
} BATTERY_WMI_CYCLE_COUNT;
typedef BATTERY_WMI_CYCLE_COUNT *PBATTERY_WMI_CYCLE_COUNT;
#endif
/* Battery WMI static data */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_STATIC_DATA {
ULONG Tag;
WCHAR ManufactureDate[25];
BATTERY_REPORTING_SCALE Granularity[4];
ULONG Capabilities;
UCHAR Technology;
ULONG Chemistry;
ULONG DesignedCapacity;
ULONG DefaultAlert1;
ULONG DefaultAlert2;
ULONG CriticalBias;
WCHAR Strings[1];
} BATTERY_WMI_STATIC_DATA;
typedef BATTERY_WMI_STATIC_DATA *PBATTERY_WMI_STATIC_DATA;
#endif
/* Battery WMI status change */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_WMI_STATUS_CHANGE {
ULONG Tag;
BOOLEAN PowerOnline;
BOOLEAN Charging;
BOOLEAN Discharging;
BOOLEAN Critical;
} BATTERY_WMI_STATUS_CHANGE;
typedef BATTERY_WMI_STATUS_CHANGE *PBATTERY_WMI_STATUS_CHANGE;
#endif
/* Battery tag change */
#if (NTDDI_VERSION >= 0x05010000) && !defined( _WINDOWS_ )
typedef struct _BATTERY_TAG_CHANGE {
ULONG Tag;
} BATTERY_TAG_CHANGE;
typedef BATTERY_TAG_CHANGE *PBATTERY_TAG_CHANGE;
#endif
/* Functions in BATTC.SYS */
#ifndef _WINDOWS_
BATTERYCLASSAPI NTSTATUS NTAPI BatteryClassInitializeDevice( PBATTERY_MINIPORT_INFO, PVOID * );
BATTERYCLASSAPI NTSTATUS NTAPI BatteryClassIoctl( PVOID, PIRP );
BATTERYCLASSAPI NTSTATUS NTAPI BatteryClassStatusNotify( PVOID );
BATTERYCLASSAPI NTSTATUS NTAPI BatteryClassUnload( PVOID );
#if (NTDDI_VERSION >= 0x05010000)
BATTERYCLASSAPI NTSTATUS NTAPI BatteryClassQueryWmiDataBlock( PVOID, PDEVICE_OBJECT, PIRP, ULONG, PULONG, ULONG, PUCHAR );
BATTERYCLASSAPI NTSTATUS NTAPI BatteryClassSystemControl( PVOID, PVOID, PDEVICE_OBJECT, PIRP, PVOID );
#endif
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _BATCLASS_ */