diff fuhtark_test/include/winapi/powrprof.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/powrprof.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,131 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER 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);
+#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