123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct _GLOBAL_MACHINE_POWER_POLICY{
- ULONG Revision;
- SYSTEM_POWER_STATE LidOpenWakeAc;
- SYSTEM_POWER_STATE LidOpenWakeDc;
- ULONG BroadcastCapacityResolution;
- } GLOBAL_MACHINE_POWER_POLICY,*PGLOBAL_MACHINE_POWER_POLICY;
- typedef struct _GLOBAL_USER_POWER_POLICY{
- ULONG Revision;
- POWER_ACTION_POLICY PowerButtonAc;
- POWER_ACTION_POLICY PowerButtonDc;
- POWER_ACTION_POLICY SleepButtonAc;
- POWER_ACTION_POLICY SleepButtonDc;
- POWER_ACTION_POLICY LidCloseAc;
- POWER_ACTION_POLICY LidCloseDc;
- SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
- ULONG GlobalFlags;
- } GLOBAL_USER_POWER_POLICY,*PGLOBAL_USER_POWER_POLICY;
- typedef struct _GLOBAL_POWER_POLICY{
- GLOBAL_USER_POWER_POLICY user;
- GLOBAL_MACHINE_POWER_POLICY mach;
- } GLOBAL_POWER_POLICY,*PGLOBAL_POWER_POLICY;
- typedef struct _MACHINE_POWER_POLICY{
- ULONG Revision;
- SYSTEM_POWER_STATE MinSleepAc;
- SYSTEM_POWER_STATE MinSleepDc;
- SYSTEM_POWER_STATE ReducedLatencySleepAc;
- SYSTEM_POWER_STATE ReducedLatencySleepDc;
- ULONG DozeTimeoutAc;
- ULONG DozeTimeoutDc;
- ULONG DozeS4TimeoutAc;
- ULONG DozeS4TimeoutDc;
- UCHAR MinThrottleAc;
- UCHAR MinThrottleDc;
- UCHAR pad1[2];
- POWER_ACTION_POLICY OverThrottledAc;
- POWER_ACTION_POLICY OverThrottledDc;
- } MACHINE_POWER_POLICY,*PMACHINE_POWER_POLICY;
- typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
- ULONG Revision;
- PROCESSOR_POWER_POLICY ProcessorPolicyAc;
- PROCESSOR_POWER_POLICY ProcessorPolicyDc;
- } MACHINE_PROCESSOR_POWER_POLICY,*PMACHINE_PROCESSOR_POWER_POLICY;
- typedef struct _USER_POWER_POLICY{
- ULONG Revision;
- POWER_ACTION_POLICY IdleAc;
- POWER_ACTION_POLICY IdleDc;
- ULONG IdleTimeoutAc;
- ULONG IdleTimeoutDc;
- UCHAR IdleSensitivityAc;
- UCHAR IdleSensitivityDc;
- UCHAR ThrottlePolicyAc;
- UCHAR ThrottlePolicyDc;
- SYSTEM_POWER_STATE MaxSleepAc;
- SYSTEM_POWER_STATE MaxSleepDc;
- ULONG Reserved[2];
- ULONG VideoTimeoutAc;
- ULONG VideoTimeoutDc;
- ULONG SpindownTimeoutAc;
- ULONG SpindownTimeoutDc;
- BOOLEAN OptimizeForPowerAc;
- BOOLEAN OptimizeForPowerDc;
- UCHAR FanThrottleToleranceAc;
- UCHAR FanThrottleToleranceDc;
- UCHAR ForcedThrottleAc;
- UCHAR ForcedThrottleDc;
- } USER_POWER_POLICY,*PUSER_POWER_POLICY;
- typedef struct _POWER_POLICY{
- USER_POWER_POLICY user;
- MACHINE_POWER_POLICY mach;
- } POWER_POLICY,*PPOWER_POLICY;
- #define EnableSysTrayBatteryMeter 0x01
- #define EnableMultiBatteryDisplay 0x02
- #define EnablePasswordLogon 0x04
- #define EnableWakeOnRing 0x08
- #define EnableVideoDimDisplay 0x10
- #define NEWSCHEME (UINT)-1
- typedef BOOLEAN (CALLBACK *PWRSCHEMESENUMPROC)(UINT,DWORD,LPTSTR,DWORD,LPTSTR,PPOWER_POLICY,LPARAM);
- typedef BOOLEAN (CALLBACK *PFNNTINITIATEPWRACTION)(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN);
- BOOLEAN WINAPI GetPwrDiskSpindownRange(PUINT,PUINT);
- BOOLEAN WINAPI EnumPwrSchemes(PWRSCHEMESENUMPROC,LPARAM);
- BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
- BOOLEAN WINAPI ReadPwrScheme(UINT,PPOWER_POLICY);
- BOOLEAN WINAPI WritePwrScheme(PUINT,LPTSTR,LPTSTR,PPOWER_POLICY);
- BOOLEAN WINAPI WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
- BOOLEAN WINAPI DeletePwrScheme(UINT);
- BOOLEAN WINAPI GetActivePwrScheme(PUINT);
- BOOLEAN WINAPI SetActivePwrScheme(UINT,PGLOBAL_POWER_POLICY,PPOWER_POLICY);
- BOOLEAN WINAPI GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
- BOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
- BOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
- BOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
- BOOLEAN WINAPI IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
- BOOLEAN WINAPI SetSuspendState(BOOLEAN,BOOLEAN,BOOLEAN);
- BOOLEAN WINAPI GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY);
- BOOLEAN WINAPI CanUserWritePwrScheme(VOID);
- BOOLEAN WINAPI ReadProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY);
- BOOLEAN WINAPI WriteProcessorPwrScheme(UINT,PMACHINE_PROCESSOR_POWER_POLICY);
- BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY,PPOWER_POLICY);
- #if (_WIN32_WINNT >= 0x0600)
- #define DEVICEPOWER_HARDWAREID 0x80000000
- #define DEVICEPOWER_FILTER_DEVICES_PRESENT 0x20000000
- #define DEVICEPOWER_AND_OPERATION 0x40000000
- #define DEVICEPOWER_FILTER_WAKEENABLED 0x08000000
- #define DEVICEPOWER_FILTER_ON_NAME 0x02000000
- #define PDCAP_D0_SUPPORTED 0x00000001
- #define PDCAP_D1_SUPPORTED 0x00000002
- #define PDCAP_D2_SUPPORTED 0x00000004
- #define PDCAP_D3_SUPPORTED 0x00000008
- #define PDCAP_S0_SUPPORTED 0x00010000
- #define PDCAP_S1_SUPPORTED 0x00020000
- #define PDCAP_S2_SUPPORTED 0x00040000
- #define PDCAP_S3_SUPPORTED 0x00080000
- #define PDCAP_S4_SUPPORTED 0x01000000
- #define PDCAP_S5_SUPPORTED 0x02000000
- #define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010
- #define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020
- #define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040
- #define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080
- #define PDCAP_WAKE_FROM_S0_SUPPORTED 0x00100000
- #define PDCAP_WAKE_FROM_S1_SUPPORTED 0x00200000
- #define PDCAP_WAKE_FROM_S2_SUPPORTED 0x00400000
- #define PDCAP_WAKE_FROM_S3_SUPPORTED 0x00800000
- #define PDCAP_WARM_EJECT_SUPPORTED 0x00000100
- #define DEVICEPOWER_SET_WAKEENABLED 0x00000001
- #define DEVICEPOWER_CLEAR_WAKEENABLED 0x00000002
- typedef enum _POWER_DATA_ACCESSOR {
- ACCESS_AC_POWER_SETTING_INDEX = 0, // 0x0
- ACCESS_DC_POWER_SETTING_INDEX = 1, // 0x1
- ACCESS_SCHEME = 16, // 0x10
- ACCESS_SUBGROUP = 17, // 0x11
- ACCESS_INDIVIDUAL_SETTING = 18, // 0x12
- ACCESS_ACTIVE_SCHEME = 19, // 0x13
- ACCESS_CREATE_SCHEME = 20 // 0x14
- } POWER_DATA_ACCESSOR, *PPOWER_DATA_ACCESSOR;
- BOOLEAN WINAPI DevicePowerClose(void);
- BOOLEAN WINAPI DevicePowerEnumDevices(
- ULONG QueryIndex,
- ULONG QueryInterpretationFlags,
- ULONG QueryFlags,
- PBYTE pReturnBuffer,
- PULONG pBufferSize
- );
- BOOLEAN WINAPI DevicePowerOpen(
- ULONG Flags
- );
- DWORD WINAPI DevicePowerSetDeviceState(
- LPCWSTR DeviceDescription,
- ULONG SetFlags,
- LPCVOID SetData
- );
- DWORD WINAPI PowerCanRestoreIndividualDefaultPowerScheme(
- const GUID *SchemeGuid
- );
- DWORD WINAPI PowerCreatePossibleSetting(
- HKEY RootSystemPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- ULONG PossibleSettingIndex
- );
- DWORD WINAPI PowerCreateSetting(
- HKEY RootSystemPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid
- );
- DWORD WINAPI PowerDeleteScheme(
- HKEY RootPowerKey,
- const GUID *SchemeGuid
- );
- POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRole(void);
- DWORD WINAPI PowerDuplicateScheme(
- HKEY RootPowerKey,
- const GUID *SourceSchemeGuid,
- GUID **DestinationSchemeGuid
- );
- DWORD WINAPI PowerEnumerate(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- POWER_DATA_ACCESSOR AccessFlags,
- ULONG Index,
- UCHAR *Buffer,
- DWORD *BufferSize
- );
- DWORD WINAPI PowerGetActiveScheme(
- HKEY UserRootPowerKey,
- GUID **ActivePolicyGuid
- );
- DWORD WINAPI PowerImportPowerScheme(
- HKEY RootPowerKey,
- LPCWSTR ImportFileNamePath,
- GUID **DestinationSchemeGuid
- );
- DWORD WINAPI PowerReadACDefaultIndex(
- HKEY RootPowerKey,
- const GUID *SchemePersonalityGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD AcDefaultIndex
- );
- DWORD WINAPI PowerReadACValue(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- PULONG Type,
- LPBYTE Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadACValueIndex(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD AcValueIndex
- );
- DWORD WINAPI PowerReadDCDefaultIndex(
- HKEY RootPowerKey,
- const GUID *SchemePersonalityGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD DcDefaultIndex
- );
- DWORD WINAPI PowerReadDCValue(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- PULONG Type,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadDCValueIndex(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD DcValueIndex
- );
- DWORD WINAPI PowerReadDescription(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadFriendlyName(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadIconResourceSpecifier(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadPossibleDescription(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- ULONG PossibleSettingIndex,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadPossibleFriendlyName(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- ULONG PossibleSettingIndex,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadPossibleValue(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- PULONG Type,
- ULONG PossibleSettingIndex,
- PUCHAR Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerReadSettingAttributes(
- const GUID *SubGroupGuid,
- const GUID *PowerSettingGuid
- );
- DWORD WINAPI PowerReadValueIncrement(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD ValueIncrement
- );
- DWORD WINAPI PowerReadValueMax(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD ValueMaximum
- );
- DWORD WINAPI PowerReadValueMin(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- LPDWORD ValueMinimum
- );
- DWORD WINAPI PowerReadValueUnitsSpecifier(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- UCHAR *Buffer,
- LPDWORD BufferSize
- );
- DWORD WINAPI PowerRemovePowerSetting(
- const GUID *PowerSettingSubKeyGuid,
- const GUID *PowerSettingGuid
- );
- DWORD WINAPI PowerReplaceDefaultPowerSchemes(void);
- DWORD WINAPI PowerRestoreDefaultPowerSchemes(void);
- DWORD WINAPI PowerRestoreIndividualDefaultPowerScheme(
- const GUID *SchemeGuid
- );
- DWORD WINAPI PowerSetActiveScheme(
- HKEY UserRootPowerKey,
- const GUID *SchemeGuid
- );
- DWORD WINAPI PowerSettingAccessCheck(
- POWER_DATA_ACCESSOR AccessFlags,
- const GUID *PowerGuid
- );
- DWORD WINAPI PowerWriteACDefaultIndex(
- HKEY RootSystemPowerKey,
- const GUID *SchemePersonalityGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD DefaultAcIndex
- );
- DWORD WINAPI PowerWriteACValueIndex(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD AcValueIndex
- );
- DWORD WINAPI PowerWriteDCDefaultIndex(
- HKEY RootSystemPowerKey,
- const GUID *SchemePersonalityGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD DefaultDcIndex
- );
- DWORD WINAPI PowerWriteDCValueIndex(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD DcValueIndex
- );
- DWORD WINAPI PowerWriteDescription(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- DWORD WINAPI PowerWriteFriendlyName(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- DWORD WINAPI PowerWriteIconResourceSpecifier(
- HKEY RootPowerKey,
- const GUID *SchemeGuid,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- DWORD WINAPI PowerWritePossibleDescription(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- ULONG PossibleSettingIndex,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- DWORD WINAPI PowerWritePossibleFriendlyName(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- ULONG PossibleSettingIndex,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- DWORD WINAPI PowerWritePossibleValue(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- ULONG Type,
- ULONG PossibleSettingIndex,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- #define POWER_ATTRIBUTE_HIDE 1
- DWORD WINAPI PowerWriteSettingAttributes(
- const GUID *SubGroupGuid,
- const GUID *PowerSettingGuid,
- DWORD Attributes
- );
- DWORD WINAPI PowerWriteValueIncrement(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD ValueIncrement
- );
- DWORD WINAPI PowerWriteValueMax(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD ValueMaximum
- );
- DWORD WINAPI PowerWriteValueMin(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- DWORD ValueMinimum
- );
- DWORD WINAPI PowerWriteValueUnitsSpecifier(
- HKEY RootPowerKey,
- const GUID *SubGroupOfPowerSettingsGuid,
- const GUID *PowerSettingGuid,
- UCHAR *Buffer,
- DWORD BufferSize
- );
- #endif /*(_WIN32_WINNT >= 0x0600)*/
- #ifndef NT_SUCCESS
- #define NTSTATUS LONG
- #define _OVERRIDE_NTSTATUS_
- #endif
- NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL,PVOID,ULONG,PVOID,ULONG);
- #ifdef _OVERRIDE_NTSTATUS_
- #undef NTSTATUS
- #endif
- #ifdef __cplusplus
- }
- #endif
|