diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 268705d27..998e21c0d 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,34 @@ +2003-03-26 Danny Smith + + * include/ddk/batclass.h (BATTERY_REPORTING_SCALE) + Move structure from here... + * include/winnt.h (BATTERY_REPORTING_SCALE): To here. + + * include/ddk/ntapi.h (JOBOBJECT_*): + Remove structures and enums definitions. + (JOB_OBJECT*): Move defines from here... + * include/winnt.h (JOB_OBJECT* ): To here. + + * include/ddk/ntpoapi.h (LATENCY_TIME, POWER_ACTION_POLICY, + SYSTEM_POWER_LEVEL, SYSTEM_POWER_POLICY, + PROCESSOR_POWER_POLICY_INFO, PROCESSOR_POWER_POLICY, + ADMINISTRATOR_POWER_POLICY, SYSTEM_POWER_INFORMATION, + PROCESSOR_POWER_INFORMATION, SYSTEM_BATTERY_STATE, + SYSTEM_POWER_CAPABILITIES): Move enums, structures + and associated defines from here ... + * include/winnt.h: (LATENCY_TIME, POWER_ACTION_POLICY, + SYSTEM_POWER_LEVEL, SYSTEM_POWER_POLICY, + PROCESSOR_POWER_POLICY_INFO, PROCESSOR_POWER_POLICY, + ADMINISTRATOR_POWER_POLICY, SYSTEM_POWER_INFORMATION, + PROCESSOR_POWER_INFORMATION, SYSTEM_BATTERY_STATE, + SYSTEM_POWER_CAPABILITIES):To here. + + * include/ddk/winddk.h (DEVICE_POWER_STATE, + SYSTEM_POWER_STATE, POWER_ACTION): Move enums + from here... + * include/winnt.h (DEVICE_POWER_STATE, + SYSTEM_POWER_STATE, POWER_ACTION): To here. + 2003-03-19 Danny Smith *lib/ndis.def (NdisAllocateMemory): Correct stdcall suffix. diff --git a/winsup/w32api/include/ddk/batclass.h b/winsup/w32api/include/ddk/batclass.h index f0eb21ef4..1beef4911 100644 --- a/winsup/w32api/include/ddk/batclass.h +++ b/winsup/w32api/include/ddk/batclass.h @@ -105,11 +105,6 @@ typedef struct _BATTERY_NOTIFY { ULONG HighCapacity; } BATTERY_NOTIFY, *PBATTERY_NOTIFY; -typedef struct _BATTERY_REPORTING_SCALE { - ULONG Granularity; - ULONG Capacity; -} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; - /* BATTERY_STATUS.PowerState flags */ #define BATTERY_POWER_ON_LINE 0x00000001 #define BATTERY_DISCHARGING 0x00000002 @@ -129,7 +124,6 @@ typedef struct _BATTERY_STATUS { LONG Rate; } BATTERY_STATUS, *PBATTERY_STATUS; - /* BATTERY_INFORMATION.Capacity constants */ #define BATTERY_UNKNOWN_CAPACITY 0xFFFFFFFF diff --git a/winsup/w32api/include/ddk/ntapi.h b/winsup/w32api/include/ddk/ntapi.h index 7d7ec2a78..6911109b1 100644 --- a/winsup/w32api/include/ddk/ntapi.h +++ b/winsup/w32api/include/ddk/ntapi.h @@ -1615,7 +1615,6 @@ typedef struct _DEBUG_LOCK_INFORMATION { - /* Jobs */ NTOSAPI @@ -1648,18 +1647,6 @@ ZwAssignProcessToJobObject( IN HANDLE JobHandle, IN HANDLE ProcessHandle); -typedef enum _JOBOBJECTINFOCLASS { - JobObjectBasicAccountingInformation = 1, - JobObjectBasicLimitInformation, - JobObjectBasicProcessIdList, - JobObjectBasicUIRestrictions, - JobObjectSecurityLimitInformation, - JobObjectEndOfJobTimeInformation, - JobObjectAssociateCompletionPortInformation, - JobObjectBasicAndIoAccountingInformation, - JobObjectExtendedLimitInformation -} JOBOBJECTINFOCLASS; - NTOSAPI NTSTATUS NTAPI @@ -1679,117 +1666,6 @@ ZwSetInformationJobObject( IN PVOID JobInformation, IN ULONG JobInformationLength); -typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { - LARGE_INTEGER TotalUserTime; - LARGE_INTEGER TotalKernelTime; - LARGE_INTEGER ThisPeriodTotalUserTime; - LARGE_INTEGER ThisPeriodTotalKernelTime; - ULONG TotalPageFaultCount; - ULONG TotalProcesses; - ULONG ActiveProcesses; - ULONG TotalTerminatedProcesses; -} JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; - -/* JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants */ -#define JOB_OBJECT_LIMIT_WORKINGSET 0x0001 -#define JOB_OBJECT_LIMIT_PROCESS_TIME 0x0002 -#define JOB_OBJECT_LIMIT_JOB_TIME 0x0004 -#define JOB_OBJECT_LIMIT_ACTIVE_PROCESS 0x0008 -#define JOB_OBJECT_LIMIT_AFFINITY 0x0010 -#define JOB_OBJECT_LIMIT_PRIORITY_CLASS 0x0020 -#define JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME 0x0040 -#define JOB_OBJECT_LIMIT_SCHEDULING_CLASS 0x0080 -#define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x0100 -#define JOB_OBJECT_LIMIT_JOB_MEMORY 0x0200 -#define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x0400 -#define JOB_OBJECT_BREAKAWAY_OK 0x0800 -#define JOB_OBJECT_SILENT_BREAKAWAY 0x1000 - -typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION { - LARGE_INTEGER PerProcessUserTimeLimit; - LARGE_INTEGER PerJobUserTimeLimit; - ULONG LimitFlags; - ULONG MinimumWorkingSetSize; - ULONG MaximumWorkingSetSize; - ULONG ActiveProcessLimit; - ULONG Affinity; - ULONG PriorityClass; - ULONG SchedulingClass; -} JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION; - -typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { - ULONG NumberOfAssignedProcesses; - ULONG NumberOfProcessIdsInList; - ULONG_PTR ProcessIdList[1]; -} JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; - -/* JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants */ -#define JOB_OBJECT_UILIMIT_HANDLES 0x0001 -#define JOB_OBJECT_UILIMIT_READCLIPBOARD 0x0002 -#define JOB_OBJECT_UILIMIT_WRITECLIPBOARD 0x0004 -#define JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS 0x0008 -#define JOB_OBJECT_UILIMIT_DISPLAYSETTINGS 0x0010 -#define JOB_OBJECT_UILIMIT_GLOBALATOMS 0x0020 -#define JOB_OBJECT_UILIMIT_DESKTOP 0x0040 -#define JOB_OBJECT_UILIMIT_EXITWINDOWS 0x0080 - -typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { - ULONG UIRestrictionsClass; -} JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS; - -/* JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants */ -#define JOB_OBJECT_SECURITY_NO_ADMIN 0x0001 -#define JOB_OBJECT_SECURITY_RESTRICTED_TOKEN 0x0002 -#define JOB_OBJECT_SECURITY_ONLY_TOKEN 0x0004 -#define JOB_OBJECT_SECURITY_FILTER_TOKENS 0x0008 - -typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { - ULONG SecurityLimitFlags; - HANDLE JobToken; - PTOKEN_GROUPS SidsToDisable; - PTOKEN_PRIVILEGES PrivilegesToDelete; - PTOKEN_GROUPS RestrictedSids; -} JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION; - -/* JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants */ -#define JOB_OBJECT_TERMINATE_AT_END_OF_JOB 0 -#define JOB_OBJECT_POST_AT_END_OF_JOB 1 - -typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { - ULONG EndOfJobTimeAction; -} JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; - -#define JOB_OBJECT_MSG_END_OF_JOB_TIME 1 -#define JOB_OBJECT_MSG_END_OF_PROCESS_TIME 2 -#define JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT 3 -#define JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO 4 -#define JOB_OBJECT_MSG_NEW_PROCESS 6 -#define JOB_OBJECT_MSG_EXIT_PROCESS 7 -#define JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS 8 -#define JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT 9 -#define JOB_OBJECT_MSG_JOB_MEMORY_LIMIT 10 - -typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { - PVOID CompletionKey; - HANDLE CompletionPort; -} JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; - -typedef struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { - JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; - IO_COUNTERS IoInfo; -} JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; - -typedef struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION { - JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation; - IO_COUNTERS IoInfo; - ULONG ProcessMemoryLimit; - ULONG JobMemoryLimit; - ULONG PeakProcessMemoryUsed; - ULONG PeakJobMemoryUsed; -} JOBOBJECT_EXTENDED_LIMIT_INFORMATION, *PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; - - - /* Tokens */ diff --git a/winsup/w32api/include/ddk/ntpoapi.h b/winsup/w32api/include/ddk/ntpoapi.h index 2ae9480f8..d1cdc64c5 100644 --- a/winsup/w32api/include/ddk/ntpoapi.h +++ b/winsup/w32api/include/ddk/ntpoapi.h @@ -36,19 +36,6 @@ extern "C" { #include "ntddk.h" #include "batclass.h" - -#define ES_SYSTEM_REQUIRED 0x00000001 -#define ES_DISPLAY_REQUIRED 0x00000002 -#define ES_USER_PRESENT 0x00000004 -#define ES_CONTINUOUS 0x80000000 - -typedef enum _LATENCY_TIME { - LT_DONT_CARE, - LT_LOWEST_LATENCY -} LATENCY_TIME, *PLATENCY_TIME; - -#define POWER_SYSTEM_MAXIMUM PowerSystemMaximum - typedef enum _POWER_INFORMATION_LEVEL { SystemPowerPolicyAc, SystemPowerPolicyDc, @@ -196,107 +183,6 @@ typedef struct _PROCESSOR_STATE_HANDLER2 { PROCESSOR_PERF_LEVEL PerfLevel[1]; } PROCESSOR_STATE_HANDLER2, *PPROCESSOR_STATE_HANDLER2; -/* POWER_ACTION_POLICY.Flags constants */ -#define POWER_ACTION_QUERY_ALLOWED 0x00000001 -#define POWER_ACTION_UI_ALLOWED 0x00000002 -#define POWER_ACTION_OVERRIDE_APPS 0x00000004 -#define POWER_ACTION_LIGHTEST_FIRST 0x10000000 -#define POWER_ACTION_LOCK_CONSOLE 0x20000000 -#define POWER_ACTION_DISABLE_WAKES 0x40000000 -#define POWER_ACTION_CRITICAL 0x80000000 - -/* POWER_ACTION_POLICY.EventCode constants */ -#define POWER_LEVEL_USER_NOTIFY_TEXT 0x00000001 -#define POWER_LEVEL_USER_NOTIFY_SOUND 0x00000002 -#define POWER_LEVEL_USER_NOTIFY_EXEC 0x00000004 -#define POWER_USER_NOTIFY_BUTTON 0x00000008 -#define POWER_USER_NOTIFY_SHUTDOWN 0x00000010 -#define POWER_FORCE_TRIGGER_RESET 0x80000000 - -typedef struct _POWER_ACTION_POLICY { - POWER_ACTION Action; - ULONG Flags; - ULONG EventCode; -} POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; - -typedef struct _SYSTEM_POWER_LEVEL { - BOOLEAN Enable; - UCHAR Spare[3]; - ULONG BatteryLevel; - POWER_ACTION_POLICY PowerPolicy; - SYSTEM_POWER_STATE MinSystemState; -} SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; - -#define DISCHARGE_POLICY_CRITICAL 0 -#define DISCHARGE_POLICY_LOW 1 -#define NUM_DISCHARGE_POLICIES 4 - -#define PO_THROTTLE_NONE 0 -#define PO_THROTTLE_CONSTANT 1 -#define PO_THROTTLE_DEGRADE 2 -#define PO_THROTTLE_ADAPTIVE 3 -#define PO_THROTTLE_MAXIMUM 4 - -typedef struct _SYSTEM_POWER_POLICY { - ULONG Revision; - POWER_ACTION_POLICY PowerButton; - POWER_ACTION_POLICY SleepButton; - POWER_ACTION_POLICY LidClose; - SYSTEM_POWER_STATE LidOpenWake; - ULONG Reserved; - POWER_ACTION_POLICY Idle; - ULONG IdleTimeout; - UCHAR IdleSensitivity; - UCHAR DynamicThrottle; - UCHAR Spare2[2]; - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - SYSTEM_POWER_STATE ReducedLatencySleep; - ULONG WinLogonFlags; - ULONG Spare3; - ULONG DozeS4Timeout; - ULONG BroadcastCapacityResolution; - SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; - ULONG VideoTimeout; - BOOLEAN VideoDimDisplay; - ULONG VideoReserved[3]; - ULONG SpindownTimeout; - BOOLEAN OptimizeForPower; - UCHAR FanThrottleTolerance; - UCHAR ForcedThrottle; - UCHAR MinThrottle; - POWER_ACTION_POLICY OverThrottled; -} SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; - -typedef struct _PROCESSOR_POWER_POLICY_INFO { - ULONG TimeCheck; - ULONG DemoteLimit; - ULONG PromoteLimit; - UCHAR DemotePercent; - UCHAR PromotePercent; - UCHAR Spare[2]; - ULONG AllowDemotion : 1; - ULONG AllowPromotion : 1; - ULONG Reserved : 30; -} PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; - -typedef struct _PROCESSOR_POWER_POLICY { - ULONG Revision; - UCHAR DynamicThrottle; - UCHAR Spare[3]; - ULONG Reserved; - ULONG PolicyCount; - PROCESSOR_POWER_POLICY_INFO Policy[3]; -} PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY; - -typedef struct _ADMINISTRATOR_POWER_POLICY { - SYSTEM_POWER_STATE MinSleep; - SYSTEM_POWER_STATE MaxSleep; - ULONG MinVideoTimeout; - ULONG MaxVideoTimeout; - ULONG MinSpindownTimeout; - ULONG MaxSpindownTimeout; -} ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY; NTOSAPI NTSTATUS @@ -355,13 +241,6 @@ NtRequestDeviceWakeup( #define WINLOGON_LOCK_ON_SLEEP 0x00000001 -typedef struct _SYSTEM_POWER_INFORMATION { - ULONG MaxIdlenessAllowed; - ULONG Idleness; - ULONG TimeRemaining; - UCHAR CoolingMode; -} SYSTEM_POWER_INFORMATION, *PSYSTEM_POWER_INFORMATION; - typedef struct _PROCESSOR_POWER_INFORMATION { ULONG Number; ULONG MaxMhz; @@ -371,50 +250,6 @@ typedef struct _PROCESSOR_POWER_INFORMATION { ULONG CurrentIdleState; } PROCESSOR_POWER_INFORMATION, *PPROCESSOR_POWER_INFORMATION; -typedef struct _SYSTEM_BATTERY_STATE { - BOOLEAN AcOnLine; - BOOLEAN BatteryPresent; - BOOLEAN Charging; - BOOLEAN Discharging; - BOOLEAN Spare1[4]; - ULONG MaxCapacity; - ULONG RemainingCapacity; - ULONG Rate; - ULONG EstimatedTime; - ULONG DefaultAlert1; - ULONG DefaultAlert2; -} SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE; - -typedef struct _SYSTEM_POWER_CAPABILITIES { - BOOLEAN PowerButtonPresent; - BOOLEAN SleepButtonPresent; - BOOLEAN LidPresent; - BOOLEAN SystemS1; - BOOLEAN SystemS2; - BOOLEAN SystemS3; - BOOLEAN SystemS4; - BOOLEAN SystemS5; - BOOLEAN HiberFilePresent; - BOOLEAN FullWake; - BOOLEAN VideoDimPresent; - BOOLEAN ApmPresent; - BOOLEAN UpsPresent; - BOOLEAN ThermalControl; - BOOLEAN ProcessorThrottle; - UCHAR ProcessorMinThrottle; - UCHAR ProcessorMaxThrottle; - UCHAR spare2[4]; - BOOLEAN DiskSpinDown; - UCHAR spare3[8]; - BOOLEAN SystemBatteriesPresent; - BOOLEAN BatteriesAreShortTerm; - BATTERY_REPORTING_SCALE BatteryScale[3]; - SYSTEM_POWER_STATE AcOnLineWake; - SYSTEM_POWER_STATE SoftLidWake; - SYSTEM_POWER_STATE RtcWake; - SYSTEM_POWER_STATE MinDeviceWakeState; - SYSTEM_POWER_STATE DefaultLowLatencyWake; -} SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES; #pragma pack(pop) diff --git a/winsup/w32api/include/ddk/winddk.h b/winsup/w32api/include/ddk/winddk.h index 29dfbbfe9..e02c56e9a 100644 --- a/winsup/w32api/include/ddk/winddk.h +++ b/winsup/w32api/include/ddk/winddk.h @@ -562,26 +562,6 @@ typedef ULONG DDKAPI IN ULONG Offset, IN ULONG Length); -typedef enum _DEVICE_POWER_STATE { - PowerDeviceUnspecified, - PowerDeviceD0, - PowerDeviceD1, - PowerDeviceD2, - PowerDeviceD3, - PowerDeviceMaximum -} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; - -typedef enum _SYSTEM_POWER_STATE { - PowerSystemUnspecified, - PowerSystemWorking, - PowerSystemSleeping1, - PowerSystemSleeping2, - PowerSystemSleeping3, - PowerSystemHibernate, - PowerSystemShutdown, - PowerSystemMaximum -} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; - typedef union _POWER_STATE { SYSTEM_POWER_STATE SystemState; DEVICE_POWER_STATE DeviceState; @@ -592,17 +572,6 @@ typedef enum _POWER_STATE_TYPE { DevicePowerState } POWER_STATE_TYPE, *PPOWER_STATE_TYPE; -typedef enum { - PowerActionNone, - PowerActionReserved, - PowerActionSleep, - PowerActionHibernate, - PowerActionShutdown, - PowerActionShutdownReset, - PowerActionShutdownOff, - PowerActionWarmEject -} POWER_ACTION, *PPOWER_ACTION; - typedef struct _BUS_INTERFACE_STANDARD { USHORT Size; USHORT Version; diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h index a6160d9ff..e47dc6def 100644 --- a/winsup/w32api/include/winnt.h +++ b/winsup/w32api/include/winnt.h @@ -2658,6 +2658,51 @@ typedef union _FILE_SEGMENT_ELEMENT { ULONGLONG Alignment; }FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; +/* JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants */ +#define JOB_OBJECT_LIMIT_WORKINGSET 0x0001 +#define JOB_OBJECT_LIMIT_PROCESS_TIME 0x0002 +#define JOB_OBJECT_LIMIT_JOB_TIME 0x0004 +#define JOB_OBJECT_LIMIT_ACTIVE_PROCESS 0x0008 +#define JOB_OBJECT_LIMIT_AFFINITY 0x0010 +#define JOB_OBJECT_LIMIT_PRIORITY_CLASS 0x0020 +#define JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME 0x0040 +#define JOB_OBJECT_LIMIT_SCHEDULING_CLASS 0x0080 +#define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x0100 +#define JOB_OBJECT_LIMIT_JOB_MEMORY 0x0200 +#define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x0400 +#define JOB_OBJECT_BREAKAWAY_OK 0x0800 +#define JOB_OBJECT_SILENT_BREAKAWAY 0x1000 + +/* JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants */ +#define JOB_OBJECT_UILIMIT_HANDLES 0x0001 +#define JOB_OBJECT_UILIMIT_READCLIPBOARD 0x0002 +#define JOB_OBJECT_UILIMIT_WRITECLIPBOARD 0x0004 +#define JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS 0x0008 +#define JOB_OBJECT_UILIMIT_DISPLAYSETTINGS 0x0010 +#define JOB_OBJECT_UILIMIT_GLOBALATOMS 0x0020 +#define JOB_OBJECT_UILIMIT_DESKTOP 0x0040 +#define JOB_OBJECT_UILIMIT_EXITWINDOWS 0x0080 + +/* JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants */ +#define JOB_OBJECT_SECURITY_NO_ADMIN 0x0001 +#define JOB_OBJECT_SECURITY_RESTRICTED_TOKEN 0x0002 +#define JOB_OBJECT_SECURITY_ONLY_TOKEN 0x0004 +#define JOB_OBJECT_SECURITY_FILTER_TOKENS 0x0008 + +/* JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants */ +#define JOB_OBJECT_TERMINATE_AT_END_OF_JOB 0 +#define JOB_OBJECT_POST_AT_END_OF_JOB 1 + +#define JOB_OBJECT_MSG_END_OF_JOB_TIME 1 +#define JOB_OBJECT_MSG_END_OF_PROCESS_TIME 2 +#define JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT 3 +#define JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO 4 +#define JOB_OBJECT_MSG_NEW_PROCESS 6 +#define JOB_OBJECT_MSG_EXIT_PROCESS 7 +#define JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS 8 +#define JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT 9 +#define JOB_OBJECT_MSG_JOB_MEMORY_LIMIT 10 + typedef enum _JOBOBJECTINFOCLASS { JobObjectBasicAccountingInformation = 1, JobObjectBasicLimitInformation, @@ -2730,6 +2775,214 @@ typedef struct _JOBOBJECT_JOBSET_INFORMATION { DWORD MemberLevel; } JOBOBJECT_JOBSET_INFORMATION,*PJOBOBJECT_JOBSET_INFORMATION; +/* Fixme: Making these defines conditional on WINVER will break ddk includes */ +#if 1 /* (WINVER >= 0x0500) */ +#include + +#define ES_SYSTEM_REQUIRED 0x00000001 +#define ES_DISPLAY_REQUIRED 0x00000002 +#define ES_USER_PRESENT 0x00000004 +#define ES_CONTINUOUS 0x80000000 + +typedef enum _LATENCY_TIME { + LT_DONT_CARE, + LT_LOWEST_LATENCY +} LATENCY_TIME, *PLATENCY_TIME; + +typedef enum _SYSTEM_POWER_STATE { + PowerSystemUnspecified, + PowerSystemWorking, + PowerSystemSleeping1, + PowerSystemSleeping2, + PowerSystemSleeping3, + PowerSystemHibernate, + PowerSystemShutdown, + PowerSystemMaximum +} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; +#define POWER_SYSTEM_MAXIMUM PowerSystemMaximum + +typedef enum { + PowerActionNone, + PowerActionReserved, + PowerActionSleep, + PowerActionHibernate, + PowerActionShutdown, + PowerActionShutdownReset, + PowerActionShutdownOff, + PowerActionWarmEject +} POWER_ACTION, *PPOWER_ACTION; + +typedef enum _DEVICE_POWER_STATE { + PowerDeviceUnspecified, + PowerDeviceD0, + PowerDeviceD1, + PowerDeviceD2, + PowerDeviceD3, + PowerDeviceMaximum +} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; + +typedef struct { + DWORD Granularity; + DWORD Capacity; +} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; + +typedef struct _POWER_ACTION_POLICY { + POWER_ACTION Action; + ULONG Flags; + ULONG EventCode; +} POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; + +/* POWER_ACTION_POLICY.Flags constants */ +#define POWER_ACTION_QUERY_ALLOWED 0x00000001 +#define POWER_ACTION_UI_ALLOWED 0x00000002 +#define POWER_ACTION_OVERRIDE_APPS 0x00000004 +#define POWER_ACTION_LIGHTEST_FIRST 0x10000000 +#define POWER_ACTION_LOCK_CONSOLE 0x20000000 +#define POWER_ACTION_DISABLE_WAKES 0x40000000 +#define POWER_ACTION_CRITICAL 0x80000000 + +/* POWER_ACTION_POLICY.EventCode constants */ +#define POWER_LEVEL_USER_NOTIFY_TEXT 0x00000001 +#define POWER_LEVEL_USER_NOTIFY_SOUND 0x00000002 +#define POWER_LEVEL_USER_NOTIFY_EXEC 0x00000004 +#define POWER_USER_NOTIFY_BUTTON 0x00000008 +#define POWER_USER_NOTIFY_SHUTDOWN 0x00000010 +#define POWER_FORCE_TRIGGER_RESET 0x80000000 + +#define DISCHARGE_POLICY_CRITICAL 0 +#define DISCHARGE_POLICY_LOW 1 +#define NUM_DISCHARGE_POLICIES 4 + +#define PO_THROTTLE_NONE 0 +#define PO_THROTTLE_CONSTANT 1 +#define PO_THROTTLE_DEGRADE 2 +#define PO_THROTTLE_ADAPTIVE 3 +#define PO_THROTTLE_MAXIMUM 4 + +typedef struct _SYSTEM_POWER_LEVEL { + BOOLEAN Enable; + UCHAR Spare[3]; + ULONG BatteryLevel; + POWER_ACTION_POLICY PowerPolicy; + SYSTEM_POWER_STATE MinSystemState; +} SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; + +typedef struct _SYSTEM_POWER_POLICY { + ULONG Revision; + POWER_ACTION_POLICY PowerButton; + POWER_ACTION_POLICY SleepButton; + POWER_ACTION_POLICY LidClose; + SYSTEM_POWER_STATE LidOpenWake; + ULONG Reserved; + POWER_ACTION_POLICY Idle; + ULONG IdleTimeout; + UCHAR IdleSensitivity; + UCHAR DynamicThrottle; + UCHAR Spare2[2]; + SYSTEM_POWER_STATE MinSleep; + SYSTEM_POWER_STATE MaxSleep; + SYSTEM_POWER_STATE ReducedLatencySleep; + ULONG WinLogonFlags; + ULONG Spare3; + ULONG DozeS4Timeout; + ULONG BroadcastCapacityResolution; + SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; + ULONG VideoTimeout; + BOOLEAN VideoDimDisplay; + ULONG VideoReserved[3]; + ULONG SpindownTimeout; + BOOLEAN OptimizeForPower; + UCHAR FanThrottleTolerance; + UCHAR ForcedThrottle; + UCHAR MinThrottle; + POWER_ACTION_POLICY OverThrottled; +} SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; + +typedef struct _SYSTEM_POWER_CAPABILITIES { + BOOLEAN PowerButtonPresent; + BOOLEAN SleepButtonPresent; + BOOLEAN LidPresent; + BOOLEAN SystemS1; + BOOLEAN SystemS2; + BOOLEAN SystemS3; + BOOLEAN SystemS4; + BOOLEAN SystemS5; + BOOLEAN HiberFilePresent; + BOOLEAN FullWake; + BOOLEAN VideoDimPresent; + BOOLEAN ApmPresent; + BOOLEAN UpsPresent; + BOOLEAN ThermalControl; + BOOLEAN ProcessorThrottle; + UCHAR ProcessorMinThrottle; + UCHAR ProcessorMaxThrottle; + UCHAR spare2[4]; + BOOLEAN DiskSpinDown; + UCHAR spare3[8]; + BOOLEAN SystemBatteriesPresent; + BOOLEAN BatteriesAreShortTerm; + BATTERY_REPORTING_SCALE BatteryScale[3]; + SYSTEM_POWER_STATE AcOnLineWake; + SYSTEM_POWER_STATE SoftLidWake; + SYSTEM_POWER_STATE RtcWake; + SYSTEM_POWER_STATE MinDeviceWakeState; + SYSTEM_POWER_STATE DefaultLowLatencyWake; +} SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES; + +typedef struct _SYSTEM_BATTERY_STATE { + BOOLEAN AcOnLine; + BOOLEAN BatteryPresent; + BOOLEAN Charging; + BOOLEAN Discharging; + BOOLEAN Spare1[4]; + ULONG MaxCapacity; + ULONG RemainingCapacity; + ULONG Rate; + ULONG EstimatedTime; + ULONG DefaultAlert1; + ULONG DefaultAlert2; +} SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE; + +#if 1 /* (WIN32_WINNT >= 0x0500) */ +typedef struct _SYSTEM_POWER_INFORMATION { + ULONG MaxIdlenessAllowed; + ULONG Idleness; + ULONG TimeRemaining; + UCHAR CoolingMode; +} SYSTEM_POWER_INFORMATION, *PSYSTEM_POWER_INFORMATION; +#endif + +typedef struct _PROCESSOR_POWER_POLICY_INFO { + ULONG TimeCheck; + ULONG DemoteLimit; + ULONG PromoteLimit; + UCHAR DemotePercent; + UCHAR PromotePercent; + UCHAR Spare[2]; + ULONG AllowDemotion : 1; + ULONG AllowPromotion : 1; + ULONG Reserved : 30; +} PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; +typedef struct _PROCESSOR_POWER_POLICY { + ULONG Revision; + UCHAR DynamicThrottle; + UCHAR Spare[3]; + ULONG Reserved; + ULONG PolicyCount; + PROCESSOR_POWER_POLICY_INFO Policy[3]; +} PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY; +typedef struct _ADMINISTRATOR_POWER_POLICY { + SYSTEM_POWER_STATE MinSleep; + SYSTEM_POWER_STATE MaxSleep; + ULONG MinVideoTimeout; + ULONG MaxVideoTimeout; + ULONG MinSpindownTimeout; + ULONG MaxSpindownTimeout; +} ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY; +#include +#endif /* WINVER >= 0x0500 */ + + #ifdef UNICODE typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO; typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX; @@ -2787,7 +3040,8 @@ extern PVOID GetFiberData(void); #endif /* __GNUC__ */ -#endif +#endif /* RC_INVOKED */ + #ifdef __cplusplus } #endif