- batclass.h : Introduce pragma once, apply a consistent formatting, apply appropriate conditionals, add some missing definitions and group related ones.
- winnt.h : Update JOBOBJECTINFOCLASS, BATTERY_REPORTING_SCALE and POWER_INFORMATION_LEVEL, introduce _ANONYMOUS_UNION in SYSTEM_LOGICAL_PROCESSOR_INFORMATION, and apply a consistent formatting for the rest.

svn path=/branches/header-work/; revision=47239
This commit is contained in:
Amine Khaldi 2010-05-16 12:23:45 +00:00
parent 077ed6cb51
commit 615d59ca2e
2 changed files with 417 additions and 304 deletions

View file

@ -20,49 +20,38 @@
* *
*/ */
#ifndef __BATCLASS_H #pragma once
#define __BATCLASS_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#if defined(_BATTERYCLASS_)
#define BCLASSAPI
#else
#define BCLASSAPI DECLSPEC_IMPORT
#endif
/* Battery device GUIDs */ /* Battery device GUIDs */
DEFINE_GUID(GUID_DEVICE_BATTERY, DEFINE_GUID(GUID_DEVICE_BATTERY,
0x72631e54L, 0x78A4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a); 0x72631e54L, 0x78A4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a);
#if (NTDDI_VERSION >= NTDDI_WINXP)
DEFINE_GUID(BATTERY_STATUS_WMI_GUID, DEFINE_GUID(BATTERY_STATUS_WMI_GUID,
0xfc4670d1, 0xebbf, 0x416e, 0x87, 0xce, 0x37, 0x4a, 0x4e, 0xbc, 0x11, 0x1a); 0xfc4670d1, 0xebbf, 0x416e, 0x87, 0xce, 0x37, 0x4a, 0x4e, 0xbc, 0x11, 0x1a);
DEFINE_GUID(BATTERY_RUNTIME_WMI_GUID, DEFINE_GUID(BATTERY_RUNTIME_WMI_GUID,
0x535a3767, 0x1ac2, 0x49bc, 0xa0, 0x77, 0x3f, 0x7a, 0x02, 0xe4, 0x0a, 0xec); 0x535a3767, 0x1ac2, 0x49bc, 0xa0, 0x77, 0x3f, 0x7a, 0x02, 0xe4, 0x0a, 0xec);
DEFINE_GUID(BATTERY_TEMPERATURE_WMI_GUID, DEFINE_GUID(BATTERY_TEMPERATURE_WMI_GUID,
0x1a52a14d, 0xadce, 0x4a44, 0x9a, 0x3e, 0xc8, 0xd8, 0xf1, 0x5f, 0xf2, 0xc2); 0x1a52a14d, 0xadce, 0x4a44, 0x9a, 0x3e, 0xc8, 0xd8, 0xf1, 0x5f, 0xf2, 0xc2);
DEFINE_GUID(BATTERY_FULL_CHARGED_CAPACITY_WMI_GUID, DEFINE_GUID(BATTERY_FULL_CHARGED_CAPACITY_WMI_GUID,
0x40b40565, 0x96f7, 0x4435, 0x86, 0x94, 0x97, 0xe0, 0xe4, 0x39, 0x59, 0x05); 0x40b40565, 0x96f7, 0x4435, 0x86, 0x94, 0x97, 0xe0, 0xe4, 0x39, 0x59, 0x05);
DEFINE_GUID(BATTERY_CYCLE_COUNT_WMI_GUID, DEFINE_GUID(BATTERY_CYCLE_COUNT_WMI_GUID,
0xef98db24, 0x0014, 0x4c25, 0xa5, 0x0b, 0xc7, 0x24, 0xae, 0x5c, 0xd3, 0x71); 0xef98db24, 0x0014, 0x4c25, 0xa5, 0x0b, 0xc7, 0x24, 0xae, 0x5c, 0xd3, 0x71);
DEFINE_GUID(BATTERY_STATIC_DATA_WMI_GUID, DEFINE_GUID(BATTERY_STATIC_DATA_WMI_GUID,
0x05e1e463, 0xe4e2, 0x4ea9, 0x80, 0xcb, 0x9b, 0xd4, 0xb3, 0xca, 0x06, 0x55); 0x05e1e463, 0xe4e2, 0x4ea9, 0x80, 0xcb, 0x9b, 0xd4, 0xb3, 0xca, 0x06, 0x55);
DEFINE_GUID(BATTERY_STATUS_CHANGE_WMI_GUID, DEFINE_GUID(BATTERY_STATUS_CHANGE_WMI_GUID,
0xcddfa0c3, 0x7c5b, 0x4e43, 0xa0, 0x34, 0x05, 0x9f, 0xa5, 0xb8, 0x43, 0x64); 0xcddfa0c3, 0x7c5b, 0x4e43, 0xa0, 0x34, 0x05, 0x9f, 0xa5, 0xb8, 0x43, 0x64);
DEFINE_GUID(BATTERY_TAG_CHANGE_WMI_GUID, DEFINE_GUID(BATTERY_TAG_CHANGE_WMI_GUID,
0x5e1f6e19, 0x8786, 0x4d23, 0x94, 0xfc, 0x9e, 0x74, 0x6b, 0xd5, 0xd8, 0x88); 0x5e1f6e19, 0x8786, 0x4d23, 0x94, 0xfc, 0x9e, 0x74, 0x6b, 0xd5, 0xd8, 0x88);
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#ifndef _BATCLASS_
#define _BATCLASS_
/* BATTERY_INFORMATION.Capabilities constants */ /* BATTERY_INFORMATION.Capabilities constants */
#define BATTERY_SET_CHARGE_SUPPORTED 0x00000001 #define BATTERY_SET_CHARGE_SUPPORTED 0x00000001
@ -72,6 +61,56 @@ DEFINE_GUID(BATTERY_TAG_CHANGE_WMI_GUID,
#define BATTERY_CAPACITY_RELATIVE 0x40000000 #define BATTERY_CAPACITY_RELATIVE 0x40000000
#define BATTERY_SYSTEM_BATTERY 0x80000000 #define BATTERY_SYSTEM_BATTERY 0x80000000
/* BATTERY_INFORMATION.Capacity constants */
#define BATTERY_UNKNOWN_CAPACITY 0xFFFFFFFF
/* BatteryEstimatedTime constant */
#define BATTERY_UNKNOWN_TIME 0x80000000
#define MAX_BATTERY_STRING_SIZE 128
/* BATTERY_STATUS.PowerState flags */
#define BATTERY_POWER_ON_LINE 0x00000001
#define BATTERY_DISCHARGING 0x00000002
#define BATTERY_CHARGING 0x00000004
#define BATTERY_CRITICAL 0x00000008
/* BATTERY_STATUS.Voltage constant */
#define BATTERY_UNKNOWN_VOLTAGE 0xFFFFFFFF
/* BATTERY_STATUS.Rate constant */
#define BATTERY_UNKNOWN_RATE 0x80000000
#define IOCTL_BATTERY_QUERY_TAG \
CTL_CODE(FILE_DEVICE_BATTERY, 0x10, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_BATTERY_QUERY_INFORMATION \
CTL_CODE(FILE_DEVICE_BATTERY, 0x11, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_BATTERY_SET_INFORMATION \
CTL_CODE(FILE_DEVICE_BATTERY, 0x12, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_BATTERY_QUERY_STATUS \
CTL_CODE(FILE_DEVICE_BATTERY, 0x13, METHOD_BUFFERED, FILE_READ_ACCESS)
/* NTSTATUS possibly returned by BCLASS_QUERY_STATUS */
#define BATTERY_TAG_INVALID 0
typedef enum _BATTERY_QUERY_INFORMATION_LEVEL {
BatteryInformation = 0,
BatteryGranularityInformation,
BatteryTemperature,
BatteryEstimatedTime,
BatteryDeviceName,
BatteryManufactureDate,
BatteryManufactureName,
BatteryUniqueID,
BatterySerialNumber
} BATTERY_QUERY_INFORMATION_LEVEL;
typedef struct _BATTERY_QUERY_INFORMATION {
ULONG BatteryTag;
BATTERY_QUERY_INFORMATION_LEVEL InformationLevel;
LONG AtRate;
} BATTERY_QUERY_INFORMATION, *PBATTERY_QUERY_INFORMATION;
typedef struct _BATTERY_INFORMATION { typedef struct _BATTERY_INFORMATION {
ULONG Capabilities; ULONG Capabilities;
UCHAR Technology; UCHAR Technology;
@ -91,66 +130,12 @@ typedef struct _BATTERY_MANUFACTURE_DATE {
USHORT Year; USHORT Year;
} BATTERY_MANUFACTURE_DATE, *PBATTERY_MANUFACTURE_DATE; } BATTERY_MANUFACTURE_DATE, *PBATTERY_MANUFACTURE_DATE;
typedef struct _BATTERY_NOTIFY {
ULONG PowerState;
ULONG LowCapacity;
ULONG HighCapacity;
} BATTERY_NOTIFY, *PBATTERY_NOTIFY;
/* BATTERY_STATUS.PowerState flags */
#define BATTERY_POWER_ON_LINE 0x00000001
#define BATTERY_DISCHARGING 0x00000002
#define BATTERY_CHARGING 0x00000004
#define BATTERY_CRITICAL 0x00000008
/* BATTERY_STATUS.Voltage constant */
#define BATTERY_UNKNOWN_VOLTAGE 0xFFFFFFFF
/* BATTERY_STATUS.Rate constant */
#define BATTERY_UNKNOWN_RATE 0x80000000
typedef struct _BATTERY_STATUS {
ULONG PowerState;
ULONG Capacity;
ULONG Voltage;
LONG Rate;
} BATTERY_STATUS, *PBATTERY_STATUS;
/* BATTERY_INFORMATION.Capacity constants */
#define BATTERY_UNKNOWN_CAPACITY 0xFFFFFFFF
typedef enum _BATTERY_QUERY_INFORMATION_LEVEL {
BatteryInformation = 0,
BatteryGranularityInformation,
BatteryTemperature,
BatteryEstimatedTime,
BatteryDeviceName,
BatteryManufactureDate,
BatteryManufactureName,
BatteryUniqueID,
BatterySerialNumber
} BATTERY_QUERY_INFORMATION_LEVEL;
/* BatteryEstimatedTime constant */
#define BATTERY_UNKNOWN_TIME 0x80000000
/* NTSTATUS possibly returned by BCLASS_QUERY_STATUS */
#define BATTERY_TAG_INVALID 0
typedef struct _BATTERY_QUERY_INFORMATION {
ULONG BatteryTag;
BATTERY_QUERY_INFORMATION_LEVEL InformationLevel;
LONG AtRate;
} BATTERY_QUERY_INFORMATION, *PBATTERY_QUERY_INFORMATION;
typedef enum _BATTERY_SET_INFORMATION_LEVEL { typedef enum _BATTERY_SET_INFORMATION_LEVEL {
BatteryCriticalBias = 0, BatteryCriticalBias = 0,
BatteryCharge, BatteryCharge,
BatteryDischarge BatteryDischarge
} BATTERY_SET_INFORMATION_LEVEL; } BATTERY_SET_INFORMATION_LEVEL;
#define MAX_BATTERY_STRING_SIZE 128
typedef struct _BATTERY_SET_INFORMATION { typedef struct _BATTERY_SET_INFORMATION {
ULONG BatteryTag; ULONG BatteryTag;
BATTERY_SET_INFORMATION_LEVEL InformationLevel; BATTERY_SET_INFORMATION_LEVEL InformationLevel;
@ -165,58 +150,75 @@ typedef struct _BATTERY_WAIT_STATUS {
ULONG HighCapacity; ULONG HighCapacity;
} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS; } BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;
typedef struct _BATTERY_STATUS {
ULONG PowerState;
ULONG Capacity;
ULONG Voltage;
LONG Rate;
} BATTERY_STATUS, *PBATTERY_STATUS;
#define IOCTL_BATTERY_QUERY_TAG \ #ifndef _WINDOWS_H
CTL_CODE(FILE_DEVICE_BATTERY, 0x10, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_BATTERY_QUERY_INFORMATION \
CTL_CODE(FILE_DEVICE_BATTERY, 0x11, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_BATTERY_SET_INFORMATION \
CTL_CODE(FILE_DEVICE_BATTERY, 0x12, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_BATTERY_QUERY_STATUS \
CTL_CODE(FILE_DEVICE_BATTERY, 0x13, METHOD_BUFFERED, FILE_READ_ACCESS)
/* BATTERY_MINIPORT_INFO.XxxVersion */
#define BATTERY_CLASS_MAJOR_VERSION 0x0001
#define BATTERY_CLASS_MINOR_VERSION 0x0000
typedef NTSTATUS typedef NTSTATUS
(NTAPI *BCLASS_DISABLE_STATUS_NOTIFY)( (NTAPI BCLASS_QUERY_TAG_CALLBACK)(
IN PVOID Context); IN PVOID Context,
OUT PULONG BatteryTag);
typedef BCLASS_QUERY_TAG_CALLBACK *PBCLASS_QUERY_TAG_CALLBACK;
typedef NTSTATUS typedef NTSTATUS
(NTAPI *BCLASS_QUERY_INFORMATION)( (NTAPI BCLASS_QUERY_INFORMATION_CALLBACK)(
IN PVOID Context, IN PVOID Context,
IN ULONG BatteryTag, IN ULONG BatteryTag,
IN BATTERY_QUERY_INFORMATION_LEVEL Level, IN BATTERY_QUERY_INFORMATION_LEVEL Level,
IN LONG AtRate OPTIONAL, IN LONG AtRate,
OUT PVOID Buffer, OUT PVOID Buffer,
IN ULONG BufferLength, IN ULONG BufferLength,
OUT PULONG ReturnedLength); OUT PULONG ReturnedLength);
typedef BCLASS_QUERY_INFORMATION_CALLBACK *PBCLASS_QUERY_INFORMATION_CALLBACK;
typedef NTSTATUS typedef NTSTATUS
(NTAPI *BCLASS_QUERY_STATUS)( (NTAPI BCLASS_QUERY_STATUS_CALLBACK)(
IN PVOID Context, IN PVOID Context,
IN ULONG BatteryTag, IN ULONG BatteryTag,
OUT PBATTERY_STATUS BatteryStatus); OUT PBATTERY_STATUS BatteryStatus);
typedef BCLASS_QUERY_STATUS_CALLBACK *PBCLASS_QUERY_STATUS_CALLBACK;
typedef struct _BATTERY_NOTIFY {
ULONG PowerState;
ULONG LowCapacity;
ULONG HighCapacity;
} BATTERY_NOTIFY, *PBATTERY_NOTIFY;
typedef NTSTATUS typedef NTSTATUS
(NTAPI *BCLASS_QUERY_TAG)( (NTAPI BCLASS_SET_STATUS_NOTIFY_CALLBACK)(
IN PVOID Context, IN PVOID Context,
OUT PULONG BatteryTag); IN ULONG BatteryTag,
IN PBATTERY_NOTIFY BatteryNotify);
typedef BCLASS_SET_STATUS_NOTIFY_CALLBACK *PBCLASS_SET_STATUS_NOTIFY_CALLBACK;
typedef NTSTATUS typedef NTSTATUS
(NTAPI *BCLASS_SET_INFORMATION)( (NTAPI BCLASS_SET_INFORMATION_CALLBACK)(
IN PVOID Context, IN PVOID Context,
IN ULONG BatteryTag, IN ULONG BatteryTag,
IN BATTERY_SET_INFORMATION_LEVEL Level, IN BATTERY_SET_INFORMATION_LEVEL Level,
IN PVOID Buffer OPTIONAL); IN PVOID Buffer OPTIONAL);
typedef BCLASS_SET_INFORMATION_CALLBACK *PBCLASS_SET_INFORMATION_CALLBACK;
typedef NTSTATUS typedef NTSTATUS
(NTAPI *BCLASS_SET_STATUS_NOTIFY)( (NTAPI BCLASS_DISABLE_STATUS_NOTIFY_CALLBACK)(
IN PVOID Context, IN PVOID Context);
IN ULONG BatteryTag, typedef BCLASS_DISABLE_STATUS_NOTIFY_CALLBACK *PBCLASS_DISABLE_STATUS_NOTIFY_CALLBACK;
IN PBATTERY_NOTIFY BatteryNotify);
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;
typedef struct _BATTERY_MINIPORT_INFO { typedef struct _BATTERY_MINIPORT_INFO {
USHORT MajorVersion; USHORT MajorVersion;
@ -232,10 +234,73 @@ typedef struct _BATTERY_MINIPORT_INFO {
PUNICODE_STRING DeviceName; PUNICODE_STRING DeviceName;
} BATTERY_MINIPORT_INFO, *PBATTERY_MINIPORT_INFO; } BATTERY_MINIPORT_INFO, *PBATTERY_MINIPORT_INFO;
/* BATTERY_MINIPORT_INFO.XxxVersion */ #if (NTDDI_VERSION >= NTDDI_WINXP)
#define BATTERY_CLASS_MAJOR_VERSION 0x0001
#define BATTERY_CLASS_MINOR_VERSION 0x0000
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, *PBATTERY_WMI_STATUS;
typedef struct _BATTERY_WMI_RUNTIME {
ULONG Tag;
ULONG EstimatedRuntime;
} BATTERY_WMI_RUNTIME, *PBATTERY_WMI_RUNTIME;
typedef struct _BATTERY_WMI_TEMPERATURE {
ULONG Tag;
ULONG Temperature;
} BATTERY_WMI_TEMPERATURE, *PBATTERY_WMI_TEMPERATURE;
typedef struct _BATTERY_WMI_FULL_CHARGED_CAPACITY {
ULONG Tag;
ULONG FullChargedCapacity;
} BATTERY_WMI_FULL_CHARGED_CAPACITY, *PBATTERY_WMI_FULL_CHARGED_CAPACITY;
typedef struct _BATTERY_WMI_CYCLE_COUNT {
ULONG Tag;
ULONG CycleCount;
} BATTERY_WMI_CYCLE_COUNT, *PBATTERY_WMI_CYCLE_COUNT;
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, *PBATTERY_WMI_STATIC_DATA;
typedef struct _BATTERY_WMI_STATUS_CHANGE {
ULONG Tag;
BOOLEAN PowerOnline;
BOOLEAN Charging;
BOOLEAN Discharging;
BOOLEAN Critical;
} BATTERY_WMI_STATUS_CHANGE, *PBATTERY_WMI_STATUS_CHANGE;
typedef struct _BATTERY_TAG_CHANGE {
ULONG Tag;
} BATTERY_TAG_CHANGE, *PBATTERY_TAG_CHANGE;
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
#if defined(_BATTERYCLASS_)
#define BCLASSAPI
#else
#define BCLASSAPI DECLSPEC_IMPORT
#endif
BCLASSAPI BCLASSAPI
NTSTATUS NTSTATUS
@ -249,19 +314,7 @@ NTSTATUS
NTAPI NTAPI
BatteryClassIoctl( BatteryClassIoctl(
IN PVOID ClassData, IN PVOID ClassData,
IN PIRP Irp); IN OUT PIRP Irp);
BCLASSAPI
NTSTATUS
NTAPI
BatteryClassQueryWmiDataBlock(
IN PVOID ClassData,
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN ULONG GuidIndex,
IN OUT PULONG InstanceLengthArray,
IN ULONG OutBufferSize,
OUT PUCHAR Buffer);
BCLASSAPI BCLASSAPI
NTSTATUS NTSTATUS
@ -269,6 +322,20 @@ NTAPI
BatteryClassStatusNotify( BatteryClassStatusNotify(
IN PVOID ClassData); IN PVOID ClassData);
#if (NTDDI_VERSION >= NTDDI_WINXP)
BCLASSAPI
NTSTATUS
NTAPI
BatteryClassQueryWmiDataBlock(
IN PVOID ClassData,
IN OUT PDEVICE_OBJECT DeviceObject,
IN OUT PIRP Irp,
IN ULONG GuidIndex,
OUT PULONG InstanceLengthArray,
IN ULONG OutBufferSize,
OUT PUCHAR Buffer OPTIONAL);
BCLASSAPI BCLASSAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
@ -276,17 +343,21 @@ BatteryClassSystemControl(
IN PVOID ClassData, IN PVOID ClassData,
IN PVOID WmiLibContext, /* PWMILIB_CONTEXT */ IN PVOID WmiLibContext, /* PWMILIB_CONTEXT */
IN PDEVICE_OBJECT DeviceObject, IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp, IN OUT PIRP Irp,
OUT PVOID Disposition); /* PSYSCTL_IRP_DISPOSITION */ OUT PVOID Disposition); /* PSYSCTL_IRP_DISPOSITION */
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
BCLASSAPI BCLASSAPI
NTSTATUS NTSTATUS
NTAPI NTAPI
BatteryClassUnload( BatteryClassUnload(
IN PVOID ClassData); IN PVOID ClassData);
#endif /* _WINDOWS_H */
#endif /* _BATCLASS_ */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* __BATCLASS_H */

View file

@ -3218,12 +3218,14 @@ typedef struct _IO_COUNTERS {
ULONGLONG WriteTransferCount; ULONGLONG WriteTransferCount;
ULONGLONG OtherTransferCount; ULONGLONG OtherTransferCount;
} IO_COUNTERS, *PIO_COUNTERS; } IO_COUNTERS, *PIO_COUNTERS;
typedef struct _FILE_NOTIFY_INFORMATION { typedef struct _FILE_NOTIFY_INFORMATION {
DWORD NextEntryOffset; DWORD NextEntryOffset;
DWORD Action; DWORD Action;
DWORD FileNameLength; DWORD FileNameLength;
WCHAR FileName[1]; WCHAR FileName[1];
} FILE_NOTIFY_INFORMATION,*PFILE_NOTIFY_INFORMATION; } FILE_NOTIFY_INFORMATION,*PFILE_NOTIFY_INFORMATION;
typedef struct _TAPE_ERASE { typedef struct _TAPE_ERASE {
DWORD Type; DWORD Type;
BOOLEAN Immediate; BOOLEAN Immediate;
@ -3283,6 +3285,7 @@ typedef struct _TAPE_CREATE_PARTITION {
DWORD Count; DWORD Count;
DWORD Size; DWORD Size;
} TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION; } TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION;
typedef struct _MEMORY_BASIC_INFORMATION { typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress; PVOID BaseAddress;
PVOID AllocationBase; PVOID AllocationBase;
@ -3292,6 +3295,7 @@ typedef struct _MEMORY_BASIC_INFORMATION {
DWORD Protect; DWORD Protect;
DWORD Type; DWORD Type;
} MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION; } MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION;
typedef struct _MESSAGE_RESOURCE_ENTRY { typedef struct _MESSAGE_RESOURCE_ENTRY {
WORD Length; WORD Length;
WORD Flags; WORD Flags;
@ -4367,6 +4371,7 @@ typedef enum _JOBOBJECTINFOCLASS {
JobObjectBasicAndIoAccountingInformation, JobObjectBasicAndIoAccountingInformation,
JobObjectExtendedLimitInformation, JobObjectExtendedLimitInformation,
JobObjectJobSetInformation, JobObjectJobSetInformation,
JobObjectGroupInformation,
MaxJobObjectInfoClass MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS; } JOBOBJECTINFOCLASS;
@ -4386,6 +4391,7 @@ typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
DWORD ActiveProcesses; DWORD ActiveProcesses;
DWORD TotalTerminatedProcesses; DWORD TotalTerminatedProcesses;
} JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,*PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; } JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,*PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {
LARGE_INTEGER PerProcessUserTimeLimit; LARGE_INTEGER PerProcessUserTimeLimit;
LARGE_INTEGER PerJobUserTimeLimit; LARGE_INTEGER PerJobUserTimeLimit;
@ -4457,7 +4463,7 @@ typedef enum _LATENCY_TIME {
} LATENCY_TIME, *PLATENCY_TIME; } LATENCY_TIME, *PLATENCY_TIME;
typedef enum _SYSTEM_POWER_STATE { typedef enum _SYSTEM_POWER_STATE {
PowerSystemUnspecified, PowerSystemUnspecified = 0,
PowerSystemWorking, PowerSystemWorking,
PowerSystemSleeping1, PowerSystemSleeping1,
PowerSystemSleeping2, PowerSystemSleeping2,
@ -4466,10 +4472,11 @@ typedef enum _SYSTEM_POWER_STATE {
PowerSystemShutdown, PowerSystemShutdown,
PowerSystemMaximum PowerSystemMaximum
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
#define POWER_SYSTEM_MAXIMUM PowerSystemMaximum #define POWER_SYSTEM_MAXIMUM PowerSystemMaximum
typedef enum { typedef enum {
PowerActionNone, PowerActionNone = 0,
PowerActionReserved, PowerActionReserved,
PowerActionSleep, PowerActionSleep,
PowerActionHibernate, PowerActionHibernate,
@ -4480,7 +4487,7 @@ typedef enum {
} POWER_ACTION, *PPOWER_ACTION; } POWER_ACTION, *PPOWER_ACTION;
typedef enum _DEVICE_POWER_STATE { typedef enum _DEVICE_POWER_STATE {
PowerDeviceUnspecified, PowerDeviceUnspecified = 0,
PowerDeviceD0, PowerDeviceD0,
PowerDeviceD1, PowerDeviceD1,
PowerDeviceD2, PowerDeviceD2,
@ -4488,10 +4495,12 @@ typedef enum _DEVICE_POWER_STATE {
PowerDeviceMaximum PowerDeviceMaximum
} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
#if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_)
typedef struct { typedef struct {
DWORD Granularity; DWORD Granularity;
DWORD Capacity; DWORD Capacity;
} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
#endif
typedef struct _POWER_ACTION_POLICY { typedef struct _POWER_ACTION_POLICY {
POWER_ACTION Action; POWER_ACTION Action;
@ -4620,6 +4629,7 @@ typedef struct _PROCESSOR_POWER_INFORMATION {
} PROCESSOR_POWER_INFORMATION, *PPROCESSOR_POWER_INFORMATION; } PROCESSOR_POWER_INFORMATION, *PPROCESSOR_POWER_INFORMATION;
typedef DWORD EXECUTION_STATE; typedef DWORD EXECUTION_STATE;
typedef enum _POWER_INFORMATION_LEVEL { typedef enum _POWER_INFORMATION_LEVEL {
SystemPowerPolicyAc, SystemPowerPolicyAc,
SystemPowerPolicyDc, SystemPowerPolicyDc,
@ -4643,7 +4653,37 @@ typedef enum _POWER_INFORMATION_LEVEL {
ProcessorPowerPolicyDc, ProcessorPowerPolicyDc,
VerifyProcessorPowerPolicyAc, VerifyProcessorPowerPolicyAc,
VerifyProcessorPowerPolicyDc, VerifyProcessorPowerPolicyDc,
ProcessorPowerPolicyCurrent ProcessorPowerPolicyCurrent,
SystemPowerStateLogging,
SystemPowerLoggingEntry,
SetPowerSettingValue,
NotifyUserPowerSetting,
PowerInformationLevelUnused0,
PowerInformationLevelUnused1,
SystemVideoState,
TraceApplicationPowerMessage,
TraceApplicationPowerMessageEnd,
ProcessorPerfStates,
ProcessorIdleStates,
ProcessorCap,
SystemWakeSource,
SystemHiberFileInformation,
TraceServicePowerMessage,
ProcessorLoad,
PowerShutdownNotification,
MonitorCapabilities,
SessionPowerInit,
SessionDisplayState,
PowerRequestCreate,
PowerRequestAction,
GetPowerRequestList,
ProcessorInformationEx,
NotifyUserModeLegacyPowerEvent,
GroupPark,
ProcessorIdleDomains,
WakeTimerList,
SystemHiberFileSize,
PowerInformationLevelMaximum
} POWER_INFORMATION_LEVEL; } POWER_INFORMATION_LEVEL;
#if 1 /* (WIN32_WINNT >= 0x0500) */ #if 1 /* (WIN32_WINNT >= 0x0500) */
@ -4843,7 +4883,9 @@ typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP {
RelationProcessorCore, RelationProcessorCore,
RelationNumaNode, RelationNumaNode,
RelationCache, RelationCache,
RelationProcessorPackage RelationProcessorPackage,
RelationGroup,
RelationAll = 0xffff
} LOGICAL_PROCESSOR_RELATIONSHIP; } LOGICAL_PROCESSOR_RELATIONSHIP;
#define CACHE_FULLY_ASSOCIATIVE 0xFF #define CACHE_FULLY_ASSOCIATIVE 0xFF
@ -4859,7 +4901,7 @@ typedef struct _CACHE_DESCRIPTOR {
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION { typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
ULONG_PTR ProcessorMask; ULONG_PTR ProcessorMask;
LOGICAL_PROCESSOR_RELATIONSHIP Relationship; LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
union { _ANONYMOUS_UNION union {
struct { struct {
BYTE Flags; BYTE Flags;
} ProcessorCore; } ProcessorCore;
@ -4868,7 +4910,7 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
} NumaNode; } NumaNode;
CACHE_DESCRIPTOR Cache; CACHE_DESCRIPTOR Cache;
ULONGLONG Reserved[2]; ULONGLONG Reserved[2];
}; } DUMMYUNIONNAME;
} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION; } SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
NTSYSAPI NTSYSAPI