zigwin32/win32/system/power.zig

1915 lines
72 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (134)
//--------------------------------------------------------------------------------
pub const PROCESSOR_NUMBER_PKEY = PROPERTYKEY { .fmtid = Guid.initString("5724c81d-d5af-4c1f-a103-a06e28f204c6"), .pid = 1 };
pub const GUID_DEVICE_BATTERY = Guid.initString("72631e54-78a4-11d0-bcf7-00aa00b7b32a");
pub const GUID_DEVICE_APPLICATIONLAUNCH_BUTTON = Guid.initString("629758ee-986e-4d9e-8e47-de27f8ab054d");
pub const GUID_DEVICE_SYS_BUTTON = Guid.initString("4afa3d53-74a7-11d0-be5e-00a0c9062857");
pub const GUID_DEVICE_LID = Guid.initString("4afa3d52-74a7-11d0-be5e-00a0c9062857");
pub const GUID_DEVICE_THERMAL_ZONE = Guid.initString("4afa3d51-74a7-11d0-be5e-00a0c9062857");
pub const GUID_DEVICE_FAN = Guid.initString("05ecd13d-81da-4a2a-8a4c-524f23dd4dc9");
pub const GUID_DEVICE_PROCESSOR = Guid.initString("97fadb10-4e33-40ae-359c-8bef029dbdd0");
pub const GUID_DEVICE_MEMORY = Guid.initString("3fd0f03d-92e0-45fb-b75c-5ed8ffb01021");
pub const GUID_DEVICE_ACPI_TIME = Guid.initString("97f99bf6-4497-4f18-bb22-4b9fb2fbef9c");
pub const GUID_DEVICE_MESSAGE_INDICATOR = Guid.initString("cd48a365-fa94-4ce2-a232-a1b764e5d8b4");
pub const GUID_CLASS_INPUT = Guid.initString("4d1e55b2-f16f-11cf-88cb-001111000030");
pub const GUID_DEVINTERFACE_THERMAL_COOLING = Guid.initString("dbe4373d-3c81-40cb-ace4-e0e5d05f0c9f");
pub const GUID_DEVINTERFACE_THERMAL_MANAGER = Guid.initString("927ec093-69a4-4bc0-bd02-711664714463");
pub const BATTERY_UNKNOWN_CAPACITY = @as(u32, 4294967295);
pub const UNKNOWN_CAPACITY = @as(u32, 4294967295);
pub const BATTERY_SYSTEM_BATTERY = @as(u32, 2147483648);
pub const BATTERY_CAPACITY_RELATIVE = @as(u32, 1073741824);
pub const BATTERY_IS_SHORT_TERM = @as(u32, 536870912);
pub const BATTERY_SEALED = @as(u32, 268435456);
pub const BATTERY_SET_CHARGE_SUPPORTED = @as(u32, 1);
pub const BATTERY_SET_DISCHARGE_SUPPORTED = @as(u32, 2);
pub const BATTERY_SET_CHARGINGSOURCE_SUPPORTED = @as(u32, 4);
pub const BATTERY_SET_CHARGER_ID_SUPPORTED = @as(u32, 8);
pub const BATTERY_UNKNOWN_TIME = @as(u32, 4294967295);
pub const BATTERY_UNKNOWN_CURRENT = @as(u32, 4294967295);
pub const UNKNOWN_CURRENT = @as(u32, 4294967295);
pub const BATTERY_USB_CHARGER_STATUS_FN_DEFAULT_USB = @as(u32, 1);
pub const BATTERY_USB_CHARGER_STATUS_UCM_PD = @as(u32, 2);
pub const BATTERY_UNKNOWN_VOLTAGE = @as(u32, 4294967295);
pub const BATTERY_UNKNOWN_RATE = @as(u32, 2147483648);
pub const UNKNOWN_RATE = @as(u32, 2147483648);
pub const UNKNOWN_VOLTAGE = @as(u32, 4294967295);
pub const BATTERY_POWER_ON_LINE = @as(u32, 1);
pub const BATTERY_DISCHARGING = @as(u32, 2);
pub const BATTERY_CHARGING = @as(u32, 4);
pub const BATTERY_CRITICAL = @as(u32, 8);
pub const MAX_BATTERY_STRING_SIZE = @as(u32, 128);
pub const IOCTL_BATTERY_QUERY_TAG = @as(u32, 2703424);
pub const IOCTL_BATTERY_QUERY_INFORMATION = @as(u32, 2703428);
pub const IOCTL_BATTERY_SET_INFORMATION = @as(u32, 2719816);
pub const IOCTL_BATTERY_QUERY_STATUS = @as(u32, 2703436);
pub const IOCTL_BATTERY_CHARGING_SOURCE_CHANGE = @as(u32, 2703440);
pub const BATTERY_TAG_INVALID = @as(u32, 0);
pub const MAX_ACTIVE_COOLING_LEVELS = @as(u32, 10);
pub const ACTIVE_COOLING = @as(u32, 0);
pub const PASSIVE_COOLING = @as(u32, 1);
pub const TZ_ACTIVATION_REASON_THERMAL = @as(u32, 1);
pub const TZ_ACTIVATION_REASON_CURRENT = @as(u32, 2);
pub const THERMAL_POLICY_VERSION_1 = @as(u32, 1);
pub const THERMAL_POLICY_VERSION_2 = @as(u32, 2);
pub const IOCTL_THERMAL_QUERY_INFORMATION = @as(u32, 2703488);
pub const IOCTL_THERMAL_SET_COOLING_POLICY = @as(u32, 2719876);
pub const IOCTL_RUN_ACTIVE_COOLING_METHOD = @as(u32, 2719880);
pub const IOCTL_THERMAL_SET_PASSIVE_LIMIT = @as(u32, 2719884);
pub const IOCTL_THERMAL_READ_TEMPERATURE = @as(u32, 2703504);
pub const IOCTL_THERMAL_READ_POLICY = @as(u32, 2703508);
pub const IOCTL_QUERY_LID = @as(u32, 2703552);
pub const IOCTL_NOTIFY_SWITCH_EVENT = @as(u32, 2703616);
pub const IOCTL_GET_SYS_BUTTON_CAPS = @as(u32, 2703680);
pub const IOCTL_GET_SYS_BUTTON_EVENT = @as(u32, 2703684);
pub const SYS_BUTTON_POWER = @as(u32, 1);
pub const SYS_BUTTON_SLEEP = @as(u32, 2);
pub const SYS_BUTTON_LID = @as(u32, 4);
pub const SYS_BUTTON_WAKE = @as(u32, 2147483648);
pub const SYS_BUTTON_LID_STATE_MASK = @as(u32, 196608);
pub const SYS_BUTTON_LID_OPEN = @as(u32, 65536);
pub const SYS_BUTTON_LID_CLOSED = @as(u32, 131072);
pub const SYS_BUTTON_LID_INITIAL = @as(u32, 262144);
pub const SYS_BUTTON_LID_CHANGED = @as(u32, 524288);
pub const IOCTL_GET_PROCESSOR_OBJ_INFO = @as(u32, 2703744);
pub const THERMAL_COOLING_INTERFACE_VERSION = @as(u32, 1);
pub const THERMAL_DEVICE_INTERFACE_VERSION = @as(u32, 1);
pub const IOCTL_SET_SYS_MESSAGE_INDICATOR = @as(u32, 2720192);
pub const IOCTL_SET_WAKE_ALARM_VALUE = @as(u32, 2720256);
pub const IOCTL_SET_WAKE_ALARM_POLICY = @as(u32, 2720260);
pub const IOCTL_GET_WAKE_ALARM_VALUE = @as(u32, 2736648);
pub const IOCTL_GET_WAKE_ALARM_POLICY = @as(u32, 2736652);
pub const ACPI_TIME_ADJUST_DAYLIGHT = @as(u32, 1);
pub const ACPI_TIME_IN_DAYLIGHT = @as(u32, 2);
pub const ACPI_TIME_ZONE_UNKNOWN = @as(u32, 2047);
pub const IOCTL_ACPI_GET_REAL_TIME = @as(u32, 2703888);
pub const IOCTL_ACPI_SET_REAL_TIME = @as(u32, 2720276);
pub const IOCTL_GET_WAKE_ALARM_SYSTEM_POWERSTATE = @as(u32, 2703896);
pub const BATTERY_STATUS_WMI_GUID = Guid.initString("fc4670d1-ebbf-416e-87ce-374a4ebc111a");
pub const BATTERY_RUNTIME_WMI_GUID = Guid.initString("535a3767-1ac2-49bc-a077-3f7a02e40aec");
pub const BATTERY_TEMPERATURE_WMI_GUID = Guid.initString("1a52a14d-adce-4a44-9a3e-c8d8f15ff2c2");
pub const BATTERY_FULL_CHARGED_CAPACITY_WMI_GUID = Guid.initString("40b40565-96f7-4435-8694-97e0e4395905");
pub const BATTERY_CYCLE_COUNT_WMI_GUID = Guid.initString("ef98db24-0014-4c25-a50b-c724ae5cd371");
pub const BATTERY_STATIC_DATA_WMI_GUID = Guid.initString("05e1e463-e4e2-4ea9-80cb-9bd4b3ca0655");
pub const BATTERY_STATUS_CHANGE_WMI_GUID = Guid.initString("cddfa0c3-7c5b-4e43-a034-059fa5b84364");
pub const BATTERY_TAG_CHANGE_WMI_GUID = Guid.initString("5e1f6e19-8786-4d23-94fc-9e746bd5d888");
pub const BATTERY_MINIPORT_UPDATE_DATA_VER_1 = @as(u32, 1);
pub const BATTERY_MINIPORT_UPDATE_DATA_VER_2 = @as(u32, 2);
pub const BATTERY_CLASS_MAJOR_VERSION = @as(u32, 1);
pub const BATTERY_CLASS_MINOR_VERSION = @as(u32, 0);
pub const BATTERY_CLASS_MINOR_VERSION_1 = @as(u32, 1);
pub const GUID_DEVICE_ENERGY_METER = Guid.initString("45bd8344-7ed6-49cf-a440-c276c933b053");
pub const IOCTL_EMI_GET_VERSION = @as(u32, 2244608);
pub const IOCTL_EMI_GET_METADATA_SIZE = @as(u32, 2244612);
pub const IOCTL_EMI_GET_METADATA = @as(u32, 2244616);
pub const IOCTL_EMI_GET_MEASUREMENT = @as(u32, 2244620);
pub const EMI_NAME_MAX = @as(u32, 16);
pub const EMI_VERSION_V1 = @as(u32, 1);
pub const EMI_VERSION_V2 = @as(u32, 2);
pub const EFFECTIVE_POWER_MODE_V1 = @as(u32, 1);
pub const EFFECTIVE_POWER_MODE_V2 = @as(u32, 2);
pub const EnableSysTrayBatteryMeter = @as(u32, 1);
pub const EnableMultiBatteryDisplay = @as(u32, 2);
pub const EnablePasswordLogon = @as(u32, 4);
pub const EnableWakeOnRing = @as(u32, 8);
pub const EnableVideoDimDisplay = @as(u32, 16);
pub const POWER_ATTRIBUTE_HIDE = @as(u32, 1);
pub const POWER_ATTRIBUTE_SHOW_AOAC = @as(u32, 2);
pub const DEVICEPOWER_HARDWAREID = @as(u32, 2147483648);
pub const DEVICEPOWER_AND_OPERATION = @as(u32, 1073741824);
pub const DEVICEPOWER_FILTER_DEVICES_PRESENT = @as(u32, 536870912);
pub const DEVICEPOWER_FILTER_HARDWARE = @as(u32, 268435456);
pub const DEVICEPOWER_FILTER_WAKEENABLED = @as(u32, 134217728);
pub const DEVICEPOWER_FILTER_WAKEPROGRAMMABLE = @as(u32, 67108864);
pub const DEVICEPOWER_FILTER_ON_NAME = @as(u32, 33554432);
pub const DEVICEPOWER_SET_WAKEENABLED = @as(u32, 1);
pub const DEVICEPOWER_CLEAR_WAKEENABLED = @as(u32, 2);
pub const PDCAP_S0_SUPPORTED = @as(u32, 65536);
pub const PDCAP_S1_SUPPORTED = @as(u32, 131072);
pub const PDCAP_S2_SUPPORTED = @as(u32, 262144);
pub const PDCAP_S3_SUPPORTED = @as(u32, 524288);
pub const PDCAP_WAKE_FROM_S0_SUPPORTED = @as(u32, 1048576);
pub const PDCAP_WAKE_FROM_S1_SUPPORTED = @as(u32, 2097152);
pub const PDCAP_WAKE_FROM_S2_SUPPORTED = @as(u32, 4194304);
pub const PDCAP_WAKE_FROM_S3_SUPPORTED = @as(u32, 8388608);
pub const PDCAP_S4_SUPPORTED = @as(u32, 16777216);
pub const PDCAP_S5_SUPPORTED = @as(u32, 33554432);
pub const THERMAL_EVENT_VERSION = @as(u32, 1);
//--------------------------------------------------------------------------------
// Section: Types (70)
//--------------------------------------------------------------------------------
pub const POWER_PLATFORM_ROLE_VERSION = enum(u32) {
@"1" = 1,
@"2" = 2,
};
// TODO: enum 'POWER_PLATFORM_ROLE_VERSION' has known issues with its value aliases
pub const POWER_SETTING_REGISTER_NOTIFICATION_FLAGS = enum(u32) {
SERVICE_HANDLE = 1,
CALLBACK = 2,
WINDOW_HANDLE = 0,
};
pub const DEVICE_NOTIFY_SERVICE_HANDLE = POWER_SETTING_REGISTER_NOTIFICATION_FLAGS.SERVICE_HANDLE;
pub const DEVICE_NOTIFY_CALLBACK = POWER_SETTING_REGISTER_NOTIFICATION_FLAGS.CALLBACK;
pub const DEVICE_NOTIFY_WINDOW_HANDLE = POWER_SETTING_REGISTER_NOTIFICATION_FLAGS.WINDOW_HANDLE;
pub const EXECUTION_STATE = enum(u32) {
AWAYMODE_REQUIRED = 64,
CONTINUOUS = 2147483648,
DISPLAY_REQUIRED = 2,
SYSTEM_REQUIRED = 1,
USER_PRESENT = 4,
_,
pub fn initFlags(o: struct {
AWAYMODE_REQUIRED: u1 = 0,
CONTINUOUS: u1 = 0,
DISPLAY_REQUIRED: u1 = 0,
SYSTEM_REQUIRED: u1 = 0,
USER_PRESENT: u1 = 0,
}) EXECUTION_STATE {
return @as(EXECUTION_STATE, @enumFromInt(
(if (o.AWAYMODE_REQUIRED == 1) @intFromEnum(EXECUTION_STATE.AWAYMODE_REQUIRED) else 0)
| (if (o.CONTINUOUS == 1) @intFromEnum(EXECUTION_STATE.CONTINUOUS) else 0)
| (if (o.DISPLAY_REQUIRED == 1) @intFromEnum(EXECUTION_STATE.DISPLAY_REQUIRED) else 0)
| (if (o.SYSTEM_REQUIRED == 1) @intFromEnum(EXECUTION_STATE.SYSTEM_REQUIRED) else 0)
| (if (o.USER_PRESENT == 1) @intFromEnum(EXECUTION_STATE.USER_PRESENT) else 0)
));
}
};
pub const ES_AWAYMODE_REQUIRED = EXECUTION_STATE.AWAYMODE_REQUIRED;
pub const ES_CONTINUOUS = EXECUTION_STATE.CONTINUOUS;
pub const ES_DISPLAY_REQUIRED = EXECUTION_STATE.DISPLAY_REQUIRED;
pub const ES_SYSTEM_REQUIRED = EXECUTION_STATE.SYSTEM_REQUIRED;
pub const ES_USER_PRESENT = EXECUTION_STATE.USER_PRESENT;
pub const POWER_ACTION_POLICY_EVENT_CODE = enum(u32) {
FORCE_TRIGGER_RESET = 2147483648,
LEVEL_USER_NOTIFY_EXEC = 4,
LEVEL_USER_NOTIFY_SOUND = 2,
LEVEL_USER_NOTIFY_TEXT = 1,
USER_NOTIFY_BUTTON = 8,
USER_NOTIFY_SHUTDOWN = 16,
_,
pub fn initFlags(o: struct {
FORCE_TRIGGER_RESET: u1 = 0,
LEVEL_USER_NOTIFY_EXEC: u1 = 0,
LEVEL_USER_NOTIFY_SOUND: u1 = 0,
LEVEL_USER_NOTIFY_TEXT: u1 = 0,
USER_NOTIFY_BUTTON: u1 = 0,
USER_NOTIFY_SHUTDOWN: u1 = 0,
}) POWER_ACTION_POLICY_EVENT_CODE {
return @as(POWER_ACTION_POLICY_EVENT_CODE, @enumFromInt(
(if (o.FORCE_TRIGGER_RESET == 1) @intFromEnum(POWER_ACTION_POLICY_EVENT_CODE.FORCE_TRIGGER_RESET) else 0)
| (if (o.LEVEL_USER_NOTIFY_EXEC == 1) @intFromEnum(POWER_ACTION_POLICY_EVENT_CODE.LEVEL_USER_NOTIFY_EXEC) else 0)
| (if (o.LEVEL_USER_NOTIFY_SOUND == 1) @intFromEnum(POWER_ACTION_POLICY_EVENT_CODE.LEVEL_USER_NOTIFY_SOUND) else 0)
| (if (o.LEVEL_USER_NOTIFY_TEXT == 1) @intFromEnum(POWER_ACTION_POLICY_EVENT_CODE.LEVEL_USER_NOTIFY_TEXT) else 0)
| (if (o.USER_NOTIFY_BUTTON == 1) @intFromEnum(POWER_ACTION_POLICY_EVENT_CODE.USER_NOTIFY_BUTTON) else 0)
| (if (o.USER_NOTIFY_SHUTDOWN == 1) @intFromEnum(POWER_ACTION_POLICY_EVENT_CODE.USER_NOTIFY_SHUTDOWN) else 0)
));
}
};
pub const POWER_FORCE_TRIGGER_RESET = POWER_ACTION_POLICY_EVENT_CODE.FORCE_TRIGGER_RESET;
pub const POWER_LEVEL_USER_NOTIFY_EXEC = POWER_ACTION_POLICY_EVENT_CODE.LEVEL_USER_NOTIFY_EXEC;
pub const POWER_LEVEL_USER_NOTIFY_SOUND = POWER_ACTION_POLICY_EVENT_CODE.LEVEL_USER_NOTIFY_SOUND;
pub const POWER_LEVEL_USER_NOTIFY_TEXT = POWER_ACTION_POLICY_EVENT_CODE.LEVEL_USER_NOTIFY_TEXT;
pub const POWER_USER_NOTIFY_BUTTON = POWER_ACTION_POLICY_EVENT_CODE.USER_NOTIFY_BUTTON;
pub const POWER_USER_NOTIFY_SHUTDOWN = POWER_ACTION_POLICY_EVENT_CODE.USER_NOTIFY_SHUTDOWN;
// TODO: this type has a FreeFunc 'UnregisterPowerSettingNotification', what can Zig do with this information?
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HPOWERNOTIFY = *opaque{};
pub const EFFECTIVE_POWER_MODE = enum(i32) {
BatterySaver = 0,
BetterBattery = 1,
Balanced = 2,
HighPerformance = 3,
MaxPerformance = 4,
GameMode = 5,
MixedReality = 6,
};
pub const EffectivePowerModeBatterySaver = EFFECTIVE_POWER_MODE.BatterySaver;
pub const EffectivePowerModeBetterBattery = EFFECTIVE_POWER_MODE.BetterBattery;
pub const EffectivePowerModeBalanced = EFFECTIVE_POWER_MODE.Balanced;
pub const EffectivePowerModeHighPerformance = EFFECTIVE_POWER_MODE.HighPerformance;
pub const EffectivePowerModeMaxPerformance = EFFECTIVE_POWER_MODE.MaxPerformance;
pub const EffectivePowerModeGameMode = EFFECTIVE_POWER_MODE.GameMode;
pub const EffectivePowerModeMixedReality = EFFECTIVE_POWER_MODE.MixedReality;
// TODO: this type is limited to platform 'windows10.0.17763'
pub const EFFECTIVE_POWER_MODE_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
Mode: EFFECTIVE_POWER_MODE,
Context: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
Mode: EFFECTIVE_POWER_MODE,
Context: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const GLOBAL_MACHINE_POWER_POLICY = extern struct {
Revision: u32,
LidOpenWakeAc: SYSTEM_POWER_STATE,
LidOpenWakeDc: SYSTEM_POWER_STATE,
BroadcastCapacityResolution: u32,
};
pub const GLOBAL_USER_POWER_POLICY = extern struct {
Revision: u32,
PowerButtonAc: POWER_ACTION_POLICY,
PowerButtonDc: POWER_ACTION_POLICY,
SleepButtonAc: POWER_ACTION_POLICY,
SleepButtonDc: POWER_ACTION_POLICY,
LidCloseAc: POWER_ACTION_POLICY,
LidCloseDc: POWER_ACTION_POLICY,
DischargePolicy: [4]SYSTEM_POWER_LEVEL,
GlobalFlags: u32,
};
pub const GLOBAL_POWER_POLICY = extern struct {
user: GLOBAL_USER_POWER_POLICY,
mach: GLOBAL_MACHINE_POWER_POLICY,
};
pub const MACHINE_POWER_POLICY = extern struct {
Revision: u32,
MinSleepAc: SYSTEM_POWER_STATE,
MinSleepDc: SYSTEM_POWER_STATE,
ReducedLatencySleepAc: SYSTEM_POWER_STATE,
ReducedLatencySleepDc: SYSTEM_POWER_STATE,
DozeTimeoutAc: u32,
DozeTimeoutDc: u32,
DozeS4TimeoutAc: u32,
DozeS4TimeoutDc: u32,
MinThrottleAc: u8,
MinThrottleDc: u8,
pad1: [2]u8,
OverThrottledAc: POWER_ACTION_POLICY,
OverThrottledDc: POWER_ACTION_POLICY,
};
pub const MACHINE_PROCESSOR_POWER_POLICY = extern struct {
Revision: u32,
ProcessorPolicyAc: PROCESSOR_POWER_POLICY,
ProcessorPolicyDc: PROCESSOR_POWER_POLICY,
};
pub const USER_POWER_POLICY = extern struct {
Revision: u32,
IdleAc: POWER_ACTION_POLICY,
IdleDc: POWER_ACTION_POLICY,
IdleTimeoutAc: u32,
IdleTimeoutDc: u32,
IdleSensitivityAc: u8,
IdleSensitivityDc: u8,
ThrottlePolicyAc: u8,
ThrottlePolicyDc: u8,
MaxSleepAc: SYSTEM_POWER_STATE,
MaxSleepDc: SYSTEM_POWER_STATE,
Reserved: [2]u32,
VideoTimeoutAc: u32,
VideoTimeoutDc: u32,
SpindownTimeoutAc: u32,
SpindownTimeoutDc: u32,
OptimizeForPowerAc: BOOLEAN,
OptimizeForPowerDc: BOOLEAN,
FanThrottleToleranceAc: u8,
FanThrottleToleranceDc: u8,
ForcedThrottleAc: u8,
ForcedThrottleDc: u8,
};
pub const POWER_POLICY = extern struct {
user: USER_POWER_POLICY,
mach: MACHINE_POWER_POLICY,
};
pub const PWRSCHEMESENUMPROC_V1 = switch (@import("builtin").zig_backend) {
.stage1 => fn(
Index: u32,
NameSize: u32,
// TODO: what to do with BytesParamIndex 1?
Name: ?*i8,
DescriptionSize: u32,
// TODO: what to do with BytesParamIndex 3?
Description: ?*i8,
Policy: ?*POWER_POLICY,
Context: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN,
else => *const fn(
Index: u32,
NameSize: u32,
// TODO: what to do with BytesParamIndex 1?
Name: ?*i8,
DescriptionSize: u32,
// TODO: what to do with BytesParamIndex 3?
Description: ?*i8,
Policy: ?*POWER_POLICY,
Context: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN,
} ;
pub const PWRSCHEMESENUMPROC = switch (@import("builtin").zig_backend) {
.stage1 => fn(
Index: u32,
NameSize: u32,
// TODO: what to do with BytesParamIndex 1?
Name: ?PWSTR,
DescriptionSize: u32,
// TODO: what to do with BytesParamIndex 3?
Description: ?PWSTR,
Policy: ?*POWER_POLICY,
Context: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN,
else => *const fn(
Index: u32,
NameSize: u32,
// TODO: what to do with BytesParamIndex 1?
Name: ?PWSTR,
DescriptionSize: u32,
// TODO: what to do with BytesParamIndex 3?
Description: ?PWSTR,
Policy: ?*POWER_POLICY,
Context: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN,
} ;
pub const POWER_DATA_ACCESSOR = enum(i32) {
AC_POWER_SETTING_INDEX = 0,
DC_POWER_SETTING_INDEX = 1,
FRIENDLY_NAME = 2,
DESCRIPTION = 3,
POSSIBLE_POWER_SETTING = 4,
POSSIBLE_POWER_SETTING_FRIENDLY_NAME = 5,
POSSIBLE_POWER_SETTING_DESCRIPTION = 6,
DEFAULT_AC_POWER_SETTING = 7,
DEFAULT_DC_POWER_SETTING = 8,
POSSIBLE_VALUE_MIN = 9,
POSSIBLE_VALUE_MAX = 10,
POSSIBLE_VALUE_INCREMENT = 11,
POSSIBLE_VALUE_UNITS = 12,
ICON_RESOURCE = 13,
DEFAULT_SECURITY_DESCRIPTOR = 14,
ATTRIBUTES = 15,
SCHEME = 16,
SUBGROUP = 17,
INDIVIDUAL_SETTING = 18,
ACTIVE_SCHEME = 19,
CREATE_SCHEME = 20,
AC_POWER_SETTING_MAX = 21,
DC_POWER_SETTING_MAX = 22,
AC_POWER_SETTING_MIN = 23,
DC_POWER_SETTING_MIN = 24,
PROFILE = 25,
OVERLAY_SCHEME = 26,
ACTIVE_OVERLAY_SCHEME = 27,
};
pub const ACCESS_AC_POWER_SETTING_INDEX = POWER_DATA_ACCESSOR.AC_POWER_SETTING_INDEX;
pub const ACCESS_DC_POWER_SETTING_INDEX = POWER_DATA_ACCESSOR.DC_POWER_SETTING_INDEX;
pub const ACCESS_FRIENDLY_NAME = POWER_DATA_ACCESSOR.FRIENDLY_NAME;
pub const ACCESS_DESCRIPTION = POWER_DATA_ACCESSOR.DESCRIPTION;
pub const ACCESS_POSSIBLE_POWER_SETTING = POWER_DATA_ACCESSOR.POSSIBLE_POWER_SETTING;
pub const ACCESS_POSSIBLE_POWER_SETTING_FRIENDLY_NAME = POWER_DATA_ACCESSOR.POSSIBLE_POWER_SETTING_FRIENDLY_NAME;
pub const ACCESS_POSSIBLE_POWER_SETTING_DESCRIPTION = POWER_DATA_ACCESSOR.POSSIBLE_POWER_SETTING_DESCRIPTION;
pub const ACCESS_DEFAULT_AC_POWER_SETTING = POWER_DATA_ACCESSOR.DEFAULT_AC_POWER_SETTING;
pub const ACCESS_DEFAULT_DC_POWER_SETTING = POWER_DATA_ACCESSOR.DEFAULT_DC_POWER_SETTING;
pub const ACCESS_POSSIBLE_VALUE_MIN = POWER_DATA_ACCESSOR.POSSIBLE_VALUE_MIN;
pub const ACCESS_POSSIBLE_VALUE_MAX = POWER_DATA_ACCESSOR.POSSIBLE_VALUE_MAX;
pub const ACCESS_POSSIBLE_VALUE_INCREMENT = POWER_DATA_ACCESSOR.POSSIBLE_VALUE_INCREMENT;
pub const ACCESS_POSSIBLE_VALUE_UNITS = POWER_DATA_ACCESSOR.POSSIBLE_VALUE_UNITS;
pub const ACCESS_ICON_RESOURCE = POWER_DATA_ACCESSOR.ICON_RESOURCE;
pub const ACCESS_DEFAULT_SECURITY_DESCRIPTOR = POWER_DATA_ACCESSOR.DEFAULT_SECURITY_DESCRIPTOR;
pub const ACCESS_ATTRIBUTES = POWER_DATA_ACCESSOR.ATTRIBUTES;
pub const ACCESS_SCHEME = POWER_DATA_ACCESSOR.SCHEME;
pub const ACCESS_SUBGROUP = POWER_DATA_ACCESSOR.SUBGROUP;
pub const ACCESS_INDIVIDUAL_SETTING = POWER_DATA_ACCESSOR.INDIVIDUAL_SETTING;
pub const ACCESS_ACTIVE_SCHEME = POWER_DATA_ACCESSOR.ACTIVE_SCHEME;
pub const ACCESS_CREATE_SCHEME = POWER_DATA_ACCESSOR.CREATE_SCHEME;
pub const ACCESS_AC_POWER_SETTING_MAX = POWER_DATA_ACCESSOR.AC_POWER_SETTING_MAX;
pub const ACCESS_DC_POWER_SETTING_MAX = POWER_DATA_ACCESSOR.DC_POWER_SETTING_MAX;
pub const ACCESS_AC_POWER_SETTING_MIN = POWER_DATA_ACCESSOR.AC_POWER_SETTING_MIN;
pub const ACCESS_DC_POWER_SETTING_MIN = POWER_DATA_ACCESSOR.DC_POWER_SETTING_MIN;
pub const ACCESS_PROFILE = POWER_DATA_ACCESSOR.PROFILE;
pub const ACCESS_OVERLAY_SCHEME = POWER_DATA_ACCESSOR.OVERLAY_SCHEME;
pub const ACCESS_ACTIVE_OVERLAY_SCHEME = POWER_DATA_ACCESSOR.ACTIVE_OVERLAY_SCHEME;
pub const PDEVICE_NOTIFY_CALLBACK_ROUTINE = switch (@import("builtin").zig_backend) {
.stage1 => fn(
Context: ?*anyopaque,
Type: u32,
Setting: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
Context: ?*anyopaque,
Type: u32,
Setting: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
} ;
pub const DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS = extern struct {
Callback: ?PDEVICE_NOTIFY_CALLBACK_ROUTINE,
Context: ?*anyopaque,
};
pub const THERMAL_EVENT = extern struct {
Version: u32,
Size: u32,
Type: u32,
Temperature: u32,
TripPointTemperature: u32,
Initiator: ?PWSTR,
};
pub const BATTERY_QUERY_INFORMATION_LEVEL = enum(i32) {
Information = 0,
GranularityInformation = 1,
Temperature = 2,
EstimatedTime = 3,
DeviceName = 4,
ManufactureDate = 5,
ManufactureName = 6,
UniqueID = 7,
SerialNumber = 8,
};
pub const BatteryInformation = BATTERY_QUERY_INFORMATION_LEVEL.Information;
pub const BatteryGranularityInformation = BATTERY_QUERY_INFORMATION_LEVEL.GranularityInformation;
pub const BatteryTemperature = BATTERY_QUERY_INFORMATION_LEVEL.Temperature;
pub const BatteryEstimatedTime = BATTERY_QUERY_INFORMATION_LEVEL.EstimatedTime;
pub const BatteryDeviceName = BATTERY_QUERY_INFORMATION_LEVEL.DeviceName;
pub const BatteryManufactureDate = BATTERY_QUERY_INFORMATION_LEVEL.ManufactureDate;
pub const BatteryManufactureName = BATTERY_QUERY_INFORMATION_LEVEL.ManufactureName;
pub const BatteryUniqueID = BATTERY_QUERY_INFORMATION_LEVEL.UniqueID;
pub const BatterySerialNumber = BATTERY_QUERY_INFORMATION_LEVEL.SerialNumber;
pub const BATTERY_QUERY_INFORMATION = extern struct {
BatteryTag: u32,
InformationLevel: BATTERY_QUERY_INFORMATION_LEVEL,
AtRate: u32,
};
pub const BATTERY_INFORMATION = extern struct {
Capabilities: u32,
Technology: u8,
Reserved: [3]u8,
Chemistry: [4]u8,
DesignedCapacity: u32,
FullChargedCapacity: u32,
DefaultAlert1: u32,
DefaultAlert2: u32,
CriticalBias: u32,
CycleCount: u32,
};
pub const BATTERY_CHARGING_SOURCE_TYPE = enum(i32) {
AC = 1,
USB = 2,
Wireless = 3,
Max = 4,
};
pub const BatteryChargingSourceType_AC = BATTERY_CHARGING_SOURCE_TYPE.AC;
pub const BatteryChargingSourceType_USB = BATTERY_CHARGING_SOURCE_TYPE.USB;
pub const BatteryChargingSourceType_Wireless = BATTERY_CHARGING_SOURCE_TYPE.Wireless;
pub const BatteryChargingSourceType_Max = BATTERY_CHARGING_SOURCE_TYPE.Max;
pub const BATTERY_CHARGING_SOURCE = extern struct {
Type: BATTERY_CHARGING_SOURCE_TYPE,
MaxCurrent: u32,
};
pub const BATTERY_CHARGING_SOURCE_INFORMATION = extern struct {
Type: BATTERY_CHARGING_SOURCE_TYPE,
SourceOnline: BOOLEAN,
};
pub const USB_CHARGER_PORT = enum(i32) {
Legacy = 0,
TypeC = 1,
Max = 2,
};
pub const UsbChargerPort_Legacy = USB_CHARGER_PORT.Legacy;
pub const UsbChargerPort_TypeC = USB_CHARGER_PORT.TypeC;
pub const UsbChargerPort_Max = USB_CHARGER_PORT.Max;
pub const BATTERY_SET_INFORMATION_LEVEL = enum(i32) {
CriticalBias = 0,
Charge = 1,
Discharge = 2,
ChargingSource = 3,
ChargerId = 4,
ChargerStatus = 5,
};
pub const BatteryCriticalBias = BATTERY_SET_INFORMATION_LEVEL.CriticalBias;
pub const BatteryCharge = BATTERY_SET_INFORMATION_LEVEL.Charge;
pub const BatteryDischarge = BATTERY_SET_INFORMATION_LEVEL.Discharge;
pub const BatteryChargingSource = BATTERY_SET_INFORMATION_LEVEL.ChargingSource;
pub const BatteryChargerId = BATTERY_SET_INFORMATION_LEVEL.ChargerId;
pub const BatteryChargerStatus = BATTERY_SET_INFORMATION_LEVEL.ChargerStatus;
pub const BATTERY_SET_INFORMATION = extern struct {
BatteryTag: u32,
InformationLevel: BATTERY_SET_INFORMATION_LEVEL,
Buffer: [1]u8,
};
pub const BATTERY_CHARGER_STATUS = extern struct {
Type: BATTERY_CHARGING_SOURCE_TYPE,
VaData: [1]u32,
};
pub const BATTERY_USB_CHARGER_STATUS = extern struct {
Type: BATTERY_CHARGING_SOURCE_TYPE,
Reserved: u32,
Flags: u32,
MaxCurrent: u32,
Voltage: u32,
PortType: USB_CHARGER_PORT,
PortId: u64,
PowerSourceInformation: ?*anyopaque,
OemCharger: Guid,
};
pub const BATTERY_WAIT_STATUS = extern struct {
BatteryTag: u32,
Timeout: u32,
PowerState: u32,
LowCapacity: u32,
HighCapacity: u32,
};
pub const BATTERY_STATUS = extern struct {
PowerState: u32,
Capacity: u32,
Voltage: u32,
Rate: i32,
};
pub const BATTERY_MANUFACTURE_DATE = extern struct {
Day: u8,
Month: u8,
Year: u16,
};
pub const THERMAL_INFORMATION = extern struct {
ThermalStamp: u32,
ThermalConstant1: u32,
ThermalConstant2: u32,
Processors: usize,
SamplingPeriod: u32,
CurrentTemperature: u32,
PassiveTripPoint: u32,
CriticalTripPoint: u32,
ActiveTripPointCount: u8,
ActiveTripPoint: [10]u32,
};
pub const THERMAL_WAIT_READ = extern struct {
Timeout: u32,
LowTemperature: u32,
HighTemperature: u32,
};
pub const THERMAL_POLICY = extern struct {
Version: u32,
WaitForUpdate: BOOLEAN,
Hibernate: BOOLEAN,
Critical: BOOLEAN,
ThermalStandby: BOOLEAN,
ActivationReasons: u32,
PassiveLimit: u32,
ActiveLevel: u32,
OverThrottled: BOOLEAN,
};
pub const PROCESSOR_OBJECT_INFO = extern struct {
PhysicalID: u32,
PBlkAddress: u32,
PBlkLength: u8,
};
pub const PROCESSOR_OBJECT_INFO_EX = extern struct {
PhysicalID: u32,
PBlkAddress: u32,
PBlkLength: u8,
InitialApicId: u32,
};
pub const WAKE_ALARM_INFORMATION = extern struct {
TimerIdentifier: u32,
Timeout: u32,
};
pub const ACPI_REAL_TIME = extern struct {
Year: u16,
Month: u8,
Day: u8,
Hour: u8,
Minute: u8,
Second: u8,
Valid: u8,
Milliseconds: u16,
TimeZone: i16,
DayLight: u8,
Reserved1: [3]u8,
};
pub const EMI_MEASUREMENT_UNIT = enum(i32) {
s = 0,
};
pub const EmiMeasurementUnitPicowattHours = EMI_MEASUREMENT_UNIT.s;
pub const EMI_VERSION = extern struct {
EmiVersion: u16,
};
pub const EMI_METADATA_SIZE = extern struct {
MetadataSize: u32,
};
pub const EMI_CHANNEL_MEASUREMENT_DATA = extern struct {
AbsoluteEnergy: u64,
AbsoluteTime: u64,
};
pub const EMI_METADATA_V1 = extern struct {
MeasurementUnit: EMI_MEASUREMENT_UNIT,
HardwareOEM: [16]u16,
HardwareModel: [16]u16,
HardwareRevision: u16,
MeteredHardwareNameSize: u16,
MeteredHardwareName: [1]u16,
};
pub const EMI_CHANNEL_V2 = extern struct {
MeasurementUnit: EMI_MEASUREMENT_UNIT,
ChannelNameSize: u16,
ChannelName: [1]u16,
};
pub const EMI_METADATA_V2 = extern struct {
HardwareOEM: [16]u16,
HardwareModel: [16]u16,
HardwareRevision: u16,
ChannelCount: u16,
Channels: [1]EMI_CHANNEL_V2,
};
pub const EMI_MEASUREMENT_DATA_V2 = extern struct {
ChannelData: [1]EMI_CHANNEL_MEASUREMENT_DATA,
};
pub const SYSTEM_POWER_STATE = enum(i32) {
Unspecified = 0,
Working = 1,
Sleeping1 = 2,
Sleeping2 = 3,
Sleeping3 = 4,
Hibernate = 5,
Shutdown = 6,
Maximum = 7,
};
pub const PowerSystemUnspecified = SYSTEM_POWER_STATE.Unspecified;
pub const PowerSystemWorking = SYSTEM_POWER_STATE.Working;
pub const PowerSystemSleeping1 = SYSTEM_POWER_STATE.Sleeping1;
pub const PowerSystemSleeping2 = SYSTEM_POWER_STATE.Sleeping2;
pub const PowerSystemSleeping3 = SYSTEM_POWER_STATE.Sleeping3;
pub const PowerSystemHibernate = SYSTEM_POWER_STATE.Hibernate;
pub const PowerSystemShutdown = SYSTEM_POWER_STATE.Shutdown;
pub const PowerSystemMaximum = SYSTEM_POWER_STATE.Maximum;
pub const POWER_ACTION = enum(i32) {
None = 0,
Reserved = 1,
Sleep = 2,
Hibernate = 3,
Shutdown = 4,
ShutdownReset = 5,
ShutdownOff = 6,
WarmEject = 7,
DisplayOff = 8,
};
pub const PowerActionNone = POWER_ACTION.None;
pub const PowerActionReserved = POWER_ACTION.Reserved;
pub const PowerActionSleep = POWER_ACTION.Sleep;
pub const PowerActionHibernate = POWER_ACTION.Hibernate;
pub const PowerActionShutdown = POWER_ACTION.Shutdown;
pub const PowerActionShutdownReset = POWER_ACTION.ShutdownReset;
pub const PowerActionShutdownOff = POWER_ACTION.ShutdownOff;
pub const PowerActionWarmEject = POWER_ACTION.WarmEject;
pub const PowerActionDisplayOff = POWER_ACTION.DisplayOff;
pub const DEVICE_POWER_STATE = enum(i32) {
Unspecified = 0,
D0 = 1,
D1 = 2,
D2 = 3,
D3 = 4,
Maximum = 5,
};
pub const PowerDeviceUnspecified = DEVICE_POWER_STATE.Unspecified;
pub const PowerDeviceD0 = DEVICE_POWER_STATE.D0;
pub const PowerDeviceD1 = DEVICE_POWER_STATE.D1;
pub const PowerDeviceD2 = DEVICE_POWER_STATE.D2;
pub const PowerDeviceD3 = DEVICE_POWER_STATE.D3;
pub const PowerDeviceMaximum = DEVICE_POWER_STATE.Maximum;
pub const LATENCY_TIME = enum(i32) {
DONT_CARE = 0,
LOWEST_LATENCY = 1,
};
pub const LT_DONT_CARE = LATENCY_TIME.DONT_CARE;
pub const LT_LOWEST_LATENCY = LATENCY_TIME.LOWEST_LATENCY;
pub const POWER_REQUEST_TYPE = enum(i32) {
DisplayRequired = 0,
SystemRequired = 1,
AwayModeRequired = 2,
ExecutionRequired = 3,
};
pub const PowerRequestDisplayRequired = POWER_REQUEST_TYPE.DisplayRequired;
pub const PowerRequestSystemRequired = POWER_REQUEST_TYPE.SystemRequired;
pub const PowerRequestAwayModeRequired = POWER_REQUEST_TYPE.AwayModeRequired;
pub const PowerRequestExecutionRequired = POWER_REQUEST_TYPE.ExecutionRequired;
pub const CM_POWER_DATA = extern struct {
PD_Size: u32,
PD_MostRecentPowerState: DEVICE_POWER_STATE,
PD_Capabilities: u32,
PD_D1Latency: u32,
PD_D2Latency: u32,
PD_D3Latency: u32,
PD_PowerStateMapping: [7]DEVICE_POWER_STATE,
PD_DeepestSystemWake: SYSTEM_POWER_STATE,
};
pub const POWER_INFORMATION_LEVEL = enum(i32) {
SystemPowerPolicyAc = 0,
SystemPowerPolicyDc = 1,
VerifySystemPolicyAc = 2,
VerifySystemPolicyDc = 3,
SystemPowerCapabilities = 4,
SystemBatteryState = 5,
SystemPowerStateHandler = 6,
ProcessorStateHandler = 7,
SystemPowerPolicyCurrent = 8,
AdministratorPowerPolicy = 9,
SystemReserveHiberFile = 10,
ProcessorInformation = 11,
SystemPowerInformation = 12,
ProcessorStateHandler2 = 13,
LastWakeTime = 14,
LastSleepTime = 15,
SystemExecutionState = 16,
SystemPowerStateNotifyHandler = 17,
ProcessorPowerPolicyAc = 18,
ProcessorPowerPolicyDc = 19,
VerifyProcessorPowerPolicyAc = 20,
VerifyProcessorPowerPolicyDc = 21,
ProcessorPowerPolicyCurrent = 22,
SystemPowerStateLogging = 23,
SystemPowerLoggingEntry = 24,
SetPowerSettingValue = 25,
NotifyUserPowerSetting = 26,
PowerInformationLevelUnused0 = 27,
SystemMonitorHiberBootPowerOff = 28,
SystemVideoState = 29,
TraceApplicationPowerMessage = 30,
TraceApplicationPowerMessageEnd = 31,
ProcessorPerfStates = 32,
ProcessorIdleStates = 33,
ProcessorCap = 34,
SystemWakeSource = 35,
SystemHiberFileInformation = 36,
TraceServicePowerMessage = 37,
ProcessorLoad = 38,
PowerShutdownNotification = 39,
MonitorCapabilities = 40,
SessionPowerInit = 41,
SessionDisplayState = 42,
PowerRequestCreate = 43,
PowerRequestAction = 44,
GetPowerRequestList = 45,
ProcessorInformationEx = 46,
NotifyUserModeLegacyPowerEvent = 47,
GroupPark = 48,
ProcessorIdleDomains = 49,
WakeTimerList = 50,
SystemHiberFileSize = 51,
ProcessorIdleStatesHv = 52,
ProcessorPerfStatesHv = 53,
ProcessorPerfCapHv = 54,
ProcessorSetIdle = 55,
LogicalProcessorIdling = 56,
UserPresence = 57,
PowerSettingNotificationName = 58,
GetPowerSettingValue = 59,
IdleResiliency = 60,
SessionRITState = 61,
SessionConnectNotification = 62,
SessionPowerCleanup = 63,
SessionLockState = 64,
SystemHiberbootState = 65,
PlatformInformation = 66,
PdcInvocation = 67,
MonitorInvocation = 68,
FirmwareTableInformationRegistered = 69,
SetShutdownSelectedTime = 70,
SuspendResumeInvocation = 71,
PlmPowerRequestCreate = 72,
ScreenOff = 73,
CsDeviceNotification = 74,
PlatformRole = 75,
LastResumePerformance = 76,
DisplayBurst = 77,
ExitLatencySamplingPercentage = 78,
RegisterSpmPowerSettings = 79,
PlatformIdleStates = 80,
ProcessorIdleVeto = 81,
PlatformIdleVeto = 82,
SystemBatteryStatePrecise = 83,
ThermalEvent = 84,
PowerRequestActionInternal = 85,
BatteryDeviceState = 86,
PowerInformationInternal = 87,
ThermalStandby = 88,
SystemHiberFileType = 89,
PhysicalPowerButtonPress = 90,
QueryPotentialDripsConstraint = 91,
EnergyTrackerCreate = 92,
EnergyTrackerQuery = 93,
UpdateBlackBoxRecorder = 94,
SessionAllowExternalDmaDevices = 95,
SendSuspendResumeNotification = 96,
PowerInformationLevelMaximum = 97,
};
pub const SystemPowerPolicyAc = POWER_INFORMATION_LEVEL.SystemPowerPolicyAc;
pub const SystemPowerPolicyDc = POWER_INFORMATION_LEVEL.SystemPowerPolicyDc;
pub const VerifySystemPolicyAc = POWER_INFORMATION_LEVEL.VerifySystemPolicyAc;
pub const VerifySystemPolicyDc = POWER_INFORMATION_LEVEL.VerifySystemPolicyDc;
pub const SystemPowerCapabilities = POWER_INFORMATION_LEVEL.SystemPowerCapabilities;
pub const SystemBatteryState = POWER_INFORMATION_LEVEL.SystemBatteryState;
pub const SystemPowerStateHandler = POWER_INFORMATION_LEVEL.SystemPowerStateHandler;
pub const ProcessorStateHandler = POWER_INFORMATION_LEVEL.ProcessorStateHandler;
pub const SystemPowerPolicyCurrent = POWER_INFORMATION_LEVEL.SystemPowerPolicyCurrent;
pub const AdministratorPowerPolicy = POWER_INFORMATION_LEVEL.AdministratorPowerPolicy;
pub const SystemReserveHiberFile = POWER_INFORMATION_LEVEL.SystemReserveHiberFile;
pub const ProcessorInformation = POWER_INFORMATION_LEVEL.ProcessorInformation;
pub const SystemPowerInformation = POWER_INFORMATION_LEVEL.SystemPowerInformation;
pub const ProcessorStateHandler2 = POWER_INFORMATION_LEVEL.ProcessorStateHandler2;
pub const LastWakeTime = POWER_INFORMATION_LEVEL.LastWakeTime;
pub const LastSleepTime = POWER_INFORMATION_LEVEL.LastSleepTime;
pub const SystemExecutionState = POWER_INFORMATION_LEVEL.SystemExecutionState;
pub const SystemPowerStateNotifyHandler = POWER_INFORMATION_LEVEL.SystemPowerStateNotifyHandler;
pub const ProcessorPowerPolicyAc = POWER_INFORMATION_LEVEL.ProcessorPowerPolicyAc;
pub const ProcessorPowerPolicyDc = POWER_INFORMATION_LEVEL.ProcessorPowerPolicyDc;
pub const VerifyProcessorPowerPolicyAc = POWER_INFORMATION_LEVEL.VerifyProcessorPowerPolicyAc;
pub const VerifyProcessorPowerPolicyDc = POWER_INFORMATION_LEVEL.VerifyProcessorPowerPolicyDc;
pub const ProcessorPowerPolicyCurrent = POWER_INFORMATION_LEVEL.ProcessorPowerPolicyCurrent;
pub const SystemPowerStateLogging = POWER_INFORMATION_LEVEL.SystemPowerStateLogging;
pub const SystemPowerLoggingEntry = POWER_INFORMATION_LEVEL.SystemPowerLoggingEntry;
pub const SetPowerSettingValue = POWER_INFORMATION_LEVEL.SetPowerSettingValue;
pub const NotifyUserPowerSetting = POWER_INFORMATION_LEVEL.NotifyUserPowerSetting;
pub const PowerInformationLevelUnused0 = POWER_INFORMATION_LEVEL.PowerInformationLevelUnused0;
pub const SystemMonitorHiberBootPowerOff = POWER_INFORMATION_LEVEL.SystemMonitorHiberBootPowerOff;
pub const SystemVideoState = POWER_INFORMATION_LEVEL.SystemVideoState;
pub const TraceApplicationPowerMessage = POWER_INFORMATION_LEVEL.TraceApplicationPowerMessage;
pub const TraceApplicationPowerMessageEnd = POWER_INFORMATION_LEVEL.TraceApplicationPowerMessageEnd;
pub const ProcessorPerfStates = POWER_INFORMATION_LEVEL.ProcessorPerfStates;
pub const ProcessorIdleStates = POWER_INFORMATION_LEVEL.ProcessorIdleStates;
pub const ProcessorCap = POWER_INFORMATION_LEVEL.ProcessorCap;
pub const SystemWakeSource = POWER_INFORMATION_LEVEL.SystemWakeSource;
pub const SystemHiberFileInformation = POWER_INFORMATION_LEVEL.SystemHiberFileInformation;
pub const TraceServicePowerMessage = POWER_INFORMATION_LEVEL.TraceServicePowerMessage;
pub const ProcessorLoad = POWER_INFORMATION_LEVEL.ProcessorLoad;
pub const PowerShutdownNotification = POWER_INFORMATION_LEVEL.PowerShutdownNotification;
pub const MonitorCapabilities = POWER_INFORMATION_LEVEL.MonitorCapabilities;
pub const SessionPowerInit = POWER_INFORMATION_LEVEL.SessionPowerInit;
pub const SessionDisplayState = POWER_INFORMATION_LEVEL.SessionDisplayState;
pub const PowerRequestCreate = POWER_INFORMATION_LEVEL.PowerRequestCreate;
pub const PowerRequestAction = POWER_INFORMATION_LEVEL.PowerRequestAction;
pub const GetPowerRequestList = POWER_INFORMATION_LEVEL.GetPowerRequestList;
pub const ProcessorInformationEx = POWER_INFORMATION_LEVEL.ProcessorInformationEx;
pub const NotifyUserModeLegacyPowerEvent = POWER_INFORMATION_LEVEL.NotifyUserModeLegacyPowerEvent;
pub const GroupPark = POWER_INFORMATION_LEVEL.GroupPark;
pub const ProcessorIdleDomains = POWER_INFORMATION_LEVEL.ProcessorIdleDomains;
pub const WakeTimerList = POWER_INFORMATION_LEVEL.WakeTimerList;
pub const SystemHiberFileSize = POWER_INFORMATION_LEVEL.SystemHiberFileSize;
pub const ProcessorIdleStatesHv = POWER_INFORMATION_LEVEL.ProcessorIdleStatesHv;
pub const ProcessorPerfStatesHv = POWER_INFORMATION_LEVEL.ProcessorPerfStatesHv;
pub const ProcessorPerfCapHv = POWER_INFORMATION_LEVEL.ProcessorPerfCapHv;
pub const ProcessorSetIdle = POWER_INFORMATION_LEVEL.ProcessorSetIdle;
pub const LogicalProcessorIdling = POWER_INFORMATION_LEVEL.LogicalProcessorIdling;
pub const UserPresence = POWER_INFORMATION_LEVEL.UserPresence;
pub const PowerSettingNotificationName = POWER_INFORMATION_LEVEL.PowerSettingNotificationName;
pub const GetPowerSettingValue = POWER_INFORMATION_LEVEL.GetPowerSettingValue;
pub const IdleResiliency = POWER_INFORMATION_LEVEL.IdleResiliency;
pub const SessionRITState = POWER_INFORMATION_LEVEL.SessionRITState;
pub const SessionConnectNotification = POWER_INFORMATION_LEVEL.SessionConnectNotification;
pub const SessionPowerCleanup = POWER_INFORMATION_LEVEL.SessionPowerCleanup;
pub const SessionLockState = POWER_INFORMATION_LEVEL.SessionLockState;
pub const SystemHiberbootState = POWER_INFORMATION_LEVEL.SystemHiberbootState;
pub const PlatformInformation = POWER_INFORMATION_LEVEL.PlatformInformation;
pub const PdcInvocation = POWER_INFORMATION_LEVEL.PdcInvocation;
pub const MonitorInvocation = POWER_INFORMATION_LEVEL.MonitorInvocation;
pub const FirmwareTableInformationRegistered = POWER_INFORMATION_LEVEL.FirmwareTableInformationRegistered;
pub const SetShutdownSelectedTime = POWER_INFORMATION_LEVEL.SetShutdownSelectedTime;
pub const SuspendResumeInvocation = POWER_INFORMATION_LEVEL.SuspendResumeInvocation;
pub const PlmPowerRequestCreate = POWER_INFORMATION_LEVEL.PlmPowerRequestCreate;
pub const ScreenOff = POWER_INFORMATION_LEVEL.ScreenOff;
pub const CsDeviceNotification = POWER_INFORMATION_LEVEL.CsDeviceNotification;
pub const PlatformRole = POWER_INFORMATION_LEVEL.PlatformRole;
pub const LastResumePerformance = POWER_INFORMATION_LEVEL.LastResumePerformance;
pub const DisplayBurst = POWER_INFORMATION_LEVEL.DisplayBurst;
pub const ExitLatencySamplingPercentage = POWER_INFORMATION_LEVEL.ExitLatencySamplingPercentage;
pub const RegisterSpmPowerSettings = POWER_INFORMATION_LEVEL.RegisterSpmPowerSettings;
pub const PlatformIdleStates = POWER_INFORMATION_LEVEL.PlatformIdleStates;
pub const ProcessorIdleVeto = POWER_INFORMATION_LEVEL.ProcessorIdleVeto;
pub const PlatformIdleVeto = POWER_INFORMATION_LEVEL.PlatformIdleVeto;
pub const SystemBatteryStatePrecise = POWER_INFORMATION_LEVEL.SystemBatteryStatePrecise;
pub const ThermalEvent = POWER_INFORMATION_LEVEL.ThermalEvent;
pub const PowerRequestActionInternal = POWER_INFORMATION_LEVEL.PowerRequestActionInternal;
pub const BatteryDeviceState = POWER_INFORMATION_LEVEL.BatteryDeviceState;
pub const PowerInformationInternal = POWER_INFORMATION_LEVEL.PowerInformationInternal;
pub const ThermalStandby = POWER_INFORMATION_LEVEL.ThermalStandby;
pub const SystemHiberFileType = POWER_INFORMATION_LEVEL.SystemHiberFileType;
pub const PhysicalPowerButtonPress = POWER_INFORMATION_LEVEL.PhysicalPowerButtonPress;
pub const QueryPotentialDripsConstraint = POWER_INFORMATION_LEVEL.QueryPotentialDripsConstraint;
pub const EnergyTrackerCreate = POWER_INFORMATION_LEVEL.EnergyTrackerCreate;
pub const EnergyTrackerQuery = POWER_INFORMATION_LEVEL.EnergyTrackerQuery;
pub const UpdateBlackBoxRecorder = POWER_INFORMATION_LEVEL.UpdateBlackBoxRecorder;
pub const SessionAllowExternalDmaDevices = POWER_INFORMATION_LEVEL.SessionAllowExternalDmaDevices;
pub const SendSuspendResumeNotification = POWER_INFORMATION_LEVEL.SendSuspendResumeNotification;
pub const PowerInformationLevelMaximum = POWER_INFORMATION_LEVEL.PowerInformationLevelMaximum;
pub const SYSTEM_POWER_CONDITION = enum(i32) {
Ac = 0,
Dc = 1,
Hot = 2,
ConditionMaximum = 3,
};
pub const PoAc = SYSTEM_POWER_CONDITION.Ac;
pub const PoDc = SYSTEM_POWER_CONDITION.Dc;
pub const PoHot = SYSTEM_POWER_CONDITION.Hot;
pub const PoConditionMaximum = SYSTEM_POWER_CONDITION.ConditionMaximum;
pub const SET_POWER_SETTING_VALUE = extern struct {
Version: u32,
Guid: Guid,
PowerCondition: SYSTEM_POWER_CONDITION,
DataLength: u32,
Data: [1]u8,
};
pub const POWER_PLATFORM_ROLE = enum(i32) {
Unspecified = 0,
Desktop = 1,
Mobile = 2,
Workstation = 3,
EnterpriseServer = 4,
SOHOServer = 5,
AppliancePC = 6,
PerformanceServer = 7,
Slate = 8,
Maximum = 9,
};
pub const PlatformRoleUnspecified = POWER_PLATFORM_ROLE.Unspecified;
pub const PlatformRoleDesktop = POWER_PLATFORM_ROLE.Desktop;
pub const PlatformRoleMobile = POWER_PLATFORM_ROLE.Mobile;
pub const PlatformRoleWorkstation = POWER_PLATFORM_ROLE.Workstation;
pub const PlatformRoleEnterpriseServer = POWER_PLATFORM_ROLE.EnterpriseServer;
pub const PlatformRoleSOHOServer = POWER_PLATFORM_ROLE.SOHOServer;
pub const PlatformRoleAppliancePC = POWER_PLATFORM_ROLE.AppliancePC;
pub const PlatformRolePerformanceServer = POWER_PLATFORM_ROLE.PerformanceServer;
pub const PlatformRoleSlate = POWER_PLATFORM_ROLE.Slate;
pub const PlatformRoleMaximum = POWER_PLATFORM_ROLE.Maximum;
pub const BATTERY_REPORTING_SCALE = extern struct {
Granularity: u32,
Capacity: u32,
};
pub const POWER_ACTION_POLICY = extern struct {
Action: POWER_ACTION,
Flags: u32,
EventCode: POWER_ACTION_POLICY_EVENT_CODE,
};
pub const SYSTEM_POWER_LEVEL = extern struct {
Enable: BOOLEAN,
Spare: [3]u8,
BatteryLevel: u32,
PowerPolicy: POWER_ACTION_POLICY,
MinSystemState: SYSTEM_POWER_STATE,
};
pub const SYSTEM_POWER_POLICY = extern struct {
Revision: u32,
PowerButton: POWER_ACTION_POLICY,
SleepButton: POWER_ACTION_POLICY,
LidClose: POWER_ACTION_POLICY,
LidOpenWake: SYSTEM_POWER_STATE,
Reserved: u32,
Idle: POWER_ACTION_POLICY,
IdleTimeout: u32,
IdleSensitivity: u8,
DynamicThrottle: u8,
Spare2: [2]u8,
MinSleep: SYSTEM_POWER_STATE,
MaxSleep: SYSTEM_POWER_STATE,
ReducedLatencySleep: SYSTEM_POWER_STATE,
WinLogonFlags: u32,
Spare3: u32,
DozeS4Timeout: u32,
BroadcastCapacityResolution: u32,
DischargePolicy: [4]SYSTEM_POWER_LEVEL,
VideoTimeout: u32,
VideoDimDisplay: BOOLEAN,
VideoReserved: [3]u32,
SpindownTimeout: u32,
OptimizeForPower: BOOLEAN,
FanThrottleTolerance: u8,
ForcedThrottle: u8,
MinThrottle: u8,
OverThrottled: POWER_ACTION_POLICY,
};
pub const PROCESSOR_POWER_POLICY_INFO = extern struct {
TimeCheck: u32,
DemoteLimit: u32,
PromoteLimit: u32,
DemotePercent: u8,
PromotePercent: u8,
Spare: [2]u8,
_bitfield: u32,
};
pub const PROCESSOR_POWER_POLICY = extern struct {
Revision: u32,
DynamicThrottle: u8,
Spare: [3]u8,
_bitfield: u32,
PolicyCount: u32,
Policy: [3]PROCESSOR_POWER_POLICY_INFO,
};
pub const ADMINISTRATOR_POWER_POLICY = extern struct {
MinSleep: SYSTEM_POWER_STATE,
MaxSleep: SYSTEM_POWER_STATE,
MinVideoTimeout: u32,
MaxVideoTimeout: u32,
MinSpindownTimeout: u32,
MaxSpindownTimeout: u32,
};
pub const SYSTEM_POWER_CAPABILITIES = extern struct {
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: BOOLEAN,
ProcessorMinThrottle: u8,
ProcessorMaxThrottle: u8,
FastSystemS4: BOOLEAN,
Hiberboot: BOOLEAN,
WakeAlarmPresent: BOOLEAN,
AoAc: BOOLEAN,
DiskSpinDown: BOOLEAN,
HiberFileType: u8,
AoAcConnectivitySupported: BOOLEAN,
spare3: [6]u8,
SystemBatteriesPresent: BOOLEAN,
BatteriesAreShortTerm: BOOLEAN,
BatteryScale: [3]BATTERY_REPORTING_SCALE,
AcOnLineWake: SYSTEM_POWER_STATE,
SoftLidWake: SYSTEM_POWER_STATE,
RtcWake: SYSTEM_POWER_STATE,
MinDeviceWakeState: SYSTEM_POWER_STATE,
DefaultLowLatencyWake: SYSTEM_POWER_STATE,
};
pub const SYSTEM_BATTERY_STATE = extern struct {
AcOnLine: BOOLEAN,
BatteryPresent: BOOLEAN,
Charging: BOOLEAN,
Discharging: BOOLEAN,
Spare1: [3]BOOLEAN,
Tag: u8,
MaxCapacity: u32,
RemainingCapacity: u32,
Rate: u32,
EstimatedTime: u32,
DefaultAlert1: u32,
DefaultAlert2: u32,
};
pub const POWERBROADCAST_SETTING = extern struct {
PowerSetting: Guid,
DataLength: u32,
Data: [1]u8,
};
pub const SYSTEM_POWER_STATUS = extern struct {
ACLineStatus: u8,
BatteryFlag: u8,
BatteryLifePercent: u8,
SystemStatusFlag: u8,
BatteryLifeTime: u32,
BatteryFullLifeTime: u32,
};
//--------------------------------------------------------------------------------
// Section: Functions (97)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn CallNtPowerInformation(
InformationLevel: POWER_INFORMATION_LEVEL,
// TODO: what to do with BytesParamIndex 2?
InputBuffer: ?*anyopaque,
InputBufferLength: u32,
// TODO: what to do with BytesParamIndex 4?
OutputBuffer: ?*anyopaque,
OutputBufferLength: u32,
) callconv(@import("std").os.windows.WINAPI) i32;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn GetPwrCapabilities(
lpspc: ?*SYSTEM_POWER_CAPABILITIES,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows8.0'
pub extern "powrprof" fn PowerDeterminePlatformRoleEx(
Version: POWER_PLATFORM_ROLE_VERSION,
) callconv(@import("std").os.windows.WINAPI) POWER_PLATFORM_ROLE;
// TODO: this type is limited to platform 'windows8.0'
pub extern "powrprof" fn PowerRegisterSuspendResumeNotification(
Flags: u32,
Recipient: ?HANDLE,
RegistrationHandle: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows8.0'
pub extern "powrprof" fn PowerUnregisterSuspendResumeNotification(
RegistrationHandle: ?HPOWERNOTIFY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadACValue(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
Type: ?*u32,
// TODO: what to do with BytesParamIndex 6?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadDCValue(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
Type: ?*u32,
// TODO: what to do with BytesParamIndex 6?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteACValueIndex(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
AcValueIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteDCValueIndex(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
DcValueIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerGetActiveScheme(
UserRootPowerKey: ?HKEY,
ActivePolicyGuid: ?*?*Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerSetActiveScheme(
UserRootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.1'
pub extern "powrprof" fn PowerSettingRegisterNotification(
SettingGuid: ?*const Guid,
Flags: POWER_SETTING_REGISTER_NOTIFICATION_FLAGS,
Recipient: ?HANDLE,
RegistrationHandle: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.1'
pub extern "powrprof" fn PowerSettingUnregisterNotification(
RegistrationHandle: ?HPOWERNOTIFY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows10.0.17763'
pub extern "powrprof" fn PowerRegisterForEffectivePowerModeNotifications(
Version: u32,
Callback: ?EFFECTIVE_POWER_MODE_CALLBACK,
Context: ?*anyopaque,
RegistrationHandle: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.17763'
pub extern "powrprof" fn PowerUnregisterFromEffectivePowerModeNotifications(
RegistrationHandle: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn GetPwrDiskSpindownRange(
puiMax: ?*u32,
puiMin: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn EnumPwrSchemes(
lpfn: ?PWRSCHEMESENUMPROC,
lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn ReadGlobalPwrPolicy(
pGlobalPowerPolicy: ?*GLOBAL_POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn ReadPwrScheme(
uiID: u32,
pPowerPolicy: ?*POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn WritePwrScheme(
puiID: ?*u32,
lpszSchemeName: ?[*:0]const u16,
lpszDescription: ?[*:0]const u16,
lpScheme: ?*POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn WriteGlobalPwrPolicy(
pGlobalPowerPolicy: ?*GLOBAL_POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn DeletePwrScheme(
uiID: u32,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn GetActivePwrScheme(
puiID: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn SetActivePwrScheme(
uiID: u32,
pGlobalPowerPolicy: ?*GLOBAL_POWER_POLICY,
pPowerPolicy: ?*POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn IsPwrSuspendAllowed(
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn IsPwrHibernateAllowed(
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn IsPwrShutdownAllowed(
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
pub extern "powrprof" fn IsAdminOverrideActive(
papp: ?*ADMINISTRATOR_POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn SetSuspendState(
bHibernate: BOOLEAN,
bForce: BOOLEAN,
bWakeupEventsDisabled: BOOLEAN,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn GetCurrentPowerPolicies(
pGlobalPowerPolicy: ?*GLOBAL_POWER_POLICY,
pPowerPolicy: ?*POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn CanUserWritePwrScheme(
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn ReadProcessorPwrScheme(
uiID: u32,
pMachineProcessorPowerPolicy: ?*MACHINE_PROCESSOR_POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "powrprof" fn WriteProcessorPwrScheme(
uiID: u32,
pMachineProcessorPowerPolicy: ?*MACHINE_PROCESSOR_POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
pub extern "powrprof" fn ValidatePowerPolicies(
pGlobalPowerPolicy: ?*GLOBAL_POWER_POLICY,
pPowerPolicy: ?*POWER_POLICY,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows6.1'
pub extern "powrprof" fn PowerIsSettingRangeDefined(
SubKeyGuid: ?*const Guid,
SettingGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows6.1'
pub extern "powrprof" fn PowerSettingAccessCheckEx(
AccessFlags: POWER_DATA_ACCESSOR,
PowerGuid: ?*const Guid,
AccessType: REG_SAM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerSettingAccessCheck(
AccessFlags: POWER_DATA_ACCESSOR,
PowerGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadACValueIndex(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
AcValueIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadDCValueIndex(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
DcValueIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadFriendlyName(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadDescription(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadPossibleValue(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
Type: ?*u32,
PossibleSettingIndex: u32,
// TODO: what to do with BytesParamIndex 6?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadPossibleFriendlyName(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
PossibleSettingIndex: u32,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadPossibleDescription(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
PossibleSettingIndex: u32,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadValueMin(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
ValueMinimum: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadValueMax(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
ValueMaximum: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadValueIncrement(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
ValueIncrement: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadValueUnitsSpecifier(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 4?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadACDefaultIndex(
RootPowerKey: ?HKEY,
SchemePersonalityGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
AcDefaultIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadDCDefaultIndex(
RootPowerKey: ?HKEY,
SchemePersonalityGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
DcDefaultIndex: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadIconResourceSpecifier(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReadSettingAttributes(
SubGroupGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteFriendlyName(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteDescription(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWritePossibleValue(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
Type: u32,
PossibleSettingIndex: u32,
// TODO: what to do with BytesParamIndex 6?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWritePossibleFriendlyName(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
PossibleSettingIndex: u32,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWritePossibleDescription(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
PossibleSettingIndex: u32,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteValueMin(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
ValueMinimum: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteValueMax(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
ValueMaximum: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteValueIncrement(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
ValueIncrement: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteValueUnitsSpecifier(
RootPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 4?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteACDefaultIndex(
RootSystemPowerKey: ?HKEY,
SchemePersonalityGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
DefaultAcIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteDCDefaultIndex(
RootSystemPowerKey: ?HKEY,
SchemePersonalityGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
DefaultDcIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteIconResourceSpecifier(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
// TODO: what to do with BytesParamIndex 5?
Buffer: ?*u8,
BufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerWriteSettingAttributes(
SubGroupGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
Attributes: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerDuplicateScheme(
RootPowerKey: ?HKEY,
SourceSchemeGuid: ?*const Guid,
DestinationSchemeGuid: ?*?*Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerImportPowerScheme(
RootPowerKey: ?HKEY,
ImportFileNamePath: ?[*:0]const u16,
DestinationSchemeGuid: ?*?*Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerDeleteScheme(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerRemovePowerSetting(
PowerSettingSubKeyGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerCreateSetting(
RootSystemPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerCreatePossibleSetting(
RootSystemPowerKey: ?HKEY,
SubGroupOfPowerSettingsGuid: ?*const Guid,
PowerSettingGuid: ?*const Guid,
PossibleSettingIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerEnumerate(
RootPowerKey: ?HKEY,
SchemeGuid: ?*const Guid,
SubGroupOfPowerSettingsGuid: ?*const Guid,
AccessFlags: POWER_DATA_ACCESSOR,
Index: u32,
// TODO: what to do with BytesParamIndex 6?
Buffer: ?*u8,
BufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "powrprof" fn PowerOpenUserPowerKey(
phUserPowerKey: ?*?HKEY,
Access: u32,
OpenExisting: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "powrprof" fn PowerOpenSystemPowerKey(
phSystemPowerKey: ?*?HKEY,
Access: u32,
OpenExisting: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerCanRestoreIndividualDefaultPowerScheme(
SchemeGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerRestoreIndividualDefaultPowerScheme(
SchemeGuid: ?*const Guid,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerRestoreDefaultPowerSchemes(
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerReplaceDefaultPowerSchemes(
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn PowerDeterminePlatformRole(
) callconv(@import("std").os.windows.WINAPI) POWER_PLATFORM_ROLE;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn DevicePowerEnumDevices(
QueryIndex: u32,
QueryInterpretationFlags: u32,
QueryFlags: u32,
// TODO: what to do with BytesParamIndex 4?
pReturnBuffer: ?*u8,
pBufferSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn DevicePowerSetDeviceState(
DeviceDescription: ?[*:0]const u16,
SetFlags: u32,
SetData: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn DevicePowerOpen(
DebugMask: u32,
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "powrprof" fn DevicePowerClose(
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
// TODO: this type is limited to platform 'windows8.1'
pub extern "powrprof" fn PowerReportThermalEvent(
Event: ?*THERMAL_EVENT,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn RegisterPowerSettingNotification(
hRecipient: ?HANDLE,
PowerSettingGuid: ?*const Guid,
Flags: u32,
) callconv(@import("std").os.windows.WINAPI) ?HPOWERNOTIFY;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn UnregisterPowerSettingNotification(
Handle: ?HPOWERNOTIFY,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows8.0'
pub extern "user32" fn RegisterSuspendResumeNotification(
hRecipient: ?HANDLE,
Flags: u32,
) callconv(@import("std").os.windows.WINAPI) ?HPOWERNOTIFY;
// TODO: this type is limited to platform 'windows8.0'
pub extern "user32" fn UnregisterSuspendResumeNotification(
Handle: ?HPOWERNOTIFY,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "kernel32" fn RequestWakeupLatency(
latency: LATENCY_TIME,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "kernel32" fn IsSystemResumeAutomatic(
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "kernel32" fn SetThreadExecutionState(
esFlags: EXECUTION_STATE,
) callconv(@import("std").os.windows.WINAPI) EXECUTION_STATE;
// TODO: this type is limited to platform 'windows6.1'
pub extern "kernel32" fn PowerCreateRequest(
Context: ?*REASON_CONTEXT,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
// TODO: this type is limited to platform 'windows6.1'
pub extern "kernel32" fn PowerSetRequest(
PowerRequest: ?HANDLE,
RequestType: POWER_REQUEST_TYPE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.1'
pub extern "kernel32" fn PowerClearRequest(
PowerRequest: ?HANDLE,
RequestType: POWER_REQUEST_TYPE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "kernel32" fn GetDevicePowerState(
hDevice: ?HANDLE,
pfOn: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "kernel32" fn SetSystemPowerState(
fSuspend: BOOL,
fForce: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "kernel32" fn GetSystemPowerStatus(
lpSystemPowerStatus: ?*SYSTEM_POWER_STATUS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
},
.wide => struct {
},
.unspecified => if (@import("builtin").is_test) struct {
} else struct {
},
};
//--------------------------------------------------------------------------------
// Section: Imports (11)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const HANDLE = @import("../foundation.zig").HANDLE;
const HKEY = @import("../system/registry.zig").HKEY;
const HRESULT = @import("../foundation.zig").HRESULT;
const LPARAM = @import("../foundation.zig").LPARAM;
const PROPERTYKEY = @import("../ui/shell/properties_system.zig").PROPERTYKEY;
const PWSTR = @import("../foundation.zig").PWSTR;
const REASON_CONTEXT = @import("../system/threading.zig").REASON_CONTEXT;
const REG_SAM_FLAGS = @import("../system/registry.zig").REG_SAM_FLAGS;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "EFFECTIVE_POWER_MODE_CALLBACK")) { _ = EFFECTIVE_POWER_MODE_CALLBACK; }
if (@hasDecl(@This(), "PWRSCHEMESENUMPROC_V1")) { _ = PWRSCHEMESENUMPROC_V1; }
if (@hasDecl(@This(), "PWRSCHEMESENUMPROC")) { _ = PWRSCHEMESENUMPROC; }
if (@hasDecl(@This(), "PDEVICE_NOTIFY_CALLBACK_ROUTINE")) { _ = PDEVICE_NOTIFY_CALLBACK_ROUTINE; }
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}