3454 lines
136 KiB
Zig
3454 lines
136 KiB
Zig
//! NOTE: this file is autogenerated, DO NOT MODIFY
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Constants (48)
|
|
//--------------------------------------------------------------------------------
|
|
pub const WAIT_OBJECT_0 = @as(u32, 0);
|
|
pub const WAIT_ABANDONED = @as(u32, 128);
|
|
pub const WAIT_ABANDONED_0 = @as(u32, 128);
|
|
pub const WAIT_IO_COMPLETION = @as(u32, 192);
|
|
pub const PRIVATE_NAMESPACE_FLAG_DESTROY = @as(u32, 1);
|
|
pub const PROC_THREAD_ATTRIBUTE_REPLACE_VALUE = @as(u32, 1);
|
|
pub const THREAD_POWER_THROTTLING_CURRENT_VERSION = @as(u32, 1);
|
|
pub const THREAD_POWER_THROTTLING_EXECUTION_SPEED = @as(u32, 1);
|
|
pub const THREAD_POWER_THROTTLING_VALID_FLAGS = @as(u32, 1);
|
|
pub const PME_CURRENT_VERSION = @as(u32, 1);
|
|
pub const PME_FAILFAST_ON_COMMIT_FAIL_DISABLE = @as(u32, 0);
|
|
pub const PME_FAILFAST_ON_COMMIT_FAIL_ENABLE = @as(u32, 1);
|
|
pub const PROCESS_POWER_THROTTLING_CURRENT_VERSION = @as(u32, 1);
|
|
pub const PROCESS_POWER_THROTTLING_EXECUTION_SPEED = @as(u32, 1);
|
|
pub const PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION = @as(u32, 4);
|
|
pub const PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND = @as(u32, 1);
|
|
pub const PROCESS_LEAP_SECOND_INFO_VALID_FLAGS = @as(u32, 1);
|
|
pub const INIT_ONCE_CHECK_ONLY = @as(u32, 1);
|
|
pub const INIT_ONCE_ASYNC = @as(u32, 2);
|
|
pub const INIT_ONCE_INIT_FAILED = @as(u32, 4);
|
|
pub const INIT_ONCE_CTX_RESERVED_BITS = @as(u32, 2);
|
|
pub const CONDITION_VARIABLE_LOCKMODE_SHARED = @as(u32, 1);
|
|
pub const MUTEX_MODIFY_STATE = @as(u32, 1);
|
|
pub const CREATE_MUTEX_INITIAL_OWNER = @as(u32, 1);
|
|
pub const CREATE_WAITABLE_TIMER_MANUAL_RESET = @as(u32, 1);
|
|
pub const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION = @as(u32, 2);
|
|
pub const SYNCHRONIZATION_BARRIER_FLAGS_SPIN_ONLY = @as(u32, 1);
|
|
pub const SYNCHRONIZATION_BARRIER_FLAGS_BLOCK_ONLY = @as(u32, 2);
|
|
pub const SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE = @as(u32, 4);
|
|
pub const PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = @as(u32, 131072);
|
|
pub const PROC_THREAD_ATTRIBUTE_HANDLE_LIST = @as(u32, 131074);
|
|
pub const PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = @as(u32, 196611);
|
|
pub const PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = @as(u32, 131076);
|
|
pub const PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = @as(u32, 196613);
|
|
pub const PROC_THREAD_ATTRIBUTE_UMS_THREAD = @as(u32, 196614);
|
|
pub const PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = @as(u32, 131079);
|
|
pub const PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES = @as(u32, 131081);
|
|
pub const PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = @as(u32, 131083);
|
|
pub const PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = @as(u32, 131094);
|
|
pub const PROC_THREAD_ATTRIBUTE_MACHINE_TYPE = @as(u32, 131097);
|
|
pub const PROC_THREAD_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES = @as(u32, 196635);
|
|
pub const PROC_THREAD_ATTRIBUTE_WIN32K_FILTER = @as(u32, 131088);
|
|
pub const PROC_THREAD_ATTRIBUTE_JOB_LIST = @as(u32, 131085);
|
|
pub const PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY = @as(u32, 131086);
|
|
pub const PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY = @as(u32, 131087);
|
|
pub const PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY = @as(u32, 131090);
|
|
pub const PROC_THREAD_ATTRIBUTE_MITIGATION_AUDIT_POLICY = @as(u32, 131096);
|
|
pub const PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER = @as(u32, 131098);
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Types (86)
|
|
//--------------------------------------------------------------------------------
|
|
pub const THREAD_CREATION_FLAGS = enum(u32) {
|
|
THREAD_CREATE_RUN_IMMEDIATELY = 0,
|
|
THREAD_CREATE_SUSPENDED = 4,
|
|
STACK_SIZE_PARAM_IS_A_RESERVATION = 65536,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
THREAD_CREATE_RUN_IMMEDIATELY: u1 = 0,
|
|
THREAD_CREATE_SUSPENDED: u1 = 0,
|
|
STACK_SIZE_PARAM_IS_A_RESERVATION: u1 = 0,
|
|
}) THREAD_CREATION_FLAGS {
|
|
return @as(THREAD_CREATION_FLAGS, @enumFromInt(
|
|
(if (o.THREAD_CREATE_RUN_IMMEDIATELY == 1) @intFromEnum(THREAD_CREATION_FLAGS.THREAD_CREATE_RUN_IMMEDIATELY) else 0)
|
|
| (if (o.THREAD_CREATE_SUSPENDED == 1) @intFromEnum(THREAD_CREATION_FLAGS.THREAD_CREATE_SUSPENDED) else 0)
|
|
| (if (o.STACK_SIZE_PARAM_IS_A_RESERVATION == 1) @intFromEnum(THREAD_CREATION_FLAGS.STACK_SIZE_PARAM_IS_A_RESERVATION) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const THREAD_CREATE_RUN_IMMEDIATELY = THREAD_CREATION_FLAGS.THREAD_CREATE_RUN_IMMEDIATELY;
|
|
pub const THREAD_CREATE_SUSPENDED = THREAD_CREATION_FLAGS.THREAD_CREATE_SUSPENDED;
|
|
pub const STACK_SIZE_PARAM_IS_A_RESERVATION = THREAD_CREATION_FLAGS.STACK_SIZE_PARAM_IS_A_RESERVATION;
|
|
|
|
pub const THREAD_PRIORITY = enum(i32) {
|
|
MODE_BACKGROUND_BEGIN = 65536,
|
|
MODE_BACKGROUND_END = 131072,
|
|
PRIORITY_ABOVE_NORMAL = 1,
|
|
PRIORITY_BELOW_NORMAL = -1,
|
|
PRIORITY_HIGHEST = 2,
|
|
PRIORITY_IDLE = -15,
|
|
PRIORITY_MIN = -2,
|
|
// PRIORITY_LOWEST = -2, this enum value conflicts with PRIORITY_MIN
|
|
PRIORITY_NORMAL = 0,
|
|
PRIORITY_TIME_CRITICAL = 15,
|
|
};
|
|
pub const THREAD_MODE_BACKGROUND_BEGIN = THREAD_PRIORITY.MODE_BACKGROUND_BEGIN;
|
|
pub const THREAD_MODE_BACKGROUND_END = THREAD_PRIORITY.MODE_BACKGROUND_END;
|
|
pub const THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY.PRIORITY_ABOVE_NORMAL;
|
|
pub const THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY.PRIORITY_BELOW_NORMAL;
|
|
pub const THREAD_PRIORITY_HIGHEST = THREAD_PRIORITY.PRIORITY_HIGHEST;
|
|
pub const THREAD_PRIORITY_IDLE = THREAD_PRIORITY.PRIORITY_IDLE;
|
|
pub const THREAD_PRIORITY_MIN = THREAD_PRIORITY.PRIORITY_MIN;
|
|
pub const THREAD_PRIORITY_LOWEST = THREAD_PRIORITY.PRIORITY_MIN;
|
|
pub const THREAD_PRIORITY_NORMAL = THREAD_PRIORITY.PRIORITY_NORMAL;
|
|
pub const THREAD_PRIORITY_TIME_CRITICAL = THREAD_PRIORITY.PRIORITY_TIME_CRITICAL;
|
|
|
|
pub const WORKER_THREAD_FLAGS = enum(u32) {
|
|
EXECUTEDEFAULT = 0,
|
|
EXECUTEINIOTHREAD = 1,
|
|
EXECUTEINPERSISTENTTHREAD = 128,
|
|
EXECUTEINWAITTHREAD = 4,
|
|
EXECUTELONGFUNCTION = 16,
|
|
EXECUTEONLYONCE = 8,
|
|
TRANSFER_IMPERSONATION = 256,
|
|
EXECUTEINTIMERTHREAD = 32,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
EXECUTEDEFAULT: u1 = 0,
|
|
EXECUTEINIOTHREAD: u1 = 0,
|
|
EXECUTEINPERSISTENTTHREAD: u1 = 0,
|
|
EXECUTEINWAITTHREAD: u1 = 0,
|
|
EXECUTELONGFUNCTION: u1 = 0,
|
|
EXECUTEONLYONCE: u1 = 0,
|
|
TRANSFER_IMPERSONATION: u1 = 0,
|
|
EXECUTEINTIMERTHREAD: u1 = 0,
|
|
}) WORKER_THREAD_FLAGS {
|
|
return @as(WORKER_THREAD_FLAGS, @enumFromInt(
|
|
(if (o.EXECUTEDEFAULT == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTEDEFAULT) else 0)
|
|
| (if (o.EXECUTEINIOTHREAD == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTEINIOTHREAD) else 0)
|
|
| (if (o.EXECUTEINPERSISTENTTHREAD == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTEINPERSISTENTTHREAD) else 0)
|
|
| (if (o.EXECUTEINWAITTHREAD == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTEINWAITTHREAD) else 0)
|
|
| (if (o.EXECUTELONGFUNCTION == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTELONGFUNCTION) else 0)
|
|
| (if (o.EXECUTEONLYONCE == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTEONLYONCE) else 0)
|
|
| (if (o.TRANSFER_IMPERSONATION == 1) @intFromEnum(WORKER_THREAD_FLAGS.TRANSFER_IMPERSONATION) else 0)
|
|
| (if (o.EXECUTEINTIMERTHREAD == 1) @intFromEnum(WORKER_THREAD_FLAGS.EXECUTEINTIMERTHREAD) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const WT_EXECUTEDEFAULT = WORKER_THREAD_FLAGS.EXECUTEDEFAULT;
|
|
pub const WT_EXECUTEINIOTHREAD = WORKER_THREAD_FLAGS.EXECUTEINIOTHREAD;
|
|
pub const WT_EXECUTEINPERSISTENTTHREAD = WORKER_THREAD_FLAGS.EXECUTEINPERSISTENTTHREAD;
|
|
pub const WT_EXECUTEINWAITTHREAD = WORKER_THREAD_FLAGS.EXECUTEINWAITTHREAD;
|
|
pub const WT_EXECUTELONGFUNCTION = WORKER_THREAD_FLAGS.EXECUTELONGFUNCTION;
|
|
pub const WT_EXECUTEONLYONCE = WORKER_THREAD_FLAGS.EXECUTEONLYONCE;
|
|
pub const WT_TRANSFER_IMPERSONATION = WORKER_THREAD_FLAGS.TRANSFER_IMPERSONATION;
|
|
pub const WT_EXECUTEINTIMERTHREAD = WORKER_THREAD_FLAGS.EXECUTEINTIMERTHREAD;
|
|
|
|
pub const CREATE_EVENT = enum(u32) {
|
|
INITIAL_SET = 2,
|
|
MANUAL_RESET = 1,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
INITIAL_SET: u1 = 0,
|
|
MANUAL_RESET: u1 = 0,
|
|
}) CREATE_EVENT {
|
|
return @as(CREATE_EVENT, @enumFromInt(
|
|
(if (o.INITIAL_SET == 1) @intFromEnum(CREATE_EVENT.INITIAL_SET) else 0)
|
|
| (if (o.MANUAL_RESET == 1) @intFromEnum(CREATE_EVENT.MANUAL_RESET) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const CREATE_EVENT_INITIAL_SET = CREATE_EVENT.INITIAL_SET;
|
|
pub const CREATE_EVENT_MANUAL_RESET = CREATE_EVENT.MANUAL_RESET;
|
|
|
|
pub const CREATE_PROCESS_LOGON_FLAGS = enum(u32) {
|
|
WITH_PROFILE = 1,
|
|
NETCREDENTIALS_ONLY = 2,
|
|
};
|
|
pub const LOGON_WITH_PROFILE = CREATE_PROCESS_LOGON_FLAGS.WITH_PROFILE;
|
|
pub const LOGON_NETCREDENTIALS_ONLY = CREATE_PROCESS_LOGON_FLAGS.NETCREDENTIALS_ONLY;
|
|
|
|
pub const PROCESS_AFFINITY_AUTO_UPDATE_FLAGS = enum(u32) {
|
|
DISABLE_AUTO_UPDATE = 0,
|
|
ENABLE_AUTO_UPDATE = 1,
|
|
};
|
|
pub const PROCESS_AFFINITY_DISABLE_AUTO_UPDATE = PROCESS_AFFINITY_AUTO_UPDATE_FLAGS.DISABLE_AUTO_UPDATE;
|
|
pub const PROCESS_AFFINITY_ENABLE_AUTO_UPDATE = PROCESS_AFFINITY_AUTO_UPDATE_FLAGS.ENABLE_AUTO_UPDATE;
|
|
|
|
pub const PROCESS_DEP_FLAGS = enum(u32) {
|
|
ENABLE = 1,
|
|
DISABLE_ATL_THUNK_EMULATION = 2,
|
|
NONE = 0,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
ENABLE: u1 = 0,
|
|
DISABLE_ATL_THUNK_EMULATION: u1 = 0,
|
|
NONE: u1 = 0,
|
|
}) PROCESS_DEP_FLAGS {
|
|
return @as(PROCESS_DEP_FLAGS, @enumFromInt(
|
|
(if (o.ENABLE == 1) @intFromEnum(PROCESS_DEP_FLAGS.ENABLE) else 0)
|
|
| (if (o.DISABLE_ATL_THUNK_EMULATION == 1) @intFromEnum(PROCESS_DEP_FLAGS.DISABLE_ATL_THUNK_EMULATION) else 0)
|
|
| (if (o.NONE == 1) @intFromEnum(PROCESS_DEP_FLAGS.NONE) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const PROCESS_DEP_ENABLE = PROCESS_DEP_FLAGS.ENABLE;
|
|
pub const PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION = PROCESS_DEP_FLAGS.DISABLE_ATL_THUNK_EMULATION;
|
|
pub const PROCESS_DEP_NONE = PROCESS_DEP_FLAGS.NONE;
|
|
|
|
pub const PROCESS_NAME_FORMAT = enum(u32) {
|
|
WIN32 = 0,
|
|
NATIVE = 1,
|
|
};
|
|
pub const PROCESS_NAME_WIN32 = PROCESS_NAME_FORMAT.WIN32;
|
|
pub const PROCESS_NAME_NATIVE = PROCESS_NAME_FORMAT.NATIVE;
|
|
|
|
pub const PROCESSOR_FEATURE_ID = enum(u32) {
|
|
ARM_64BIT_LOADSTORE_ATOMIC = 25,
|
|
ARM_DIVIDE_INSTRUCTION_AVAILABLE = 24,
|
|
ARM_EXTERNAL_CACHE_AVAILABLE = 26,
|
|
ARM_FMAC_INSTRUCTIONS_AVAILABLE = 27,
|
|
ARM_VFP_32_REGISTERS_AVAILABLE = 18,
|
|
@"3DNOW_INSTRUCTIONS_AVAILABLE" = 7,
|
|
CHANNELS_ENABLED = 16,
|
|
COMPARE_EXCHANGE_DOUBLE = 2,
|
|
COMPARE_EXCHANGE128 = 14,
|
|
COMPARE64_EXCHANGE128 = 15,
|
|
FASTFAIL_AVAILABLE = 23,
|
|
FLOATING_POINT_EMULATED = 1,
|
|
FLOATING_POINT_PRECISION_ERRATA = 0,
|
|
MMX_INSTRUCTIONS_AVAILABLE = 3,
|
|
NX_ENABLED = 12,
|
|
PAE_ENABLED = 9,
|
|
RDTSC_INSTRUCTION_AVAILABLE = 8,
|
|
RDWRFSGSBASE_AVAILABLE = 22,
|
|
SECOND_LEVEL_ADDRESS_TRANSLATION = 20,
|
|
SSE3_INSTRUCTIONS_AVAILABLE = 13,
|
|
VIRT_FIRMWARE_ENABLED = 21,
|
|
XMMI_INSTRUCTIONS_AVAILABLE = 6,
|
|
XMMI64_INSTRUCTIONS_AVAILABLE = 10,
|
|
XSAVE_ENABLED = 17,
|
|
ARM_V8_INSTRUCTIONS_AVAILABLE = 29,
|
|
ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE = 30,
|
|
ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE = 31,
|
|
ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE = 34,
|
|
};
|
|
pub const PF_ARM_64BIT_LOADSTORE_ATOMIC = PROCESSOR_FEATURE_ID.ARM_64BIT_LOADSTORE_ATOMIC;
|
|
pub const PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_DIVIDE_INSTRUCTION_AVAILABLE;
|
|
pub const PF_ARM_EXTERNAL_CACHE_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_EXTERNAL_CACHE_AVAILABLE;
|
|
pub const PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_FMAC_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_ARM_VFP_32_REGISTERS_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_VFP_32_REGISTERS_AVAILABLE;
|
|
pub const PF_3DNOW_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.@"3DNOW_INSTRUCTIONS_AVAILABLE";
|
|
pub const PF_CHANNELS_ENABLED = PROCESSOR_FEATURE_ID.CHANNELS_ENABLED;
|
|
pub const PF_COMPARE_EXCHANGE_DOUBLE = PROCESSOR_FEATURE_ID.COMPARE_EXCHANGE_DOUBLE;
|
|
pub const PF_COMPARE_EXCHANGE128 = PROCESSOR_FEATURE_ID.COMPARE_EXCHANGE128;
|
|
pub const PF_COMPARE64_EXCHANGE128 = PROCESSOR_FEATURE_ID.COMPARE64_EXCHANGE128;
|
|
pub const PF_FASTFAIL_AVAILABLE = PROCESSOR_FEATURE_ID.FASTFAIL_AVAILABLE;
|
|
pub const PF_FLOATING_POINT_EMULATED = PROCESSOR_FEATURE_ID.FLOATING_POINT_EMULATED;
|
|
pub const PF_FLOATING_POINT_PRECISION_ERRATA = PROCESSOR_FEATURE_ID.FLOATING_POINT_PRECISION_ERRATA;
|
|
pub const PF_MMX_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.MMX_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_NX_ENABLED = PROCESSOR_FEATURE_ID.NX_ENABLED;
|
|
pub const PF_PAE_ENABLED = PROCESSOR_FEATURE_ID.PAE_ENABLED;
|
|
pub const PF_RDTSC_INSTRUCTION_AVAILABLE = PROCESSOR_FEATURE_ID.RDTSC_INSTRUCTION_AVAILABLE;
|
|
pub const PF_RDWRFSGSBASE_AVAILABLE = PROCESSOR_FEATURE_ID.RDWRFSGSBASE_AVAILABLE;
|
|
pub const PF_SECOND_LEVEL_ADDRESS_TRANSLATION = PROCESSOR_FEATURE_ID.SECOND_LEVEL_ADDRESS_TRANSLATION;
|
|
pub const PF_SSE3_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.SSE3_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_VIRT_FIRMWARE_ENABLED = PROCESSOR_FEATURE_ID.VIRT_FIRMWARE_ENABLED;
|
|
pub const PF_XMMI_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.XMMI_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_XMMI64_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.XMMI64_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_XSAVE_ENABLED = PROCESSOR_FEATURE_ID.XSAVE_ENABLED;
|
|
pub const PF_ARM_V8_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_V8_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE;
|
|
pub const PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE = PROCESSOR_FEATURE_ID.ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE;
|
|
|
|
pub const GET_GUI_RESOURCES_FLAGS = enum(u32) {
|
|
GDIOBJECTS = 0,
|
|
GDIOBJECTS_PEAK = 2,
|
|
USEROBJECTS = 1,
|
|
USEROBJECTS_PEAK = 4,
|
|
};
|
|
pub const GR_GDIOBJECTS = GET_GUI_RESOURCES_FLAGS.GDIOBJECTS;
|
|
pub const GR_GDIOBJECTS_PEAK = GET_GUI_RESOURCES_FLAGS.GDIOBJECTS_PEAK;
|
|
pub const GR_USEROBJECTS = GET_GUI_RESOURCES_FLAGS.USEROBJECTS;
|
|
pub const GR_USEROBJECTS_PEAK = GET_GUI_RESOURCES_FLAGS.USEROBJECTS_PEAK;
|
|
|
|
pub const STARTUPINFOW_FLAGS = enum(u32) {
|
|
FORCEONFEEDBACK = 64,
|
|
FORCEOFFFEEDBACK = 128,
|
|
PREVENTPINNING = 8192,
|
|
RUNFULLSCREEN = 32,
|
|
TITLEISAPPID = 4096,
|
|
TITLEISLINKNAME = 2048,
|
|
UNTRUSTEDSOURCE = 32768,
|
|
USECOUNTCHARS = 8,
|
|
USEFILLATTRIBUTE = 16,
|
|
USEHOTKEY = 512,
|
|
USEPOSITION = 4,
|
|
USESHOWWINDOW = 1,
|
|
USESIZE = 2,
|
|
USESTDHANDLES = 256,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
FORCEONFEEDBACK: u1 = 0,
|
|
FORCEOFFFEEDBACK: u1 = 0,
|
|
PREVENTPINNING: u1 = 0,
|
|
RUNFULLSCREEN: u1 = 0,
|
|
TITLEISAPPID: u1 = 0,
|
|
TITLEISLINKNAME: u1 = 0,
|
|
UNTRUSTEDSOURCE: u1 = 0,
|
|
USECOUNTCHARS: u1 = 0,
|
|
USEFILLATTRIBUTE: u1 = 0,
|
|
USEHOTKEY: u1 = 0,
|
|
USEPOSITION: u1 = 0,
|
|
USESHOWWINDOW: u1 = 0,
|
|
USESIZE: u1 = 0,
|
|
USESTDHANDLES: u1 = 0,
|
|
}) STARTUPINFOW_FLAGS {
|
|
return @as(STARTUPINFOW_FLAGS, @enumFromInt(
|
|
(if (o.FORCEONFEEDBACK == 1) @intFromEnum(STARTUPINFOW_FLAGS.FORCEONFEEDBACK) else 0)
|
|
| (if (o.FORCEOFFFEEDBACK == 1) @intFromEnum(STARTUPINFOW_FLAGS.FORCEOFFFEEDBACK) else 0)
|
|
| (if (o.PREVENTPINNING == 1) @intFromEnum(STARTUPINFOW_FLAGS.PREVENTPINNING) else 0)
|
|
| (if (o.RUNFULLSCREEN == 1) @intFromEnum(STARTUPINFOW_FLAGS.RUNFULLSCREEN) else 0)
|
|
| (if (o.TITLEISAPPID == 1) @intFromEnum(STARTUPINFOW_FLAGS.TITLEISAPPID) else 0)
|
|
| (if (o.TITLEISLINKNAME == 1) @intFromEnum(STARTUPINFOW_FLAGS.TITLEISLINKNAME) else 0)
|
|
| (if (o.UNTRUSTEDSOURCE == 1) @intFromEnum(STARTUPINFOW_FLAGS.UNTRUSTEDSOURCE) else 0)
|
|
| (if (o.USECOUNTCHARS == 1) @intFromEnum(STARTUPINFOW_FLAGS.USECOUNTCHARS) else 0)
|
|
| (if (o.USEFILLATTRIBUTE == 1) @intFromEnum(STARTUPINFOW_FLAGS.USEFILLATTRIBUTE) else 0)
|
|
| (if (o.USEHOTKEY == 1) @intFromEnum(STARTUPINFOW_FLAGS.USEHOTKEY) else 0)
|
|
| (if (o.USEPOSITION == 1) @intFromEnum(STARTUPINFOW_FLAGS.USEPOSITION) else 0)
|
|
| (if (o.USESHOWWINDOW == 1) @intFromEnum(STARTUPINFOW_FLAGS.USESHOWWINDOW) else 0)
|
|
| (if (o.USESIZE == 1) @intFromEnum(STARTUPINFOW_FLAGS.USESIZE) else 0)
|
|
| (if (o.USESTDHANDLES == 1) @intFromEnum(STARTUPINFOW_FLAGS.USESTDHANDLES) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const STARTF_FORCEONFEEDBACK = STARTUPINFOW_FLAGS.FORCEONFEEDBACK;
|
|
pub const STARTF_FORCEOFFFEEDBACK = STARTUPINFOW_FLAGS.FORCEOFFFEEDBACK;
|
|
pub const STARTF_PREVENTPINNING = STARTUPINFOW_FLAGS.PREVENTPINNING;
|
|
pub const STARTF_RUNFULLSCREEN = STARTUPINFOW_FLAGS.RUNFULLSCREEN;
|
|
pub const STARTF_TITLEISAPPID = STARTUPINFOW_FLAGS.TITLEISAPPID;
|
|
pub const STARTF_TITLEISLINKNAME = STARTUPINFOW_FLAGS.TITLEISLINKNAME;
|
|
pub const STARTF_UNTRUSTEDSOURCE = STARTUPINFOW_FLAGS.UNTRUSTEDSOURCE;
|
|
pub const STARTF_USECOUNTCHARS = STARTUPINFOW_FLAGS.USECOUNTCHARS;
|
|
pub const STARTF_USEFILLATTRIBUTE = STARTUPINFOW_FLAGS.USEFILLATTRIBUTE;
|
|
pub const STARTF_USEHOTKEY = STARTUPINFOW_FLAGS.USEHOTKEY;
|
|
pub const STARTF_USEPOSITION = STARTUPINFOW_FLAGS.USEPOSITION;
|
|
pub const STARTF_USESHOWWINDOW = STARTUPINFOW_FLAGS.USESHOWWINDOW;
|
|
pub const STARTF_USESIZE = STARTUPINFOW_FLAGS.USESIZE;
|
|
pub const STARTF_USESTDHANDLES = STARTUPINFOW_FLAGS.USESTDHANDLES;
|
|
|
|
pub const MEMORY_PRIORITY = enum(u32) {
|
|
VERY_LOW = 1,
|
|
LOW = 2,
|
|
MEDIUM = 3,
|
|
BELOW_NORMAL = 4,
|
|
NORMAL = 5,
|
|
};
|
|
pub const MEMORY_PRIORITY_VERY_LOW = MEMORY_PRIORITY.VERY_LOW;
|
|
pub const MEMORY_PRIORITY_LOW = MEMORY_PRIORITY.LOW;
|
|
pub const MEMORY_PRIORITY_MEDIUM = MEMORY_PRIORITY.MEDIUM;
|
|
pub const MEMORY_PRIORITY_BELOW_NORMAL = MEMORY_PRIORITY.BELOW_NORMAL;
|
|
pub const MEMORY_PRIORITY_NORMAL = MEMORY_PRIORITY.NORMAL;
|
|
|
|
pub const PROCESS_PROTECTION_LEVEL = enum(u32) {
|
|
WINTCB_LIGHT = 0,
|
|
WINDOWS = 1,
|
|
WINDOWS_LIGHT = 2,
|
|
ANTIMALWARE_LIGHT = 3,
|
|
LSA_LIGHT = 4,
|
|
WINTCB = 5,
|
|
CODEGEN_LIGHT = 6,
|
|
AUTHENTICODE = 7,
|
|
PPL_APP = 8,
|
|
NONE = 4294967294,
|
|
};
|
|
pub const PROTECTION_LEVEL_WINTCB_LIGHT = PROCESS_PROTECTION_LEVEL.WINTCB_LIGHT;
|
|
pub const PROTECTION_LEVEL_WINDOWS = PROCESS_PROTECTION_LEVEL.WINDOWS;
|
|
pub const PROTECTION_LEVEL_WINDOWS_LIGHT = PROCESS_PROTECTION_LEVEL.WINDOWS_LIGHT;
|
|
pub const PROTECTION_LEVEL_ANTIMALWARE_LIGHT = PROCESS_PROTECTION_LEVEL.ANTIMALWARE_LIGHT;
|
|
pub const PROTECTION_LEVEL_LSA_LIGHT = PROCESS_PROTECTION_LEVEL.LSA_LIGHT;
|
|
pub const PROTECTION_LEVEL_WINTCB = PROCESS_PROTECTION_LEVEL.WINTCB;
|
|
pub const PROTECTION_LEVEL_CODEGEN_LIGHT = PROCESS_PROTECTION_LEVEL.CODEGEN_LIGHT;
|
|
pub const PROTECTION_LEVEL_AUTHENTICODE = PROCESS_PROTECTION_LEVEL.AUTHENTICODE;
|
|
pub const PROTECTION_LEVEL_PPL_APP = PROCESS_PROTECTION_LEVEL.PPL_APP;
|
|
pub const PROTECTION_LEVEL_NONE = PROCESS_PROTECTION_LEVEL.NONE;
|
|
|
|
pub const POWER_REQUEST_CONTEXT_FLAGS = enum(u32) {
|
|
DETAILED_STRING = 2,
|
|
SIMPLE_STRING = 1,
|
|
};
|
|
pub const POWER_REQUEST_CONTEXT_DETAILED_STRING = POWER_REQUEST_CONTEXT_FLAGS.DETAILED_STRING;
|
|
pub const POWER_REQUEST_CONTEXT_SIMPLE_STRING = POWER_REQUEST_CONTEXT_FLAGS.SIMPLE_STRING;
|
|
|
|
pub const THREAD_ACCESS_RIGHTS = enum(u32) {
|
|
TERMINATE = 1,
|
|
SUSPEND_RESUME = 2,
|
|
GET_CONTEXT = 8,
|
|
SET_CONTEXT = 16,
|
|
SET_INFORMATION = 32,
|
|
QUERY_INFORMATION = 64,
|
|
SET_THREAD_TOKEN = 128,
|
|
IMPERSONATE = 256,
|
|
DIRECT_IMPERSONATION = 512,
|
|
SET_LIMITED_INFORMATION = 1024,
|
|
QUERY_LIMITED_INFORMATION = 2048,
|
|
RESUME = 4096,
|
|
ALL_ACCESS = 2097151,
|
|
DELETE = 65536,
|
|
READ_CONTROL = 131072,
|
|
WRITE_DAC = 262144,
|
|
WRITE_OWNER = 524288,
|
|
SYNCHRONIZE = 1048576,
|
|
STANDARD_RIGHTS_REQUIRED = 983040,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
TERMINATE: u1 = 0,
|
|
SUSPEND_RESUME: u1 = 0,
|
|
GET_CONTEXT: u1 = 0,
|
|
SET_CONTEXT: u1 = 0,
|
|
SET_INFORMATION: u1 = 0,
|
|
QUERY_INFORMATION: u1 = 0,
|
|
SET_THREAD_TOKEN: u1 = 0,
|
|
IMPERSONATE: u1 = 0,
|
|
DIRECT_IMPERSONATION: u1 = 0,
|
|
SET_LIMITED_INFORMATION: u1 = 0,
|
|
QUERY_LIMITED_INFORMATION: u1 = 0,
|
|
RESUME: u1 = 0,
|
|
ALL_ACCESS: u1 = 0,
|
|
DELETE: u1 = 0,
|
|
READ_CONTROL: u1 = 0,
|
|
WRITE_DAC: u1 = 0,
|
|
WRITE_OWNER: u1 = 0,
|
|
SYNCHRONIZE: u1 = 0,
|
|
STANDARD_RIGHTS_REQUIRED: u1 = 0,
|
|
}) THREAD_ACCESS_RIGHTS {
|
|
return @as(THREAD_ACCESS_RIGHTS, @enumFromInt(
|
|
(if (o.TERMINATE == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.TERMINATE) else 0)
|
|
| (if (o.SUSPEND_RESUME == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.SUSPEND_RESUME) else 0)
|
|
| (if (o.GET_CONTEXT == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.GET_CONTEXT) else 0)
|
|
| (if (o.SET_CONTEXT == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.SET_CONTEXT) else 0)
|
|
| (if (o.SET_INFORMATION == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.SET_INFORMATION) else 0)
|
|
| (if (o.QUERY_INFORMATION == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.QUERY_INFORMATION) else 0)
|
|
| (if (o.SET_THREAD_TOKEN == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.SET_THREAD_TOKEN) else 0)
|
|
| (if (o.IMPERSONATE == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.IMPERSONATE) else 0)
|
|
| (if (o.DIRECT_IMPERSONATION == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.DIRECT_IMPERSONATION) else 0)
|
|
| (if (o.SET_LIMITED_INFORMATION == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.SET_LIMITED_INFORMATION) else 0)
|
|
| (if (o.QUERY_LIMITED_INFORMATION == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.QUERY_LIMITED_INFORMATION) else 0)
|
|
| (if (o.RESUME == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.RESUME) else 0)
|
|
| (if (o.ALL_ACCESS == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.ALL_ACCESS) else 0)
|
|
| (if (o.DELETE == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.DELETE) else 0)
|
|
| (if (o.READ_CONTROL == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.READ_CONTROL) else 0)
|
|
| (if (o.WRITE_DAC == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.WRITE_DAC) else 0)
|
|
| (if (o.WRITE_OWNER == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.WRITE_OWNER) else 0)
|
|
| (if (o.SYNCHRONIZE == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.SYNCHRONIZE) else 0)
|
|
| (if (o.STANDARD_RIGHTS_REQUIRED == 1) @intFromEnum(THREAD_ACCESS_RIGHTS.STANDARD_RIGHTS_REQUIRED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const THREAD_TERMINATE = THREAD_ACCESS_RIGHTS.TERMINATE;
|
|
pub const THREAD_SUSPEND_RESUME = THREAD_ACCESS_RIGHTS.SUSPEND_RESUME;
|
|
pub const THREAD_GET_CONTEXT = THREAD_ACCESS_RIGHTS.GET_CONTEXT;
|
|
pub const THREAD_SET_CONTEXT = THREAD_ACCESS_RIGHTS.SET_CONTEXT;
|
|
pub const THREAD_SET_INFORMATION = THREAD_ACCESS_RIGHTS.SET_INFORMATION;
|
|
pub const THREAD_QUERY_INFORMATION = THREAD_ACCESS_RIGHTS.QUERY_INFORMATION;
|
|
pub const THREAD_SET_THREAD_TOKEN = THREAD_ACCESS_RIGHTS.SET_THREAD_TOKEN;
|
|
pub const THREAD_IMPERSONATE = THREAD_ACCESS_RIGHTS.IMPERSONATE;
|
|
pub const THREAD_DIRECT_IMPERSONATION = THREAD_ACCESS_RIGHTS.DIRECT_IMPERSONATION;
|
|
pub const THREAD_SET_LIMITED_INFORMATION = THREAD_ACCESS_RIGHTS.SET_LIMITED_INFORMATION;
|
|
pub const THREAD_QUERY_LIMITED_INFORMATION = THREAD_ACCESS_RIGHTS.QUERY_LIMITED_INFORMATION;
|
|
pub const THREAD_RESUME = THREAD_ACCESS_RIGHTS.RESUME;
|
|
pub const THREAD_ALL_ACCESS = THREAD_ACCESS_RIGHTS.ALL_ACCESS;
|
|
pub const THREAD_DELETE = THREAD_ACCESS_RIGHTS.DELETE;
|
|
pub const THREAD_READ_CONTROL = THREAD_ACCESS_RIGHTS.READ_CONTROL;
|
|
pub const THREAD_WRITE_DAC = THREAD_ACCESS_RIGHTS.WRITE_DAC;
|
|
pub const THREAD_WRITE_OWNER = THREAD_ACCESS_RIGHTS.WRITE_OWNER;
|
|
pub const THREAD_SYNCHRONIZE = THREAD_ACCESS_RIGHTS.SYNCHRONIZE;
|
|
pub const THREAD_STANDARD_RIGHTS_REQUIRED = THREAD_ACCESS_RIGHTS.STANDARD_RIGHTS_REQUIRED;
|
|
|
|
pub const PROCESS_CREATION_FLAGS = enum(u32) {
|
|
DEBUG_PROCESS = 1,
|
|
DEBUG_ONLY_THIS_PROCESS = 2,
|
|
CREATE_SUSPENDED = 4,
|
|
DETACHED_PROCESS = 8,
|
|
CREATE_NEW_CONSOLE = 16,
|
|
NORMAL_PRIORITY_CLASS = 32,
|
|
IDLE_PRIORITY_CLASS = 64,
|
|
HIGH_PRIORITY_CLASS = 128,
|
|
REALTIME_PRIORITY_CLASS = 256,
|
|
CREATE_NEW_PROCESS_GROUP = 512,
|
|
CREATE_UNICODE_ENVIRONMENT = 1024,
|
|
CREATE_SEPARATE_WOW_VDM = 2048,
|
|
CREATE_SHARED_WOW_VDM = 4096,
|
|
CREATE_FORCEDOS = 8192,
|
|
BELOW_NORMAL_PRIORITY_CLASS = 16384,
|
|
ABOVE_NORMAL_PRIORITY_CLASS = 32768,
|
|
INHERIT_PARENT_AFFINITY = 65536,
|
|
INHERIT_CALLER_PRIORITY = 131072,
|
|
CREATE_PROTECTED_PROCESS = 262144,
|
|
EXTENDED_STARTUPINFO_PRESENT = 524288,
|
|
PROCESS_MODE_BACKGROUND_BEGIN = 1048576,
|
|
PROCESS_MODE_BACKGROUND_END = 2097152,
|
|
CREATE_SECURE_PROCESS = 4194304,
|
|
CREATE_BREAKAWAY_FROM_JOB = 16777216,
|
|
CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 33554432,
|
|
CREATE_DEFAULT_ERROR_MODE = 67108864,
|
|
CREATE_NO_WINDOW = 134217728,
|
|
PROFILE_USER = 268435456,
|
|
PROFILE_KERNEL = 536870912,
|
|
PROFILE_SERVER = 1073741824,
|
|
CREATE_IGNORE_SYSTEM_DEFAULT = 2147483648,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
DEBUG_PROCESS: u1 = 0,
|
|
DEBUG_ONLY_THIS_PROCESS: u1 = 0,
|
|
CREATE_SUSPENDED: u1 = 0,
|
|
DETACHED_PROCESS: u1 = 0,
|
|
CREATE_NEW_CONSOLE: u1 = 0,
|
|
NORMAL_PRIORITY_CLASS: u1 = 0,
|
|
IDLE_PRIORITY_CLASS: u1 = 0,
|
|
HIGH_PRIORITY_CLASS: u1 = 0,
|
|
REALTIME_PRIORITY_CLASS: u1 = 0,
|
|
CREATE_NEW_PROCESS_GROUP: u1 = 0,
|
|
CREATE_UNICODE_ENVIRONMENT: u1 = 0,
|
|
CREATE_SEPARATE_WOW_VDM: u1 = 0,
|
|
CREATE_SHARED_WOW_VDM: u1 = 0,
|
|
CREATE_FORCEDOS: u1 = 0,
|
|
BELOW_NORMAL_PRIORITY_CLASS: u1 = 0,
|
|
ABOVE_NORMAL_PRIORITY_CLASS: u1 = 0,
|
|
INHERIT_PARENT_AFFINITY: u1 = 0,
|
|
INHERIT_CALLER_PRIORITY: u1 = 0,
|
|
CREATE_PROTECTED_PROCESS: u1 = 0,
|
|
EXTENDED_STARTUPINFO_PRESENT: u1 = 0,
|
|
PROCESS_MODE_BACKGROUND_BEGIN: u1 = 0,
|
|
PROCESS_MODE_BACKGROUND_END: u1 = 0,
|
|
CREATE_SECURE_PROCESS: u1 = 0,
|
|
CREATE_BREAKAWAY_FROM_JOB: u1 = 0,
|
|
CREATE_PRESERVE_CODE_AUTHZ_LEVEL: u1 = 0,
|
|
CREATE_DEFAULT_ERROR_MODE: u1 = 0,
|
|
CREATE_NO_WINDOW: u1 = 0,
|
|
PROFILE_USER: u1 = 0,
|
|
PROFILE_KERNEL: u1 = 0,
|
|
PROFILE_SERVER: u1 = 0,
|
|
CREATE_IGNORE_SYSTEM_DEFAULT: u1 = 0,
|
|
}) PROCESS_CREATION_FLAGS {
|
|
return @as(PROCESS_CREATION_FLAGS, @enumFromInt(
|
|
(if (o.DEBUG_PROCESS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.DEBUG_PROCESS) else 0)
|
|
| (if (o.DEBUG_ONLY_THIS_PROCESS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.DEBUG_ONLY_THIS_PROCESS) else 0)
|
|
| (if (o.CREATE_SUSPENDED == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_SUSPENDED) else 0)
|
|
| (if (o.DETACHED_PROCESS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.DETACHED_PROCESS) else 0)
|
|
| (if (o.CREATE_NEW_CONSOLE == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_NEW_CONSOLE) else 0)
|
|
| (if (o.NORMAL_PRIORITY_CLASS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.NORMAL_PRIORITY_CLASS) else 0)
|
|
| (if (o.IDLE_PRIORITY_CLASS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.IDLE_PRIORITY_CLASS) else 0)
|
|
| (if (o.HIGH_PRIORITY_CLASS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.HIGH_PRIORITY_CLASS) else 0)
|
|
| (if (o.REALTIME_PRIORITY_CLASS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.REALTIME_PRIORITY_CLASS) else 0)
|
|
| (if (o.CREATE_NEW_PROCESS_GROUP == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_NEW_PROCESS_GROUP) else 0)
|
|
| (if (o.CREATE_UNICODE_ENVIRONMENT == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_UNICODE_ENVIRONMENT) else 0)
|
|
| (if (o.CREATE_SEPARATE_WOW_VDM == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_SEPARATE_WOW_VDM) else 0)
|
|
| (if (o.CREATE_SHARED_WOW_VDM == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_SHARED_WOW_VDM) else 0)
|
|
| (if (o.CREATE_FORCEDOS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_FORCEDOS) else 0)
|
|
| (if (o.BELOW_NORMAL_PRIORITY_CLASS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.BELOW_NORMAL_PRIORITY_CLASS) else 0)
|
|
| (if (o.ABOVE_NORMAL_PRIORITY_CLASS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.ABOVE_NORMAL_PRIORITY_CLASS) else 0)
|
|
| (if (o.INHERIT_PARENT_AFFINITY == 1) @intFromEnum(PROCESS_CREATION_FLAGS.INHERIT_PARENT_AFFINITY) else 0)
|
|
| (if (o.INHERIT_CALLER_PRIORITY == 1) @intFromEnum(PROCESS_CREATION_FLAGS.INHERIT_CALLER_PRIORITY) else 0)
|
|
| (if (o.CREATE_PROTECTED_PROCESS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_PROTECTED_PROCESS) else 0)
|
|
| (if (o.EXTENDED_STARTUPINFO_PRESENT == 1) @intFromEnum(PROCESS_CREATION_FLAGS.EXTENDED_STARTUPINFO_PRESENT) else 0)
|
|
| (if (o.PROCESS_MODE_BACKGROUND_BEGIN == 1) @intFromEnum(PROCESS_CREATION_FLAGS.PROCESS_MODE_BACKGROUND_BEGIN) else 0)
|
|
| (if (o.PROCESS_MODE_BACKGROUND_END == 1) @intFromEnum(PROCESS_CREATION_FLAGS.PROCESS_MODE_BACKGROUND_END) else 0)
|
|
| (if (o.CREATE_SECURE_PROCESS == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_SECURE_PROCESS) else 0)
|
|
| (if (o.CREATE_BREAKAWAY_FROM_JOB == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_BREAKAWAY_FROM_JOB) else 0)
|
|
| (if (o.CREATE_PRESERVE_CODE_AUTHZ_LEVEL == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_PRESERVE_CODE_AUTHZ_LEVEL) else 0)
|
|
| (if (o.CREATE_DEFAULT_ERROR_MODE == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_DEFAULT_ERROR_MODE) else 0)
|
|
| (if (o.CREATE_NO_WINDOW == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_NO_WINDOW) else 0)
|
|
| (if (o.PROFILE_USER == 1) @intFromEnum(PROCESS_CREATION_FLAGS.PROFILE_USER) else 0)
|
|
| (if (o.PROFILE_KERNEL == 1) @intFromEnum(PROCESS_CREATION_FLAGS.PROFILE_KERNEL) else 0)
|
|
| (if (o.PROFILE_SERVER == 1) @intFromEnum(PROCESS_CREATION_FLAGS.PROFILE_SERVER) else 0)
|
|
| (if (o.CREATE_IGNORE_SYSTEM_DEFAULT == 1) @intFromEnum(PROCESS_CREATION_FLAGS.CREATE_IGNORE_SYSTEM_DEFAULT) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const DEBUG_PROCESS = PROCESS_CREATION_FLAGS.DEBUG_PROCESS;
|
|
pub const DEBUG_ONLY_THIS_PROCESS = PROCESS_CREATION_FLAGS.DEBUG_ONLY_THIS_PROCESS;
|
|
pub const CREATE_SUSPENDED = PROCESS_CREATION_FLAGS.CREATE_SUSPENDED;
|
|
pub const DETACHED_PROCESS = PROCESS_CREATION_FLAGS.DETACHED_PROCESS;
|
|
pub const CREATE_NEW_CONSOLE = PROCESS_CREATION_FLAGS.CREATE_NEW_CONSOLE;
|
|
pub const NORMAL_PRIORITY_CLASS = PROCESS_CREATION_FLAGS.NORMAL_PRIORITY_CLASS;
|
|
pub const IDLE_PRIORITY_CLASS = PROCESS_CREATION_FLAGS.IDLE_PRIORITY_CLASS;
|
|
pub const HIGH_PRIORITY_CLASS = PROCESS_CREATION_FLAGS.HIGH_PRIORITY_CLASS;
|
|
pub const REALTIME_PRIORITY_CLASS = PROCESS_CREATION_FLAGS.REALTIME_PRIORITY_CLASS;
|
|
pub const CREATE_NEW_PROCESS_GROUP = PROCESS_CREATION_FLAGS.CREATE_NEW_PROCESS_GROUP;
|
|
pub const CREATE_UNICODE_ENVIRONMENT = PROCESS_CREATION_FLAGS.CREATE_UNICODE_ENVIRONMENT;
|
|
pub const CREATE_SEPARATE_WOW_VDM = PROCESS_CREATION_FLAGS.CREATE_SEPARATE_WOW_VDM;
|
|
pub const CREATE_SHARED_WOW_VDM = PROCESS_CREATION_FLAGS.CREATE_SHARED_WOW_VDM;
|
|
pub const CREATE_FORCEDOS = PROCESS_CREATION_FLAGS.CREATE_FORCEDOS;
|
|
pub const BELOW_NORMAL_PRIORITY_CLASS = PROCESS_CREATION_FLAGS.BELOW_NORMAL_PRIORITY_CLASS;
|
|
pub const ABOVE_NORMAL_PRIORITY_CLASS = PROCESS_CREATION_FLAGS.ABOVE_NORMAL_PRIORITY_CLASS;
|
|
pub const INHERIT_PARENT_AFFINITY = PROCESS_CREATION_FLAGS.INHERIT_PARENT_AFFINITY;
|
|
pub const INHERIT_CALLER_PRIORITY = PROCESS_CREATION_FLAGS.INHERIT_CALLER_PRIORITY;
|
|
pub const CREATE_PROTECTED_PROCESS = PROCESS_CREATION_FLAGS.CREATE_PROTECTED_PROCESS;
|
|
pub const EXTENDED_STARTUPINFO_PRESENT = PROCESS_CREATION_FLAGS.EXTENDED_STARTUPINFO_PRESENT;
|
|
pub const PROCESS_MODE_BACKGROUND_BEGIN = PROCESS_CREATION_FLAGS.PROCESS_MODE_BACKGROUND_BEGIN;
|
|
pub const PROCESS_MODE_BACKGROUND_END = PROCESS_CREATION_FLAGS.PROCESS_MODE_BACKGROUND_END;
|
|
pub const CREATE_SECURE_PROCESS = PROCESS_CREATION_FLAGS.CREATE_SECURE_PROCESS;
|
|
pub const CREATE_BREAKAWAY_FROM_JOB = PROCESS_CREATION_FLAGS.CREATE_BREAKAWAY_FROM_JOB;
|
|
pub const CREATE_PRESERVE_CODE_AUTHZ_LEVEL = PROCESS_CREATION_FLAGS.CREATE_PRESERVE_CODE_AUTHZ_LEVEL;
|
|
pub const CREATE_DEFAULT_ERROR_MODE = PROCESS_CREATION_FLAGS.CREATE_DEFAULT_ERROR_MODE;
|
|
pub const CREATE_NO_WINDOW = PROCESS_CREATION_FLAGS.CREATE_NO_WINDOW;
|
|
pub const PROFILE_USER = PROCESS_CREATION_FLAGS.PROFILE_USER;
|
|
pub const PROFILE_KERNEL = PROCESS_CREATION_FLAGS.PROFILE_KERNEL;
|
|
pub const PROFILE_SERVER = PROCESS_CREATION_FLAGS.PROFILE_SERVER;
|
|
pub const CREATE_IGNORE_SYSTEM_DEFAULT = PROCESS_CREATION_FLAGS.CREATE_IGNORE_SYSTEM_DEFAULT;
|
|
|
|
pub const PROCESS_ACCESS_RIGHTS = enum(u32) {
|
|
TERMINATE = 1,
|
|
CREATE_THREAD = 2,
|
|
SET_SESSIONID = 4,
|
|
VM_OPERATION = 8,
|
|
VM_READ = 16,
|
|
VM_WRITE = 32,
|
|
DUP_HANDLE = 64,
|
|
CREATE_PROCESS = 128,
|
|
SET_QUOTA = 256,
|
|
SET_INFORMATION = 512,
|
|
QUERY_INFORMATION = 1024,
|
|
SUSPEND_RESUME = 2048,
|
|
QUERY_LIMITED_INFORMATION = 4096,
|
|
SET_LIMITED_INFORMATION = 8192,
|
|
ALL_ACCESS = 2097151,
|
|
DELETE = 65536,
|
|
READ_CONTROL = 131072,
|
|
WRITE_DAC = 262144,
|
|
WRITE_OWNER = 524288,
|
|
SYNCHRONIZE = 1048576,
|
|
STANDARD_RIGHTS_REQUIRED = 983040,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
TERMINATE: u1 = 0,
|
|
CREATE_THREAD: u1 = 0,
|
|
SET_SESSIONID: u1 = 0,
|
|
VM_OPERATION: u1 = 0,
|
|
VM_READ: u1 = 0,
|
|
VM_WRITE: u1 = 0,
|
|
DUP_HANDLE: u1 = 0,
|
|
CREATE_PROCESS: u1 = 0,
|
|
SET_QUOTA: u1 = 0,
|
|
SET_INFORMATION: u1 = 0,
|
|
QUERY_INFORMATION: u1 = 0,
|
|
SUSPEND_RESUME: u1 = 0,
|
|
QUERY_LIMITED_INFORMATION: u1 = 0,
|
|
SET_LIMITED_INFORMATION: u1 = 0,
|
|
ALL_ACCESS: u1 = 0,
|
|
DELETE: u1 = 0,
|
|
READ_CONTROL: u1 = 0,
|
|
WRITE_DAC: u1 = 0,
|
|
WRITE_OWNER: u1 = 0,
|
|
SYNCHRONIZE: u1 = 0,
|
|
STANDARD_RIGHTS_REQUIRED: u1 = 0,
|
|
}) PROCESS_ACCESS_RIGHTS {
|
|
return @as(PROCESS_ACCESS_RIGHTS, @enumFromInt(
|
|
(if (o.TERMINATE == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.TERMINATE) else 0)
|
|
| (if (o.CREATE_THREAD == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.CREATE_THREAD) else 0)
|
|
| (if (o.SET_SESSIONID == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.SET_SESSIONID) else 0)
|
|
| (if (o.VM_OPERATION == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.VM_OPERATION) else 0)
|
|
| (if (o.VM_READ == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.VM_READ) else 0)
|
|
| (if (o.VM_WRITE == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.VM_WRITE) else 0)
|
|
| (if (o.DUP_HANDLE == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.DUP_HANDLE) else 0)
|
|
| (if (o.CREATE_PROCESS == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.CREATE_PROCESS) else 0)
|
|
| (if (o.SET_QUOTA == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.SET_QUOTA) else 0)
|
|
| (if (o.SET_INFORMATION == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.SET_INFORMATION) else 0)
|
|
| (if (o.QUERY_INFORMATION == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.QUERY_INFORMATION) else 0)
|
|
| (if (o.SUSPEND_RESUME == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.SUSPEND_RESUME) else 0)
|
|
| (if (o.QUERY_LIMITED_INFORMATION == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.QUERY_LIMITED_INFORMATION) else 0)
|
|
| (if (o.SET_LIMITED_INFORMATION == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.SET_LIMITED_INFORMATION) else 0)
|
|
| (if (o.ALL_ACCESS == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.ALL_ACCESS) else 0)
|
|
| (if (o.DELETE == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.DELETE) else 0)
|
|
| (if (o.READ_CONTROL == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.READ_CONTROL) else 0)
|
|
| (if (o.WRITE_DAC == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.WRITE_DAC) else 0)
|
|
| (if (o.WRITE_OWNER == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.WRITE_OWNER) else 0)
|
|
| (if (o.SYNCHRONIZE == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.SYNCHRONIZE) else 0)
|
|
| (if (o.STANDARD_RIGHTS_REQUIRED == 1) @intFromEnum(PROCESS_ACCESS_RIGHTS.STANDARD_RIGHTS_REQUIRED) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const PROCESS_TERMINATE = PROCESS_ACCESS_RIGHTS.TERMINATE;
|
|
pub const PROCESS_CREATE_THREAD = PROCESS_ACCESS_RIGHTS.CREATE_THREAD;
|
|
pub const PROCESS_SET_SESSIONID = PROCESS_ACCESS_RIGHTS.SET_SESSIONID;
|
|
pub const PROCESS_VM_OPERATION = PROCESS_ACCESS_RIGHTS.VM_OPERATION;
|
|
pub const PROCESS_VM_READ = PROCESS_ACCESS_RIGHTS.VM_READ;
|
|
pub const PROCESS_VM_WRITE = PROCESS_ACCESS_RIGHTS.VM_WRITE;
|
|
pub const PROCESS_DUP_HANDLE = PROCESS_ACCESS_RIGHTS.DUP_HANDLE;
|
|
pub const PROCESS_CREATE_PROCESS = PROCESS_ACCESS_RIGHTS.CREATE_PROCESS;
|
|
pub const PROCESS_SET_QUOTA = PROCESS_ACCESS_RIGHTS.SET_QUOTA;
|
|
pub const PROCESS_SET_INFORMATION = PROCESS_ACCESS_RIGHTS.SET_INFORMATION;
|
|
pub const PROCESS_QUERY_INFORMATION = PROCESS_ACCESS_RIGHTS.QUERY_INFORMATION;
|
|
pub const PROCESS_SUSPEND_RESUME = PROCESS_ACCESS_RIGHTS.SUSPEND_RESUME;
|
|
pub const PROCESS_QUERY_LIMITED_INFORMATION = PROCESS_ACCESS_RIGHTS.QUERY_LIMITED_INFORMATION;
|
|
pub const PROCESS_SET_LIMITED_INFORMATION = PROCESS_ACCESS_RIGHTS.SET_LIMITED_INFORMATION;
|
|
pub const PROCESS_ALL_ACCESS = PROCESS_ACCESS_RIGHTS.ALL_ACCESS;
|
|
pub const PROCESS_DELETE = PROCESS_ACCESS_RIGHTS.DELETE;
|
|
pub const PROCESS_READ_CONTROL = PROCESS_ACCESS_RIGHTS.READ_CONTROL;
|
|
pub const PROCESS_WRITE_DAC = PROCESS_ACCESS_RIGHTS.WRITE_DAC;
|
|
pub const PROCESS_WRITE_OWNER = PROCESS_ACCESS_RIGHTS.WRITE_OWNER;
|
|
pub const PROCESS_SYNCHRONIZE = PROCESS_ACCESS_RIGHTS.SYNCHRONIZE;
|
|
pub const PROCESS_STANDARD_RIGHTS_REQUIRED = PROCESS_ACCESS_RIGHTS.STANDARD_RIGHTS_REQUIRED;
|
|
|
|
pub const TP_CALLBACK_INSTANCE = extern struct {
|
|
placeholder: usize, // TODO: why is this type empty?
|
|
};
|
|
|
|
pub const TP_WORK = extern struct {
|
|
placeholder: usize, // TODO: why is this type empty?
|
|
};
|
|
|
|
pub const TP_TIMER = extern struct {
|
|
placeholder: usize, // TODO: why is this type empty?
|
|
};
|
|
|
|
pub const TP_WAIT = extern struct {
|
|
placeholder: usize, // TODO: why is this type empty?
|
|
};
|
|
|
|
pub const TP_IO = extern struct {
|
|
placeholder: usize, // TODO: why is this type empty?
|
|
};
|
|
|
|
// TODO: this type has a FreeFunc 'DeleteTimerQueueEx', what can Zig do with this information?
|
|
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
|
|
pub const TimerQueueHandle = isize;
|
|
|
|
// TODO: this type has a FreeFunc 'CloseThreadpool', what can Zig do with this information?
|
|
pub const PTP_POOL = isize;
|
|
|
|
// TODO: this type has a FreeFunc 'ClosePrivateNamespace', what can Zig do with this information?
|
|
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
|
|
pub const NamespaceHandle = isize;
|
|
|
|
// TODO: this type has a FreeFunc 'DeleteBoundaryDescriptor', what can Zig do with this information?
|
|
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
|
|
pub const BoundaryDescriptorHandle = isize;
|
|
|
|
pub const LPPROC_THREAD_ATTRIBUTE_LIST = *anyopaque;
|
|
|
|
pub const REASON_CONTEXT = extern struct {
|
|
Version: u32,
|
|
Flags: POWER_REQUEST_CONTEXT_FLAGS,
|
|
Reason: extern union {
|
|
Detailed: extern struct {
|
|
LocalizedReasonModule: ?HINSTANCE,
|
|
LocalizedReasonId: u32,
|
|
ReasonStringCount: u32,
|
|
ReasonStrings: ?*?PWSTR,
|
|
},
|
|
SimpleReasonString: ?PWSTR,
|
|
},
|
|
};
|
|
|
|
pub const LPTHREAD_START_ROUTINE = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
lpThreadParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
lpThreadParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
} ;
|
|
|
|
pub const PINIT_ONCE_FN = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
InitOnce: ?*RTL_RUN_ONCE,
|
|
Parameter: ?*anyopaque,
|
|
Context: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
else => *const fn(
|
|
InitOnce: ?*RTL_RUN_ONCE,
|
|
Parameter: ?*anyopaque,
|
|
Context: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL,
|
|
} ;
|
|
|
|
pub const PTIMERAPCROUTINE = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
lpArgToCompletionRoutine: ?*anyopaque,
|
|
dwTimerLowValue: u32,
|
|
dwTimerHighValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
lpArgToCompletionRoutine: ?*anyopaque,
|
|
dwTimerLowValue: u32,
|
|
dwTimerHighValue: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const PROCESS_INFORMATION = extern struct {
|
|
hProcess: ?HANDLE,
|
|
hThread: ?HANDLE,
|
|
dwProcessId: u32,
|
|
dwThreadId: u32,
|
|
};
|
|
|
|
pub const STARTUPINFOA = extern struct {
|
|
cb: u32,
|
|
lpReserved: ?PSTR,
|
|
lpDesktop: ?PSTR,
|
|
lpTitle: ?PSTR,
|
|
dwX: u32,
|
|
dwY: u32,
|
|
dwXSize: u32,
|
|
dwYSize: u32,
|
|
dwXCountChars: u32,
|
|
dwYCountChars: u32,
|
|
dwFillAttribute: u32,
|
|
dwFlags: STARTUPINFOW_FLAGS,
|
|
wShowWindow: u16,
|
|
cbReserved2: u16,
|
|
lpReserved2: ?*u8,
|
|
hStdInput: ?HANDLE,
|
|
hStdOutput: ?HANDLE,
|
|
hStdError: ?HANDLE,
|
|
};
|
|
|
|
pub const STARTUPINFOW = extern struct {
|
|
cb: u32,
|
|
lpReserved: ?PWSTR,
|
|
lpDesktop: ?PWSTR,
|
|
lpTitle: ?PWSTR,
|
|
dwX: u32,
|
|
dwY: u32,
|
|
dwXSize: u32,
|
|
dwYSize: u32,
|
|
dwXCountChars: u32,
|
|
dwYCountChars: u32,
|
|
dwFillAttribute: u32,
|
|
dwFlags: STARTUPINFOW_FLAGS,
|
|
wShowWindow: u16,
|
|
cbReserved2: u16,
|
|
lpReserved2: ?*u8,
|
|
hStdInput: ?HANDLE,
|
|
hStdOutput: ?HANDLE,
|
|
hStdError: ?HANDLE,
|
|
};
|
|
|
|
pub const QUEUE_USER_APC_FLAGS = enum(i32) {
|
|
NONE = 0,
|
|
SPECIAL_USER_APC = 1,
|
|
};
|
|
pub const QUEUE_USER_APC_FLAGS_NONE = QUEUE_USER_APC_FLAGS.NONE;
|
|
pub const QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = QUEUE_USER_APC_FLAGS.SPECIAL_USER_APC;
|
|
|
|
pub const THREAD_INFORMATION_CLASS = enum(i32) {
|
|
MemoryPriority = 0,
|
|
AbsoluteCpuPriority = 1,
|
|
DynamicCodePolicy = 2,
|
|
PowerThrottling = 3,
|
|
InformationClassMax = 4,
|
|
};
|
|
pub const ThreadMemoryPriority = THREAD_INFORMATION_CLASS.MemoryPriority;
|
|
pub const ThreadAbsoluteCpuPriority = THREAD_INFORMATION_CLASS.AbsoluteCpuPriority;
|
|
pub const ThreadDynamicCodePolicy = THREAD_INFORMATION_CLASS.DynamicCodePolicy;
|
|
pub const ThreadPowerThrottling = THREAD_INFORMATION_CLASS.PowerThrottling;
|
|
pub const ThreadInformationClassMax = THREAD_INFORMATION_CLASS.InformationClassMax;
|
|
|
|
pub const MEMORY_PRIORITY_INFORMATION = extern struct {
|
|
MemoryPriority: MEMORY_PRIORITY,
|
|
};
|
|
|
|
pub const THREAD_POWER_THROTTLING_STATE = extern struct {
|
|
Version: u32,
|
|
ControlMask: u32,
|
|
StateMask: u32,
|
|
};
|
|
|
|
pub const PROCESS_INFORMATION_CLASS = enum(i32) {
|
|
MemoryPriority = 0,
|
|
MemoryExhaustionInfo = 1,
|
|
AppMemoryInfo = 2,
|
|
InPrivateInfo = 3,
|
|
PowerThrottling = 4,
|
|
ReservedValue1 = 5,
|
|
TelemetryCoverageInfo = 6,
|
|
ProtectionLevelInfo = 7,
|
|
LeapSecondInfo = 8,
|
|
MachineTypeInfo = 9,
|
|
InformationClassMax = 10,
|
|
};
|
|
pub const ProcessMemoryPriority = PROCESS_INFORMATION_CLASS.MemoryPriority;
|
|
pub const ProcessMemoryExhaustionInfo = PROCESS_INFORMATION_CLASS.MemoryExhaustionInfo;
|
|
pub const ProcessAppMemoryInfo = PROCESS_INFORMATION_CLASS.AppMemoryInfo;
|
|
pub const ProcessInPrivateInfo = PROCESS_INFORMATION_CLASS.InPrivateInfo;
|
|
pub const ProcessPowerThrottling = PROCESS_INFORMATION_CLASS.PowerThrottling;
|
|
pub const ProcessReservedValue1 = PROCESS_INFORMATION_CLASS.ReservedValue1;
|
|
pub const ProcessTelemetryCoverageInfo = PROCESS_INFORMATION_CLASS.TelemetryCoverageInfo;
|
|
pub const ProcessProtectionLevelInfo = PROCESS_INFORMATION_CLASS.ProtectionLevelInfo;
|
|
pub const ProcessLeapSecondInfo = PROCESS_INFORMATION_CLASS.LeapSecondInfo;
|
|
pub const ProcessMachineTypeInfo = PROCESS_INFORMATION_CLASS.MachineTypeInfo;
|
|
pub const ProcessInformationClassMax = PROCESS_INFORMATION_CLASS.InformationClassMax;
|
|
|
|
pub const APP_MEMORY_INFORMATION = extern struct {
|
|
AvailableCommit: u64,
|
|
PrivateCommitUsage: u64,
|
|
PeakPrivateCommitUsage: u64,
|
|
TotalCommitUsage: u64,
|
|
};
|
|
|
|
pub const MACHINE_ATTRIBUTES = enum(u32) {
|
|
UserEnabled = 1,
|
|
KernelEnabled = 2,
|
|
Wow64Container = 4,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
UserEnabled: u1 = 0,
|
|
KernelEnabled: u1 = 0,
|
|
Wow64Container: u1 = 0,
|
|
}) MACHINE_ATTRIBUTES {
|
|
return @as(MACHINE_ATTRIBUTES, @enumFromInt(
|
|
(if (o.UserEnabled == 1) @intFromEnum(MACHINE_ATTRIBUTES.UserEnabled) else 0)
|
|
| (if (o.KernelEnabled == 1) @intFromEnum(MACHINE_ATTRIBUTES.KernelEnabled) else 0)
|
|
| (if (o.Wow64Container == 1) @intFromEnum(MACHINE_ATTRIBUTES.Wow64Container) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const UserEnabled = MACHINE_ATTRIBUTES.UserEnabled;
|
|
pub const KernelEnabled = MACHINE_ATTRIBUTES.KernelEnabled;
|
|
pub const Wow64Container = MACHINE_ATTRIBUTES.Wow64Container;
|
|
|
|
pub const PROCESS_MACHINE_INFORMATION = extern struct {
|
|
ProcessMachine: u16,
|
|
Res0: u16,
|
|
MachineAttributes: MACHINE_ATTRIBUTES,
|
|
};
|
|
|
|
pub const PROCESS_MEMORY_EXHAUSTION_TYPE = enum(i32) {
|
|
FailFastOnCommitFailure = 0,
|
|
Max = 1,
|
|
};
|
|
pub const PMETypeFailFastOnCommitFailure = PROCESS_MEMORY_EXHAUSTION_TYPE.FailFastOnCommitFailure;
|
|
pub const PMETypeMax = PROCESS_MEMORY_EXHAUSTION_TYPE.Max;
|
|
|
|
pub const PROCESS_MEMORY_EXHAUSTION_INFO = extern struct {
|
|
Version: u16,
|
|
Reserved: u16,
|
|
Type: PROCESS_MEMORY_EXHAUSTION_TYPE,
|
|
Value: usize,
|
|
};
|
|
|
|
pub const PROCESS_POWER_THROTTLING_STATE = extern struct {
|
|
Version: u32,
|
|
ControlMask: u32,
|
|
StateMask: u32,
|
|
};
|
|
|
|
pub const PROCESS_PROTECTION_LEVEL_INFORMATION = extern struct {
|
|
ProtectionLevel: PROCESS_PROTECTION_LEVEL,
|
|
};
|
|
|
|
pub const PROCESS_LEAP_SECOND_INFO = extern struct {
|
|
Flags: u32,
|
|
Reserved: u32,
|
|
};
|
|
|
|
pub const PTP_WIN32_IO_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Overlapped: ?*anyopaque,
|
|
IoResult: u32,
|
|
NumberOfBytesTransferred: usize,
|
|
Io: ?*TP_IO,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Overlapped: ?*anyopaque,
|
|
IoResult: u32,
|
|
NumberOfBytesTransferred: usize,
|
|
Io: ?*TP_IO,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const AVRT_PRIORITY = enum(i32) {
|
|
VERYLOW = -2,
|
|
LOW = -1,
|
|
NORMAL = 0,
|
|
HIGH = 1,
|
|
CRITICAL = 2,
|
|
};
|
|
pub const AVRT_PRIORITY_VERYLOW = AVRT_PRIORITY.VERYLOW;
|
|
pub const AVRT_PRIORITY_LOW = AVRT_PRIORITY.LOW;
|
|
pub const AVRT_PRIORITY_NORMAL = AVRT_PRIORITY.NORMAL;
|
|
pub const AVRT_PRIORITY_HIGH = AVRT_PRIORITY.HIGH;
|
|
pub const AVRT_PRIORITY_CRITICAL = AVRT_PRIORITY.CRITICAL;
|
|
|
|
pub const PROCESS_DYNAMIC_EH_CONTINUATION_TARGET = extern struct {
|
|
TargetAddress: usize,
|
|
Flags: usize,
|
|
};
|
|
|
|
pub const PROCESS_DYNAMIC_EH_CONTINUATION_TARGETS_INFORMATION = extern struct {
|
|
NumberOfTargets: u16,
|
|
Reserved: u16,
|
|
Reserved2: u32,
|
|
Targets: ?*PROCESS_DYNAMIC_EH_CONTINUATION_TARGET,
|
|
};
|
|
|
|
pub const PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE = extern struct {
|
|
BaseAddress: usize,
|
|
Size: usize,
|
|
Flags: u32,
|
|
};
|
|
|
|
pub const PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGES_INFORMATION = extern struct {
|
|
NumberOfRanges: u16,
|
|
Reserved: u16,
|
|
Reserved2: u32,
|
|
Ranges: ?*PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE,
|
|
};
|
|
|
|
pub const IO_COUNTERS = extern struct {
|
|
ReadOperationCount: u64,
|
|
WriteOperationCount: u64,
|
|
OtherOperationCount: u64,
|
|
ReadTransferCount: u64,
|
|
WriteTransferCount: u64,
|
|
OtherTransferCount: u64,
|
|
};
|
|
|
|
pub const PROCESS_MITIGATION_POLICY = enum(i32) {
|
|
ProcessDEPPolicy = 0,
|
|
ProcessASLRPolicy = 1,
|
|
ProcessDynamicCodePolicy = 2,
|
|
ProcessStrictHandleCheckPolicy = 3,
|
|
ProcessSystemCallDisablePolicy = 4,
|
|
ProcessMitigationOptionsMask = 5,
|
|
ProcessExtensionPointDisablePolicy = 6,
|
|
ProcessControlFlowGuardPolicy = 7,
|
|
ProcessSignaturePolicy = 8,
|
|
ProcessFontDisablePolicy = 9,
|
|
ProcessImageLoadPolicy = 10,
|
|
ProcessSystemCallFilterPolicy = 11,
|
|
ProcessPayloadRestrictionPolicy = 12,
|
|
ProcessChildProcessPolicy = 13,
|
|
ProcessSideChannelIsolationPolicy = 14,
|
|
ProcessUserShadowStackPolicy = 15,
|
|
ProcessRedirectionTrustPolicy = 16,
|
|
MaxProcessMitigationPolicy = 17,
|
|
};
|
|
pub const ProcessDEPPolicy = PROCESS_MITIGATION_POLICY.ProcessDEPPolicy;
|
|
pub const ProcessASLRPolicy = PROCESS_MITIGATION_POLICY.ProcessASLRPolicy;
|
|
pub const ProcessDynamicCodePolicy = PROCESS_MITIGATION_POLICY.ProcessDynamicCodePolicy;
|
|
pub const ProcessStrictHandleCheckPolicy = PROCESS_MITIGATION_POLICY.ProcessStrictHandleCheckPolicy;
|
|
pub const ProcessSystemCallDisablePolicy = PROCESS_MITIGATION_POLICY.ProcessSystemCallDisablePolicy;
|
|
pub const ProcessMitigationOptionsMask = PROCESS_MITIGATION_POLICY.ProcessMitigationOptionsMask;
|
|
pub const ProcessExtensionPointDisablePolicy = PROCESS_MITIGATION_POLICY.ProcessExtensionPointDisablePolicy;
|
|
pub const ProcessControlFlowGuardPolicy = PROCESS_MITIGATION_POLICY.ProcessControlFlowGuardPolicy;
|
|
pub const ProcessSignaturePolicy = PROCESS_MITIGATION_POLICY.ProcessSignaturePolicy;
|
|
pub const ProcessFontDisablePolicy = PROCESS_MITIGATION_POLICY.ProcessFontDisablePolicy;
|
|
pub const ProcessImageLoadPolicy = PROCESS_MITIGATION_POLICY.ProcessImageLoadPolicy;
|
|
pub const ProcessSystemCallFilterPolicy = PROCESS_MITIGATION_POLICY.ProcessSystemCallFilterPolicy;
|
|
pub const ProcessPayloadRestrictionPolicy = PROCESS_MITIGATION_POLICY.ProcessPayloadRestrictionPolicy;
|
|
pub const ProcessChildProcessPolicy = PROCESS_MITIGATION_POLICY.ProcessChildProcessPolicy;
|
|
pub const ProcessSideChannelIsolationPolicy = PROCESS_MITIGATION_POLICY.ProcessSideChannelIsolationPolicy;
|
|
pub const ProcessUserShadowStackPolicy = PROCESS_MITIGATION_POLICY.ProcessUserShadowStackPolicy;
|
|
pub const ProcessRedirectionTrustPolicy = PROCESS_MITIGATION_POLICY.ProcessRedirectionTrustPolicy;
|
|
pub const MaxProcessMitigationPolicy = PROCESS_MITIGATION_POLICY.MaxProcessMitigationPolicy;
|
|
|
|
pub const RTL_RUN_ONCE = extern union {
|
|
Ptr: ?*anyopaque,
|
|
};
|
|
|
|
pub const RTL_BARRIER = extern struct {
|
|
Reserved1: u32,
|
|
Reserved2: u32,
|
|
Reserved3: [2]usize,
|
|
Reserved4: u32,
|
|
Reserved5: u32,
|
|
};
|
|
|
|
pub const RTL_UMS_THREAD_INFO_CLASS = enum(i32) {
|
|
InvalidInfoClass = 0,
|
|
UserContext = 1,
|
|
Priority = 2,
|
|
Affinity = 3,
|
|
Teb = 4,
|
|
IsSuspended = 5,
|
|
IsTerminated = 6,
|
|
MaxInfoClass = 7,
|
|
};
|
|
pub const UmsThreadInvalidInfoClass = RTL_UMS_THREAD_INFO_CLASS.InvalidInfoClass;
|
|
pub const UmsThreadUserContext = RTL_UMS_THREAD_INFO_CLASS.UserContext;
|
|
pub const UmsThreadPriority = RTL_UMS_THREAD_INFO_CLASS.Priority;
|
|
pub const UmsThreadAffinity = RTL_UMS_THREAD_INFO_CLASS.Affinity;
|
|
pub const UmsThreadTeb = RTL_UMS_THREAD_INFO_CLASS.Teb;
|
|
pub const UmsThreadIsSuspended = RTL_UMS_THREAD_INFO_CLASS.IsSuspended;
|
|
pub const UmsThreadIsTerminated = RTL_UMS_THREAD_INFO_CLASS.IsTerminated;
|
|
pub const UmsThreadMaxInfoClass = RTL_UMS_THREAD_INFO_CLASS.MaxInfoClass;
|
|
|
|
pub const PRTL_UMS_SCHEDULER_ENTRY_POINT = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Reason: RTL_UMS_SCHEDULER_REASON,
|
|
ActivationPayload: usize,
|
|
SchedulerParam: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
Reason: RTL_UMS_SCHEDULER_REASON,
|
|
ActivationPayload: usize,
|
|
SchedulerParam: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const RTL_CRITICAL_SECTION_DEBUG = extern struct {
|
|
Type: u16,
|
|
CreatorBackTraceIndex: u16,
|
|
CriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
ProcessLocksList: LIST_ENTRY,
|
|
EntryCount: u32,
|
|
ContentionCount: u32,
|
|
Flags: u32,
|
|
CreatorBackTraceIndexHigh: u16,
|
|
SpareWORD: u16,
|
|
};
|
|
|
|
pub const RTL_CRITICAL_SECTION = extern struct {
|
|
DebugInfo: ?*RTL_CRITICAL_SECTION_DEBUG,
|
|
LockCount: i32,
|
|
RecursionCount: i32,
|
|
OwningThread: ?HANDLE,
|
|
LockSemaphore: ?HANDLE,
|
|
SpinCount: usize,
|
|
};
|
|
|
|
pub const RTL_SRWLOCK = extern struct {
|
|
Ptr: ?*anyopaque,
|
|
};
|
|
|
|
pub const RTL_CONDITION_VARIABLE = extern struct {
|
|
Ptr: ?*anyopaque,
|
|
};
|
|
|
|
pub const WAITORTIMERCALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
param0: ?*anyopaque,
|
|
param1: BOOLEAN,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
param0: ?*anyopaque,
|
|
param1: BOOLEAN,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const PFLS_CALLBACK_FUNCTION = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
lpFlsData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
lpFlsData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const PTP_SIMPLE_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const TP_CALLBACK_PRIORITY = enum(i32) {
|
|
HIGH = 0,
|
|
NORMAL = 1,
|
|
LOW = 2,
|
|
INVALID = 3,
|
|
// COUNT = 3, this enum value conflicts with INVALID
|
|
};
|
|
pub const TP_CALLBACK_PRIORITY_HIGH = TP_CALLBACK_PRIORITY.HIGH;
|
|
pub const TP_CALLBACK_PRIORITY_NORMAL = TP_CALLBACK_PRIORITY.NORMAL;
|
|
pub const TP_CALLBACK_PRIORITY_LOW = TP_CALLBACK_PRIORITY.LOW;
|
|
pub const TP_CALLBACK_PRIORITY_INVALID = TP_CALLBACK_PRIORITY.INVALID;
|
|
pub const TP_CALLBACK_PRIORITY_COUNT = TP_CALLBACK_PRIORITY.INVALID;
|
|
|
|
pub const TP_POOL_STACK_INFORMATION = extern struct {
|
|
StackReserve: usize,
|
|
StackCommit: usize,
|
|
};
|
|
|
|
pub const PTP_CLEANUP_GROUP_CANCEL_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
ObjectContext: ?*anyopaque,
|
|
CleanupContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
ObjectContext: ?*anyopaque,
|
|
CleanupContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const TP_CALLBACK_ENVIRON_V3 = extern struct {
|
|
pub const _ACTIVATION_CONTEXT = extern struct {
|
|
placeholder: usize, // TODO: why is this type empty?
|
|
};
|
|
Version: u32,
|
|
Pool: PTP_POOL,
|
|
CleanupGroup: isize,
|
|
CleanupGroupCancelCallback: ?PTP_CLEANUP_GROUP_CANCEL_CALLBACK,
|
|
RaceDll: ?*anyopaque,
|
|
ActivationContext: isize,
|
|
FinalizationCallback: ?PTP_SIMPLE_CALLBACK,
|
|
u: extern union {
|
|
Flags: u32,
|
|
s: extern struct {
|
|
_bitfield: u32,
|
|
},
|
|
},
|
|
CallbackPriority: TP_CALLBACK_PRIORITY,
|
|
Size: u32,
|
|
};
|
|
|
|
pub const PTP_WORK_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Work: ?*TP_WORK,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Work: ?*TP_WORK,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const PTP_TIMER_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Timer: ?*TP_TIMER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Timer: ?*TP_TIMER,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const PTP_WAIT_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Wait: ?*TP_WAIT,
|
|
WaitResult: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
Instance: ?*TP_CALLBACK_INSTANCE,
|
|
Context: ?*anyopaque,
|
|
Wait: ?*TP_WAIT,
|
|
WaitResult: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const LPFIBER_START_ROUTINE = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
lpFiberParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
lpFiberParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const UMS_SCHEDULER_STARTUP_INFO = extern struct {
|
|
UmsVersion: u32,
|
|
CompletionList: ?*anyopaque,
|
|
SchedulerProc: ?PRTL_UMS_SCHEDULER_ENTRY_POINT,
|
|
SchedulerParam: ?*anyopaque,
|
|
};
|
|
|
|
pub const UMS_SYSTEM_THREAD_INFORMATION = extern struct {
|
|
UmsVersion: u32,
|
|
Anonymous: extern union {
|
|
Anonymous: extern struct {
|
|
_bitfield: u32,
|
|
},
|
|
ThreadUmsFlags: u32,
|
|
},
|
|
};
|
|
|
|
pub const STARTUPINFOEXA = extern struct {
|
|
StartupInfo: STARTUPINFOA,
|
|
lpAttributeList: ?LPPROC_THREAD_ATTRIBUTE_LIST,
|
|
};
|
|
|
|
pub const STARTUPINFOEXW = extern struct {
|
|
StartupInfo: STARTUPINFOW,
|
|
lpAttributeList: ?LPPROC_THREAD_ATTRIBUTE_LIST,
|
|
};
|
|
|
|
pub const PROC_THREAD_ATTRIBUTE_NUM = enum(u32) {
|
|
ParentProcess = 0,
|
|
HandleList = 2,
|
|
GroupAffinity = 3,
|
|
PreferredNode = 4,
|
|
IdealProcessor = 5,
|
|
UmsThread = 6,
|
|
MitigationPolicy = 7,
|
|
SecurityCapabilities = 9,
|
|
ProtectionLevel = 11,
|
|
JobList = 13,
|
|
ChildProcessPolicy = 14,
|
|
AllApplicationPackagesPolicy = 15,
|
|
Win32kFilter = 16,
|
|
SafeOpenPromptOriginClaim = 17,
|
|
DesktopAppPolicy = 18,
|
|
PseudoConsole = 22,
|
|
MitigationAuditPolicy = 24,
|
|
MachineType = 25,
|
|
ComponentFilter = 26,
|
|
EnableOptionalXStateFeatures = 27,
|
|
};
|
|
pub const ProcThreadAttributeParentProcess = PROC_THREAD_ATTRIBUTE_NUM.ParentProcess;
|
|
pub const ProcThreadAttributeHandleList = PROC_THREAD_ATTRIBUTE_NUM.HandleList;
|
|
pub const ProcThreadAttributeGroupAffinity = PROC_THREAD_ATTRIBUTE_NUM.GroupAffinity;
|
|
pub const ProcThreadAttributePreferredNode = PROC_THREAD_ATTRIBUTE_NUM.PreferredNode;
|
|
pub const ProcThreadAttributeIdealProcessor = PROC_THREAD_ATTRIBUTE_NUM.IdealProcessor;
|
|
pub const ProcThreadAttributeUmsThread = PROC_THREAD_ATTRIBUTE_NUM.UmsThread;
|
|
pub const ProcThreadAttributeMitigationPolicy = PROC_THREAD_ATTRIBUTE_NUM.MitigationPolicy;
|
|
pub const ProcThreadAttributeSecurityCapabilities = PROC_THREAD_ATTRIBUTE_NUM.SecurityCapabilities;
|
|
pub const ProcThreadAttributeProtectionLevel = PROC_THREAD_ATTRIBUTE_NUM.ProtectionLevel;
|
|
pub const ProcThreadAttributeJobList = PROC_THREAD_ATTRIBUTE_NUM.JobList;
|
|
pub const ProcThreadAttributeChildProcessPolicy = PROC_THREAD_ATTRIBUTE_NUM.ChildProcessPolicy;
|
|
pub const ProcThreadAttributeAllApplicationPackagesPolicy = PROC_THREAD_ATTRIBUTE_NUM.AllApplicationPackagesPolicy;
|
|
pub const ProcThreadAttributeWin32kFilter = PROC_THREAD_ATTRIBUTE_NUM.Win32kFilter;
|
|
pub const ProcThreadAttributeSafeOpenPromptOriginClaim = PROC_THREAD_ATTRIBUTE_NUM.SafeOpenPromptOriginClaim;
|
|
pub const ProcThreadAttributeDesktopAppPolicy = PROC_THREAD_ATTRIBUTE_NUM.DesktopAppPolicy;
|
|
pub const ProcThreadAttributePseudoConsole = PROC_THREAD_ATTRIBUTE_NUM.PseudoConsole;
|
|
pub const ProcThreadAttributeMitigationAuditPolicy = PROC_THREAD_ATTRIBUTE_NUM.MitigationAuditPolicy;
|
|
pub const ProcThreadAttributeMachineType = PROC_THREAD_ATTRIBUTE_NUM.MachineType;
|
|
pub const ProcThreadAttributeComponentFilter = PROC_THREAD_ATTRIBUTE_NUM.ComponentFilter;
|
|
pub const ProcThreadAttributeEnableOptionalXStateFeatures = PROC_THREAD_ATTRIBUTE_NUM.EnableOptionalXStateFeatures;
|
|
|
|
pub const PEB_LDR_DATA = extern struct {
|
|
Reserved1: [8]u8,
|
|
Reserved2: [3]?*anyopaque,
|
|
InMemoryOrderModuleList: LIST_ENTRY,
|
|
};
|
|
|
|
pub const RTL_USER_PROCESS_PARAMETERS = extern struct {
|
|
Reserved1: [16]u8,
|
|
Reserved2: [10]?*anyopaque,
|
|
ImagePathName: UNICODE_STRING,
|
|
CommandLine: UNICODE_STRING,
|
|
};
|
|
|
|
pub const PPS_POST_PROCESS_INIT_ROUTINE = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
pub const PEB = extern struct {
|
|
Reserved1: [2]u8,
|
|
BeingDebugged: u8,
|
|
Reserved2: [1]u8,
|
|
Reserved3: [2]?*anyopaque,
|
|
Ldr: ?*PEB_LDR_DATA,
|
|
ProcessParameters: ?*RTL_USER_PROCESS_PARAMETERS,
|
|
Reserved4: [3]?*anyopaque,
|
|
AtlThunkSListPtr: ?*anyopaque,
|
|
Reserved5: ?*anyopaque,
|
|
Reserved6: u32,
|
|
Reserved7: ?*anyopaque,
|
|
Reserved8: u32,
|
|
AtlThunkSListPtr32: u32,
|
|
Reserved9: [45]?*anyopaque,
|
|
Reserved10: [96]u8,
|
|
PostProcessInitRoutine: ?PPS_POST_PROCESS_INIT_ROUTINE,
|
|
Reserved11: [128]u8,
|
|
Reserved12: [1]?*anyopaque,
|
|
SessionId: u32,
|
|
};
|
|
|
|
pub const PROCESS_BASIC_INFORMATION = extern struct {
|
|
Reserved1: ?*anyopaque,
|
|
PebBaseAddress: ?*PEB,
|
|
Reserved2: [2]?*anyopaque,
|
|
UniqueProcessId: usize,
|
|
Reserved3: ?*anyopaque,
|
|
};
|
|
|
|
pub const PROCESSINFOCLASS = enum(i32) {
|
|
BasicInformation = 0,
|
|
DebugPort = 7,
|
|
Wow64Information = 26,
|
|
ImageFileName = 27,
|
|
BreakOnTermination = 29,
|
|
};
|
|
pub const ProcessBasicInformation = PROCESSINFOCLASS.BasicInformation;
|
|
pub const ProcessDebugPort = PROCESSINFOCLASS.DebugPort;
|
|
pub const ProcessWow64Information = PROCESSINFOCLASS.Wow64Information;
|
|
pub const ProcessImageFileName = PROCESSINFOCLASS.ImageFileName;
|
|
pub const ProcessBreakOnTermination = PROCESSINFOCLASS.BreakOnTermination;
|
|
|
|
pub const THREADINFOCLASS = enum(i32) {
|
|
IsIoPending = 16,
|
|
NameInformation = 38,
|
|
};
|
|
pub const ThreadIsIoPending = THREADINFOCLASS.IsIoPending;
|
|
pub const ThreadNameInformation = THREADINFOCLASS.NameInformation;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Functions (298)
|
|
//--------------------------------------------------------------------------------
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessWorkingSetSize(
|
|
hProcess: ?HANDLE,
|
|
lpMinimumWorkingSetSize: ?*usize,
|
|
lpMaximumWorkingSetSize: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetProcessWorkingSetSize(
|
|
hProcess: ?HANDLE,
|
|
dwMinimumWorkingSetSize: usize,
|
|
dwMaximumWorkingSetSize: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn FlsAlloc(
|
|
lpCallback: ?PFLS_CALLBACK_FUNCTION,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn FlsGetValue(
|
|
dwFlsIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn FlsSetValue(
|
|
dwFlsIndex: u32,
|
|
lpFlsData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn FlsFree(
|
|
dwFlsIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn IsThreadAFiber(
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitializeSRWLock(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ReleaseSRWLockExclusive(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ReleaseSRWLockShared(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn AcquireSRWLockExclusive(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn AcquireSRWLockShared(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn TryAcquireSRWLockExclusive(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn TryAcquireSRWLockShared(
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn InitializeCriticalSection(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn EnterCriticalSection(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn LeaveCriticalSection(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn InitializeCriticalSectionAndSpinCount(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
dwSpinCount: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitializeCriticalSectionEx(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
dwSpinCount: u32,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetCriticalSectionSpinCount(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
dwSpinCount: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TryEnterCriticalSection(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn DeleteCriticalSection(
|
|
lpCriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitOnceInitialize(
|
|
InitOnce: ?*RTL_RUN_ONCE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitOnceExecuteOnce(
|
|
InitOnce: ?*RTL_RUN_ONCE,
|
|
InitFn: ?PINIT_ONCE_FN,
|
|
Parameter: ?*anyopaque,
|
|
Context: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitOnceBeginInitialize(
|
|
lpInitOnce: ?*RTL_RUN_ONCE,
|
|
dwFlags: u32,
|
|
fPending: ?*BOOL,
|
|
lpContext: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitOnceComplete(
|
|
lpInitOnce: ?*RTL_RUN_ONCE,
|
|
dwFlags: u32,
|
|
lpContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitializeConditionVariable(
|
|
ConditionVariable: ?*RTL_CONDITION_VARIABLE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn WakeConditionVariable(
|
|
ConditionVariable: ?*RTL_CONDITION_VARIABLE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn WakeAllConditionVariable(
|
|
ConditionVariable: ?*RTL_CONDITION_VARIABLE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SleepConditionVariableCS(
|
|
ConditionVariable: ?*RTL_CONDITION_VARIABLE,
|
|
CriticalSection: ?*RTL_CRITICAL_SECTION,
|
|
dwMilliseconds: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SleepConditionVariableSRW(
|
|
ConditionVariable: ?*RTL_CONDITION_VARIABLE,
|
|
SRWLock: ?*RTL_SRWLOCK,
|
|
dwMilliseconds: u32,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetEvent(
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ResetEvent(
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ReleaseSemaphore(
|
|
hSemaphore: ?HANDLE,
|
|
lReleaseCount: i32,
|
|
lpPreviousCount: ?*i32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ReleaseMutex(
|
|
hMutex: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn WaitForSingleObject(
|
|
hHandle: ?HANDLE,
|
|
dwMilliseconds: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SleepEx(
|
|
dwMilliseconds: u32,
|
|
bAlertable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn WaitForSingleObjectEx(
|
|
hHandle: ?HANDLE,
|
|
dwMilliseconds: u32,
|
|
bAlertable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn WaitForMultipleObjectsEx(
|
|
nCount: u32,
|
|
lpHandles: [*]const ?HANDLE,
|
|
bWaitAll: BOOL,
|
|
dwMilliseconds: u32,
|
|
bAlertable: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateMutexA(
|
|
lpMutexAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bInitialOwner: BOOL,
|
|
lpName: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateMutexW(
|
|
lpMutexAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bInitialOwner: BOOL,
|
|
lpName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenMutexW(
|
|
dwDesiredAccess: u32,
|
|
bInheritHandle: BOOL,
|
|
lpName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateEventA(
|
|
lpEventAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bManualReset: BOOL,
|
|
bInitialState: BOOL,
|
|
lpName: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateEventW(
|
|
lpEventAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bManualReset: BOOL,
|
|
bInitialState: BOOL,
|
|
lpName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenEventA(
|
|
dwDesiredAccess: u32,
|
|
bInheritHandle: BOOL,
|
|
lpName: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenEventW(
|
|
dwDesiredAccess: u32,
|
|
bInheritHandle: BOOL,
|
|
lpName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenSemaphoreW(
|
|
dwDesiredAccess: u32,
|
|
bInheritHandle: BOOL,
|
|
lpName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenWaitableTimerW(
|
|
dwDesiredAccess: u32,
|
|
bInheritHandle: BOOL,
|
|
lpTimerName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn SetWaitableTimerEx(
|
|
hTimer: ?HANDLE,
|
|
lpDueTime: ?*const LARGE_INTEGER,
|
|
lPeriod: i32,
|
|
pfnCompletionRoutine: ?PTIMERAPCROUTINE,
|
|
lpArgToCompletionRoutine: ?*anyopaque,
|
|
WakeContext: ?*REASON_CONTEXT,
|
|
TolerableDelay: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetWaitableTimer(
|
|
hTimer: ?HANDLE,
|
|
lpDueTime: ?*const LARGE_INTEGER,
|
|
lPeriod: i32,
|
|
pfnCompletionRoutine: ?PTIMERAPCROUTINE,
|
|
lpArgToCompletionRoutine: ?*anyopaque,
|
|
fResume: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CancelWaitableTimer(
|
|
hTimer: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateMutexExA(
|
|
lpMutexAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpName: ?[*:0]const u8,
|
|
dwFlags: u32,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateMutexExW(
|
|
lpMutexAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpName: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateEventExA(
|
|
lpEventAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpName: ?[*:0]const u8,
|
|
dwFlags: CREATE_EVENT,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateEventExW(
|
|
lpEventAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpName: ?[*:0]const u16,
|
|
dwFlags: CREATE_EVENT,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateSemaphoreExW(
|
|
lpSemaphoreAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lInitialCount: i32,
|
|
lMaximumCount: i32,
|
|
lpName: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateWaitableTimerExW(
|
|
lpTimerAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpTimerName: ?[*:0]const u16,
|
|
dwFlags: u32,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn EnterSynchronizationBarrier(
|
|
lpBarrier: ?*RTL_BARRIER,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn InitializeSynchronizationBarrier(
|
|
lpBarrier: ?*RTL_BARRIER,
|
|
lTotalThreads: i32,
|
|
lSpinCount: i32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn DeleteSynchronizationBarrier(
|
|
lpBarrier: ?*RTL_BARRIER,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn Sleep(
|
|
dwMilliseconds: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "vertdll" fn WaitOnAddress(
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
Address: ?*anyopaque,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
CompareAddress: ?*anyopaque,
|
|
AddressSize: usize,
|
|
dwMilliseconds: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "vertdll" fn WakeByAddressSingle(
|
|
Address: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "vertdll" fn WakeByAddressAll(
|
|
Address: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn WaitForMultipleObjects(
|
|
nCount: u32,
|
|
lpHandles: [*]const ?HANDLE,
|
|
bWaitAll: BOOL,
|
|
dwMilliseconds: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateSemaphoreW(
|
|
lpSemaphoreAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lInitialCount: i32,
|
|
lMaximumCount: i32,
|
|
lpName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateWaitableTimerW(
|
|
lpTimerAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bManualReset: BOOL,
|
|
lpTimerName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn InitializeSListHead(
|
|
ListHead: ?*SLIST_HEADER,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn InterlockedPopEntrySList(
|
|
ListHead: ?*SLIST_HEADER,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*SLIST_ENTRY;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn InterlockedPushEntrySList(
|
|
ListHead: ?*SLIST_HEADER,
|
|
ListEntry: ?*SLIST_ENTRY,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*SLIST_ENTRY;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn InterlockedPushListSListEx(
|
|
ListHead: ?*SLIST_HEADER,
|
|
List: ?*SLIST_ENTRY,
|
|
ListEnd: ?*SLIST_ENTRY,
|
|
Count: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*SLIST_ENTRY;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn InterlockedFlushSList(
|
|
ListHead: ?*SLIST_HEADER,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*SLIST_ENTRY;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn QueryDepthSList(
|
|
ListHead: ?*SLIST_HEADER,
|
|
) callconv(@import("std").os.windows.WINAPI) u16;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn QueueUserAPC(
|
|
pfnAPC: ?PAPCFUNC,
|
|
hThread: ?HANDLE,
|
|
dwData: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "kernel32" fn QueueUserAPC2(
|
|
ApcRoutine: ?PAPCFUNC,
|
|
Thread: ?HANDLE,
|
|
Data: usize,
|
|
Flags: QUEUE_USER_APC_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessTimes(
|
|
hProcess: ?HANDLE,
|
|
lpCreationTime: ?*FILETIME,
|
|
lpExitTime: ?*FILETIME,
|
|
lpKernelTime: ?*FILETIME,
|
|
lpUserTime: ?*FILETIME,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetCurrentProcess(
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetCurrentProcessId(
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ExitProcess(
|
|
uExitCode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) noreturn;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TerminateProcess(
|
|
hProcess: ?HANDLE,
|
|
uExitCode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetExitCodeProcess(
|
|
hProcess: ?HANDLE,
|
|
lpExitCode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SwitchToThread(
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateThread(
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
dwStackSize: usize,
|
|
lpStartAddress: ?LPTHREAD_START_ROUTINE,
|
|
lpParameter: ?*anyopaque,
|
|
dwCreationFlags: THREAD_CREATION_FLAGS,
|
|
lpThreadId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateRemoteThread(
|
|
hProcess: ?HANDLE,
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
dwStackSize: usize,
|
|
lpStartAddress: ?LPTHREAD_START_ROUTINE,
|
|
lpParameter: ?*anyopaque,
|
|
dwCreationFlags: u32,
|
|
lpThreadId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetCurrentThread(
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetCurrentThreadId(
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenThread(
|
|
dwDesiredAccess: THREAD_ACCESS_RIGHTS,
|
|
bInheritHandle: BOOL,
|
|
dwThreadId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetThreadPriority(
|
|
hThread: ?HANDLE,
|
|
nPriority: THREAD_PRIORITY,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetThreadPriorityBoost(
|
|
hThread: ?HANDLE,
|
|
bDisablePriorityBoost: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetThreadPriorityBoost(
|
|
hThread: ?HANDLE,
|
|
pDisablePriorityBoost: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetThreadPriority(
|
|
hThread: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) i32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ExitThread(
|
|
dwExitCode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) noreturn;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TerminateThread(
|
|
hThread: ?HANDLE,
|
|
dwExitCode: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetExitCodeThread(
|
|
hThread: ?HANDLE,
|
|
lpExitCode: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SuspendThread(
|
|
hThread: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ResumeThread(
|
|
hThread: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TlsAlloc(
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TlsGetValue(
|
|
dwTlsIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TlsSetValue(
|
|
dwTlsIndex: u32,
|
|
lpTlsValue: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn TlsFree(
|
|
dwTlsIndex: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateProcessA(
|
|
lpApplicationName: ?[*:0]const u8,
|
|
lpCommandLine: ?PSTR,
|
|
lpProcessAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bInheritHandles: BOOL,
|
|
dwCreationFlags: PROCESS_CREATION_FLAGS,
|
|
lpEnvironment: ?*anyopaque,
|
|
lpCurrentDirectory: ?[*:0]const u8,
|
|
lpStartupInfo: ?*STARTUPINFOA,
|
|
lpProcessInformation: ?*PROCESS_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateProcessW(
|
|
lpApplicationName: ?[*:0]const u16,
|
|
lpCommandLine: ?PWSTR,
|
|
lpProcessAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bInheritHandles: BOOL,
|
|
dwCreationFlags: PROCESS_CREATION_FLAGS,
|
|
lpEnvironment: ?*anyopaque,
|
|
lpCurrentDirectory: ?[*:0]const u16,
|
|
lpStartupInfo: ?*STARTUPINFOW,
|
|
lpProcessInformation: ?*PROCESS_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetProcessShutdownParameters(
|
|
dwLevel: u32,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessVersion(
|
|
ProcessId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetStartupInfoW(
|
|
lpStartupInfo: ?*STARTUPINFOW,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn CreateProcessAsUserW(
|
|
hToken: ?HANDLE,
|
|
lpApplicationName: ?[*:0]const u16,
|
|
lpCommandLine: ?PWSTR,
|
|
lpProcessAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bInheritHandles: BOOL,
|
|
dwCreationFlags: u32,
|
|
lpEnvironment: ?*anyopaque,
|
|
lpCurrentDirectory: ?[*:0]const u16,
|
|
lpStartupInfo: ?*STARTUPINFOW,
|
|
lpProcessInformation: ?*PROCESS_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn SetThreadToken(
|
|
Thread: ?*?HANDLE,
|
|
Token: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn OpenProcessToken(
|
|
ProcessHandle: ?HANDLE,
|
|
DesiredAccess: TOKEN_ACCESS_MASK,
|
|
TokenHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn OpenThreadToken(
|
|
ThreadHandle: ?HANDLE,
|
|
DesiredAccess: TOKEN_ACCESS_MASK,
|
|
OpenAsSelf: BOOL,
|
|
TokenHandle: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetPriorityClass(
|
|
hProcess: ?HANDLE,
|
|
dwPriorityClass: PROCESS_CREATION_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetPriorityClass(
|
|
hProcess: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetThreadStackGuarantee(
|
|
StackSizeInBytes: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetProcessId(
|
|
Process: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetThreadId(
|
|
Thread: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn FlushProcessWriteBuffers(
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetProcessIdOfThread(
|
|
Thread: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn InitializeProcThreadAttributeList(
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
lpAttributeList: ?LPPROC_THREAD_ATTRIBUTE_LIST,
|
|
dwAttributeCount: u32,
|
|
dwFlags: u32,
|
|
lpSize: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn DeleteProcThreadAttributeList(
|
|
lpAttributeList: ?LPPROC_THREAD_ATTRIBUTE_LIST,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn UpdateProcThreadAttribute(
|
|
lpAttributeList: ?LPPROC_THREAD_ATTRIBUTE_LIST,
|
|
dwFlags: u32,
|
|
Attribute: usize,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
lpValue: ?*anyopaque,
|
|
cbSize: usize,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
lpPreviousValue: ?*anyopaque,
|
|
lpReturnSize: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetProcessDynamicEHContinuationTargets(
|
|
Process: ?HANDLE,
|
|
NumberOfTargets: u16,
|
|
Targets: [*]PROCESS_DYNAMIC_EH_CONTINUATION_TARGET,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetProcessDynamicEnforcedCetCompatibleRanges(
|
|
Process: ?HANDLE,
|
|
NumberOfRanges: u16,
|
|
Ranges: [*]PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetProcessAffinityUpdateMode(
|
|
hProcess: ?HANDLE,
|
|
dwFlags: PROCESS_AFFINITY_AUTO_UPDATE_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn QueryProcessAffinityUpdateMode(
|
|
hProcess: ?HANDLE,
|
|
lpdwFlags: ?*PROCESS_AFFINITY_AUTO_UPDATE_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn CreateRemoteThreadEx(
|
|
hProcess: ?HANDLE,
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
dwStackSize: usize,
|
|
lpStartAddress: ?LPTHREAD_START_ROUTINE,
|
|
lpParameter: ?*anyopaque,
|
|
dwCreationFlags: u32,
|
|
lpAttributeList: ?LPPROC_THREAD_ATTRIBUTE_LIST,
|
|
lpThreadId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn GetCurrentThreadStackLimits(
|
|
LowLimit: ?*usize,
|
|
HighLimit: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn GetProcessMitigationPolicy(
|
|
hProcess: ?HANDLE,
|
|
MitigationPolicy: PROCESS_MITIGATION_POLICY,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
lpBuffer: ?*anyopaque,
|
|
dwLength: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn SetProcessMitigationPolicy(
|
|
MitigationPolicy: PROCESS_MITIGATION_POLICY,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
lpBuffer: ?*anyopaque,
|
|
dwLength: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetThreadTimes(
|
|
hThread: ?HANDLE,
|
|
lpCreationTime: ?*FILETIME,
|
|
lpExitTime: ?*FILETIME,
|
|
lpKernelTime: ?*FILETIME,
|
|
lpUserTime: ?*FILETIME,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn OpenProcess(
|
|
dwDesiredAccess: PROCESS_ACCESS_RIGHTS,
|
|
bInheritHandle: BOOL,
|
|
dwProcessId: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn IsProcessorFeaturePresent(
|
|
ProcessorFeature: PROCESSOR_FEATURE_ID,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetProcessHandleCount(
|
|
hProcess: ?HANDLE,
|
|
pdwHandleCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetCurrentProcessorNumber(
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn SetThreadIdealProcessorEx(
|
|
hThread: ?HANDLE,
|
|
lpIdealProcessor: ?*PROCESSOR_NUMBER,
|
|
lpPreviousIdealProcessor: ?*PROCESSOR_NUMBER,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetThreadIdealProcessorEx(
|
|
hThread: ?HANDLE,
|
|
lpIdealProcessor: ?*PROCESSOR_NUMBER,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetCurrentProcessorNumberEx(
|
|
ProcNumber: ?*PROCESSOR_NUMBER,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessPriorityBoost(
|
|
hProcess: ?HANDLE,
|
|
pDisablePriorityBoost: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetProcessPriorityBoost(
|
|
hProcess: ?HANDLE,
|
|
bDisablePriorityBoost: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetThreadIOPendingFlag(
|
|
hThread: ?HANDLE,
|
|
lpIOIsPending: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetSystemTimes(
|
|
lpIdleTime: ?*FILETIME,
|
|
lpKernelTime: ?*FILETIME,
|
|
lpUserTime: ?*FILETIME,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn GetThreadInformation(
|
|
hThread: ?HANDLE,
|
|
ThreadInformationClass: THREAD_INFORMATION_CLASS,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
ThreadInformation: ?*anyopaque,
|
|
ThreadInformationSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn SetThreadInformation(
|
|
hThread: ?HANDLE,
|
|
ThreadInformationClass: THREAD_INFORMATION_CLASS,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
ThreadInformation: ?*anyopaque,
|
|
ThreadInformationSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
pub extern "kernel32" fn IsProcessCritical(
|
|
hProcess: ?HANDLE,
|
|
Critical: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
pub extern "kernel32" fn SetProtectedPolicy(
|
|
PolicyGuid: ?*const Guid,
|
|
PolicyValue: usize,
|
|
OldPolicyValue: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.1'
|
|
pub extern "kernel32" fn QueryProtectedPolicy(
|
|
PolicyGuid: ?*const Guid,
|
|
PolicyValue: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetThreadIdealProcessor(
|
|
hThread: ?HANDLE,
|
|
dwIdealProcessor: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn SetProcessInformation(
|
|
hProcess: ?HANDLE,
|
|
ProcessInformationClass: PROCESS_INFORMATION_CLASS,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
ProcessInformation: ?*anyopaque,
|
|
ProcessInformationSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn GetProcessInformation(
|
|
hProcess: ?HANDLE,
|
|
ProcessInformationClass: PROCESS_INFORMATION_CLASS,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
ProcessInformation: ?*anyopaque,
|
|
ProcessInformationSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetProcessDefaultCpuSets(
|
|
Process: ?HANDLE,
|
|
CpuSetIds: ?[*]u32,
|
|
CpuSetIdCount: u32,
|
|
RequiredIdCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetProcessDefaultCpuSets(
|
|
Process: ?HANDLE,
|
|
CpuSetIds: ?[*]const u32,
|
|
CpuSetIdCount: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetThreadSelectedCpuSets(
|
|
Thread: ?HANDLE,
|
|
CpuSetIds: ?[*]u32,
|
|
CpuSetIdCount: u32,
|
|
RequiredIdCount: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetThreadSelectedCpuSets(
|
|
Thread: ?HANDLE,
|
|
CpuSetIds: [*]const u32,
|
|
CpuSetIdCount: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn CreateProcessAsUserA(
|
|
hToken: ?HANDLE,
|
|
lpApplicationName: ?[*:0]const u8,
|
|
lpCommandLine: ?PSTR,
|
|
lpProcessAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpThreadAttributes: ?*SECURITY_ATTRIBUTES,
|
|
bInheritHandles: BOOL,
|
|
dwCreationFlags: u32,
|
|
lpEnvironment: ?*anyopaque,
|
|
lpCurrentDirectory: ?[*:0]const u8,
|
|
lpStartupInfo: ?*STARTUPINFOA,
|
|
lpProcessInformation: ?*PROCESS_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessShutdownParameters(
|
|
lpdwLevel: ?*u32,
|
|
lpdwFlags: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetProcessDefaultCpuSetMasks(
|
|
Process: ?HANDLE,
|
|
CpuSetMasks: ?[*]GROUP_AFFINITY,
|
|
CpuSetMaskCount: u16,
|
|
RequiredMaskCount: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetProcessDefaultCpuSetMasks(
|
|
Process: ?HANDLE,
|
|
CpuSetMasks: ?[*]GROUP_AFFINITY,
|
|
CpuSetMaskCount: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetThreadSelectedCpuSetMasks(
|
|
Thread: ?HANDLE,
|
|
CpuSetMasks: ?[*]GROUP_AFFINITY,
|
|
CpuSetMaskCount: u16,
|
|
RequiredMaskCount: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetThreadSelectedCpuSetMasks(
|
|
Thread: ?HANDLE,
|
|
CpuSetMasks: ?[*]GROUP_AFFINITY,
|
|
CpuSetMaskCount: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetMachineTypeAttributes(
|
|
Machine: u16,
|
|
MachineTypeAttributes: ?*MACHINE_ATTRIBUTES,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.14393'
|
|
pub extern "kernel32" fn SetThreadDescription(
|
|
hThread: ?HANDLE,
|
|
lpThreadDescription: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.14393'
|
|
pub extern "kernel32" fn GetThreadDescription(
|
|
hThread: ?HANDLE,
|
|
ppszThreadDescription: ?*?PWSTR,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn QueueUserWorkItem(
|
|
Function: ?LPTHREAD_START_ROUTINE,
|
|
Context: ?*anyopaque,
|
|
Flags: WORKER_THREAD_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn UnregisterWaitEx(
|
|
WaitHandle: ?HANDLE,
|
|
CompletionEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateTimerQueue(
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateTimerQueueTimer(
|
|
phNewTimer: ?*?HANDLE,
|
|
TimerQueue: ?HANDLE,
|
|
Callback: ?WAITORTIMERCALLBACK,
|
|
Parameter: ?*anyopaque,
|
|
DueTime: u32,
|
|
Period: u32,
|
|
Flags: WORKER_THREAD_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ChangeTimerQueueTimer(
|
|
TimerQueue: ?HANDLE,
|
|
Timer: ?HANDLE,
|
|
DueTime: u32,
|
|
Period: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn DeleteTimerQueueTimer(
|
|
TimerQueue: ?HANDLE,
|
|
Timer: ?HANDLE,
|
|
CompletionEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn DeleteTimerQueue(
|
|
TimerQueue: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn DeleteTimerQueueEx(
|
|
TimerQueue: ?HANDLE,
|
|
CompletionEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateThreadpool(
|
|
reserved: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) PTP_POOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetThreadpoolThreadMaximum(
|
|
ptpp: PTP_POOL,
|
|
cthrdMost: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetThreadpoolThreadMinimum(
|
|
ptpp: PTP_POOL,
|
|
cthrdMic: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn SetThreadpoolStackInformation(
|
|
ptpp: PTP_POOL,
|
|
ptpsi: ?*TP_POOL_STACK_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn QueryThreadpoolStackInformation(
|
|
ptpp: PTP_POOL,
|
|
ptpsi: ?*TP_POOL_STACK_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpool(
|
|
ptpp: PTP_POOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateThreadpoolCleanupGroup(
|
|
) callconv(@import("std").os.windows.WINAPI) isize;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpoolCleanupGroupMembers(
|
|
ptpcg: isize,
|
|
fCancelPendingCallbacks: BOOL,
|
|
pvCleanupContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpoolCleanupGroup(
|
|
ptpcg: isize,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetEventWhenCallbackReturns(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
evt: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ReleaseSemaphoreWhenCallbackReturns(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
sem: ?HANDLE,
|
|
crel: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ReleaseMutexWhenCallbackReturns(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
mut: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn LeaveCriticalSectionWhenCallbackReturns(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
pcs: ?*RTL_CRITICAL_SECTION,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn FreeLibraryWhenCallbackReturns(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
mod: ?HINSTANCE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CallbackMayRunLong(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn DisassociateCurrentThreadFromCallback(
|
|
pci: ?*TP_CALLBACK_INSTANCE,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn TrySubmitThreadpoolCallback(
|
|
pfns: ?PTP_SIMPLE_CALLBACK,
|
|
pv: ?*anyopaque,
|
|
pcbe: ?*TP_CALLBACK_ENVIRON_V3,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateThreadpoolWork(
|
|
pfnwk: ?PTP_WORK_CALLBACK,
|
|
pv: ?*anyopaque,
|
|
pcbe: ?*TP_CALLBACK_ENVIRON_V3,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*TP_WORK;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SubmitThreadpoolWork(
|
|
pwk: ?*TP_WORK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn WaitForThreadpoolWorkCallbacks(
|
|
pwk: ?*TP_WORK,
|
|
fCancelPendingCallbacks: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpoolWork(
|
|
pwk: ?*TP_WORK,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateThreadpoolTimer(
|
|
pfnti: ?PTP_TIMER_CALLBACK,
|
|
pv: ?*anyopaque,
|
|
pcbe: ?*TP_CALLBACK_ENVIRON_V3,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*TP_TIMER;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetThreadpoolTimer(
|
|
pti: ?*TP_TIMER,
|
|
pftDueTime: ?*FILETIME,
|
|
msPeriod: u32,
|
|
msWindowLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn IsThreadpoolTimerSet(
|
|
pti: ?*TP_TIMER,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn WaitForThreadpoolTimerCallbacks(
|
|
pti: ?*TP_TIMER,
|
|
fCancelPendingCallbacks: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpoolTimer(
|
|
pti: ?*TP_TIMER,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateThreadpoolWait(
|
|
pfnwa: ?PTP_WAIT_CALLBACK,
|
|
pv: ?*anyopaque,
|
|
pcbe: ?*TP_CALLBACK_ENVIRON_V3,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*TP_WAIT;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetThreadpoolWait(
|
|
pwa: ?*TP_WAIT,
|
|
h: ?HANDLE,
|
|
pftTimeout: ?*FILETIME,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn WaitForThreadpoolWaitCallbacks(
|
|
pwa: ?*TP_WAIT,
|
|
fCancelPendingCallbacks: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpoolWait(
|
|
pwa: ?*TP_WAIT,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateThreadpoolIo(
|
|
fl: ?HANDLE,
|
|
pfnio: ?PTP_WIN32_IO_CALLBACK,
|
|
pv: ?*anyopaque,
|
|
pcbe: ?*TP_CALLBACK_ENVIRON_V3,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*TP_IO;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn StartThreadpoolIo(
|
|
pio: ?*TP_IO,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CancelThreadpoolIo(
|
|
pio: ?*TP_IO,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn WaitForThreadpoolIoCallbacks(
|
|
pio: ?*TP_IO,
|
|
fCancelPendingCallbacks: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CloseThreadpoolIo(
|
|
pio: ?*TP_IO,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn SetThreadpoolTimerEx(
|
|
pti: ?*TP_TIMER,
|
|
pftDueTime: ?*FILETIME,
|
|
msPeriod: u32,
|
|
msWindowLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "kernel32" fn SetThreadpoolWaitEx(
|
|
pwa: ?*TP_WAIT,
|
|
h: ?HANDLE,
|
|
pftTimeout: ?*FILETIME,
|
|
Reserved: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn IsWow64Process(
|
|
hProcess: ?HANDLE,
|
|
Wow64Process: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "api-ms-win-core-wow64-l1-1-1" fn Wow64SetThreadDefaultGuestMachine(
|
|
Machine: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) u16;
|
|
|
|
// TODO: this type is limited to platform 'windows10.0.10586'
|
|
pub extern "kernel32" fn IsWow64Process2(
|
|
hProcess: ?HANDLE,
|
|
pProcessMachine: ?*u16,
|
|
pNativeMachine: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn Wow64SuspendThread(
|
|
hThread: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
pub extern "kernel32" fn CreatePrivateNamespaceW(
|
|
lpPrivateNamespaceAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpBoundaryDescriptor: ?*anyopaque,
|
|
lpAliasPrefix: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) NamespaceHandle;
|
|
|
|
pub extern "kernel32" fn OpenPrivateNamespaceW(
|
|
lpBoundaryDescriptor: ?*anyopaque,
|
|
lpAliasPrefix: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) NamespaceHandle;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ClosePrivateNamespace(
|
|
Handle: NamespaceHandle,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOLEAN;
|
|
|
|
pub extern "kernel32" fn CreateBoundaryDescriptorW(
|
|
Name: ?[*:0]const u16,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BoundaryDescriptorHandle;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn AddSIDToBoundaryDescriptor(
|
|
BoundaryDescriptor: ?*?HANDLE,
|
|
RequiredSid: ?PSID,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn DeleteBoundaryDescriptor(
|
|
BoundaryDescriptor: BoundaryDescriptorHandle,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNumaHighestNodeNumber(
|
|
HighestNodeNumber: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetNumaNodeProcessorMaskEx(
|
|
Node: u16,
|
|
ProcessorMask: ?*GROUP_AFFINITY,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetNumaNodeProcessorMask2(
|
|
NodeNumber: u16,
|
|
ProcessorMasks: ?[*]GROUP_AFFINITY,
|
|
ProcessorMaskCount: u16,
|
|
RequiredMaskCount: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetNumaProximityNodeEx(
|
|
ProximityId: u32,
|
|
NodeNumber: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetProcessGroupAffinity(
|
|
hProcess: ?HANDLE,
|
|
GroupCount: ?*u16,
|
|
GroupArray: [*:0]u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetThreadGroupAffinity(
|
|
hThread: ?HANDLE,
|
|
GroupAffinity: ?*GROUP_AFFINITY,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn SetThreadGroupAffinity(
|
|
hThread: ?HANDLE,
|
|
GroupAffinity: ?*const GROUP_AFFINITY,
|
|
PreviousGroupAffinity: ?*GROUP_AFFINITY,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvSetMmThreadCharacteristicsA(
|
|
TaskName: ?[*:0]const u8,
|
|
TaskIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvSetMmThreadCharacteristicsW(
|
|
TaskName: ?[*:0]const u16,
|
|
TaskIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvSetMmMaxThreadCharacteristicsA(
|
|
FirstTask: ?[*:0]const u8,
|
|
SecondTask: ?[*:0]const u8,
|
|
TaskIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvSetMmMaxThreadCharacteristicsW(
|
|
FirstTask: ?[*:0]const u16,
|
|
SecondTask: ?[*:0]const u16,
|
|
TaskIndex: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRevertMmThreadCharacteristics(
|
|
AvrtHandle: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvSetMmThreadPriority(
|
|
AvrtHandle: ?HANDLE,
|
|
Priority: AVRT_PRIORITY,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtCreateThreadOrderingGroup(
|
|
Context: ?*?HANDLE,
|
|
Period: ?*LARGE_INTEGER,
|
|
ThreadOrderingGuid: ?*Guid,
|
|
Timeout: ?*LARGE_INTEGER,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtCreateThreadOrderingGroupExA(
|
|
Context: ?*?HANDLE,
|
|
Period: ?*LARGE_INTEGER,
|
|
ThreadOrderingGuid: ?*Guid,
|
|
Timeout: ?*LARGE_INTEGER,
|
|
TaskName: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtCreateThreadOrderingGroupExW(
|
|
Context: ?*?HANDLE,
|
|
Period: ?*LARGE_INTEGER,
|
|
ThreadOrderingGuid: ?*Guid,
|
|
Timeout: ?*LARGE_INTEGER,
|
|
TaskName: ?[*:0]const u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtJoinThreadOrderingGroup(
|
|
Context: ?*?HANDLE,
|
|
ThreadOrderingGuid: ?*Guid,
|
|
Before: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtWaitOnThreadOrderingGroup(
|
|
Context: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtLeaveThreadOrderingGroup(
|
|
Context: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvRtDeleteThreadOrderingGroup(
|
|
Context: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "avrt" fn AvQuerySystemResponsiveness(
|
|
AvrtHandle: ?HANDLE,
|
|
SystemResponsivenessValue: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "user32" fn AttachThreadInput(
|
|
idAttach: u32,
|
|
idAttachTo: u32,
|
|
fAttach: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "user32" fn WaitForInputIdle(
|
|
hProcess: ?HANDLE,
|
|
dwMilliseconds: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "user32" fn GetGuiResources(
|
|
hProcess: ?HANDLE,
|
|
uiFlags: GET_GUI_RESOURCES_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "user32" fn IsImmersiveProcess(
|
|
hProcess: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows8.0'
|
|
pub extern "user32" fn SetProcessRestrictionExemption(
|
|
fEnableExemption: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessAffinityMask(
|
|
hProcess: ?HANDLE,
|
|
lpProcessAffinityMask: ?*usize,
|
|
lpSystemAffinityMask: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetProcessAffinityMask(
|
|
hProcess: ?HANDLE,
|
|
dwProcessAffinityMask: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn GetProcessIoCounters(
|
|
hProcess: ?HANDLE,
|
|
lpIoCounters: ?*IO_COUNTERS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SwitchToFiber(
|
|
lpFiber: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn DeleteFiber(
|
|
lpFiber: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ConvertFiberToThread(
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateFiberEx(
|
|
dwStackCommitSize: usize,
|
|
dwStackReserveSize: usize,
|
|
dwFlags: u32,
|
|
lpStartAddress: ?LPFIBER_START_ROUTINE,
|
|
lpParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn ConvertThreadToFiberEx(
|
|
lpParameter: ?*anyopaque,
|
|
dwFlags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateFiber(
|
|
dwStackSize: usize,
|
|
lpStartAddress: ?LPFIBER_START_ROUTINE,
|
|
lpParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn ConvertThreadToFiber(
|
|
lpParameter: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn CreateUmsCompletionList(
|
|
UmsCompletionList: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn DequeueUmsCompletionListItems(
|
|
UmsCompletionList: ?*anyopaque,
|
|
WaitTimeOut: u32,
|
|
UmsThreadList: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetUmsCompletionListEvent(
|
|
UmsCompletionList: ?*anyopaque,
|
|
UmsCompletionEvent: ?*?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn ExecuteUmsThread(
|
|
UmsThread: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn UmsThreadYield(
|
|
SchedulerParam: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn DeleteUmsCompletionList(
|
|
UmsCompletionList: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetCurrentUmsThread(
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetNextUmsListItem(
|
|
UmsContext: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn QueryUmsThreadInformation(
|
|
UmsThread: ?*anyopaque,
|
|
UmsThreadInfoClass: RTL_UMS_THREAD_INFO_CLASS,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
UmsThreadInformation: ?*anyopaque,
|
|
UmsThreadInformationLength: u32,
|
|
ReturnLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn SetUmsThreadInformation(
|
|
UmsThread: ?*anyopaque,
|
|
UmsThreadInfoClass: RTL_UMS_THREAD_INFO_CLASS,
|
|
UmsThreadInformation: ?*anyopaque,
|
|
UmsThreadInformationLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn DeleteUmsThreadContext(
|
|
UmsThread: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn CreateUmsThreadContext(
|
|
lpUmsThread: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn EnterUmsSchedulingMode(
|
|
SchedulerStartupInfo: ?*UMS_SCHEDULER_STARTUP_INFO,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetUmsSystemThreadInformation(
|
|
ThreadHandle: ?HANDLE,
|
|
SystemThreadInfo: ?*UMS_SYSTEM_THREAD_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn SetThreadAffinityMask(
|
|
hThread: ?HANDLE,
|
|
dwThreadAffinityMask: usize,
|
|
) callconv(@import("std").os.windows.WINAPI) usize;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn SetProcessDEPPolicy(
|
|
dwFlags: PROCESS_DEP_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetProcessDEPPolicy(
|
|
hProcess: ?HANDLE,
|
|
lpFlags: ?*u32,
|
|
lpPermanent: ?*BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn PulseEvent(
|
|
hEvent: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn WinExec(
|
|
lpCmdLine: ?[*:0]const u8,
|
|
uCmdShow: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn CreateSemaphoreA(
|
|
lpSemaphoreAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lInitialCount: i32,
|
|
lMaximumCount: i32,
|
|
lpName: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateSemaphoreExA(
|
|
lpSemaphoreAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lInitialCount: i32,
|
|
lMaximumCount: i32,
|
|
lpName: ?[*:0]const u8,
|
|
dwFlags: u32,
|
|
dwDesiredAccess: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn QueryFullProcessImageNameA(
|
|
hProcess: ?HANDLE,
|
|
dwFlags: PROCESS_NAME_FORMAT,
|
|
lpExeName: [*:0]u8,
|
|
lpdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn QueryFullProcessImageNameW(
|
|
hProcess: ?HANDLE,
|
|
dwFlags: PROCESS_NAME_FORMAT,
|
|
lpExeName: [*:0]u16,
|
|
lpdwSize: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetStartupInfoA(
|
|
lpStartupInfo: ?*STARTUPINFOA,
|
|
) callconv(@import("std").os.windows.WINAPI) void;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn CreateProcessWithLogonW(
|
|
lpUsername: ?[*:0]const u16,
|
|
lpDomain: ?[*:0]const u16,
|
|
lpPassword: ?[*:0]const u16,
|
|
dwLogonFlags: CREATE_PROCESS_LOGON_FLAGS,
|
|
lpApplicationName: ?[*:0]const u16,
|
|
lpCommandLine: ?PWSTR,
|
|
dwCreationFlags: u32,
|
|
lpEnvironment: ?*anyopaque,
|
|
lpCurrentDirectory: ?[*:0]const u16,
|
|
lpStartupInfo: ?*STARTUPINFOW,
|
|
lpProcessInformation: ?*PROCESS_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "advapi32" fn CreateProcessWithTokenW(
|
|
hToken: ?HANDLE,
|
|
dwLogonFlags: CREATE_PROCESS_LOGON_FLAGS,
|
|
lpApplicationName: ?[*:0]const u16,
|
|
lpCommandLine: ?PWSTR,
|
|
dwCreationFlags: u32,
|
|
lpEnvironment: ?*anyopaque,
|
|
lpCurrentDirectory: ?[*:0]const u16,
|
|
lpStartupInfo: ?*STARTUPINFOW,
|
|
lpProcessInformation: ?*PROCESS_INFORMATION,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn RegisterWaitForSingleObject(
|
|
phNewWaitObject: ?*?HANDLE,
|
|
hObject: ?HANDLE,
|
|
Callback: ?WAITORTIMERCALLBACK,
|
|
Context: ?*anyopaque,
|
|
dwMilliseconds: u32,
|
|
dwFlags: WORKER_THREAD_FLAGS,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "kernel32" fn UnregisterWait(
|
|
WaitHandle: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn SetTimerQueueTimer(
|
|
TimerQueue: ?HANDLE,
|
|
Callback: ?WAITORTIMERCALLBACK,
|
|
Parameter: ?*anyopaque,
|
|
DueTime: u32,
|
|
Period: u32,
|
|
PreferIo: BOOL,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreatePrivateNamespaceA(
|
|
lpPrivateNamespaceAttributes: ?*SECURITY_ATTRIBUTES,
|
|
lpBoundaryDescriptor: ?*anyopaque,
|
|
lpAliasPrefix: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) NamespaceHandle;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn OpenPrivateNamespaceA(
|
|
lpBoundaryDescriptor: ?*anyopaque,
|
|
lpAliasPrefix: ?[*:0]const u8,
|
|
) callconv(@import("std").os.windows.WINAPI) NamespaceHandle;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn CreateBoundaryDescriptorA(
|
|
Name: ?[*:0]const u8,
|
|
Flags: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BoundaryDescriptorHandle;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn AddIntegrityLabelToBoundaryDescriptor(
|
|
BoundaryDescriptor: ?*?HANDLE,
|
|
IntegrityLabel: ?PSID,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetActiveProcessorGroupCount(
|
|
) callconv(@import("std").os.windows.WINAPI) u16;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetMaximumProcessorGroupCount(
|
|
) callconv(@import("std").os.windows.WINAPI) u16;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetActiveProcessorCount(
|
|
GroupNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetMaximumProcessorCount(
|
|
GroupNumber: u16,
|
|
) callconv(@import("std").os.windows.WINAPI) u32;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNumaProcessorNode(
|
|
Processor: u8,
|
|
NodeNumber: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetNumaNodeNumberFromHandle(
|
|
hFile: ?HANDLE,
|
|
NodeNumber: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetNumaProcessorNodeEx(
|
|
Processor: ?*PROCESSOR_NUMBER,
|
|
NodeNumber: ?*u16,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNumaNodeProcessorMask(
|
|
Node: u8,
|
|
ProcessorMask: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNumaAvailableMemoryNode(
|
|
Node: u8,
|
|
AvailableBytes: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.1'
|
|
pub extern "kernel32" fn GetNumaAvailableMemoryNodeEx(
|
|
Node: u16,
|
|
AvailableBytes: ?*u64,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNumaProximityNode(
|
|
ProximityId: u32,
|
|
NodeNumber: ?*u8,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "ntdll" fn NtQueryInformationProcess(
|
|
ProcessHandle: ?HANDLE,
|
|
ProcessInformationClass: PROCESSINFOCLASS,
|
|
ProcessInformation: ?*anyopaque,
|
|
ProcessInformationLength: u32,
|
|
ReturnLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
|
|
|
|
pub extern "ntdll" fn NtQueryInformationThread(
|
|
ThreadHandle: ?HANDLE,
|
|
ThreadInformationClass: THREADINFOCLASS,
|
|
ThreadInformation: ?*anyopaque,
|
|
ThreadInformationLength: u32,
|
|
ReturnLength: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
|
|
|
|
pub extern "ntdll" fn NtSetInformationThread(
|
|
ThreadHandle: ?HANDLE,
|
|
ThreadInformationClass: THREADINFOCLASS,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
ThreadInformation: ?*anyopaque,
|
|
ThreadInformationLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) NTSTATUS;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Unicode Aliases (19)
|
|
//--------------------------------------------------------------------------------
|
|
const thismodule = @This();
|
|
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
|
|
.ansi => struct {
|
|
pub const STARTUPINFO = thismodule.STARTUPINFOA;
|
|
pub const STARTUPINFOEX = thismodule.STARTUPINFOEXA;
|
|
pub const CreateMutex = thismodule.CreateMutexA;
|
|
pub const CreateEvent = thismodule.CreateEventA;
|
|
pub const OpenEvent = thismodule.OpenEventA;
|
|
pub const CreateMutexEx = thismodule.CreateMutexExA;
|
|
pub const CreateEventEx = thismodule.CreateEventExA;
|
|
pub const CreateSemaphoreEx = thismodule.CreateSemaphoreExA;
|
|
pub const CreateSemaphore = thismodule.CreateSemaphoreA;
|
|
pub const CreateProcess = thismodule.CreateProcessA;
|
|
pub const GetStartupInfo = thismodule.GetStartupInfoA;
|
|
pub const CreateProcessAsUser = thismodule.CreateProcessAsUserA;
|
|
pub const CreatePrivateNamespace = thismodule.CreatePrivateNamespaceA;
|
|
pub const OpenPrivateNamespace = thismodule.OpenPrivateNamespaceA;
|
|
pub const CreateBoundaryDescriptor = thismodule.CreateBoundaryDescriptorA;
|
|
pub const AvSetMmThreadCharacteristics = thismodule.AvSetMmThreadCharacteristicsA;
|
|
pub const AvSetMmMaxThreadCharacteristics = thismodule.AvSetMmMaxThreadCharacteristicsA;
|
|
pub const AvRtCreateThreadOrderingGroupEx = thismodule.AvRtCreateThreadOrderingGroupExA;
|
|
pub const QueryFullProcessImageName = thismodule.QueryFullProcessImageNameA;
|
|
},
|
|
.wide => struct {
|
|
pub const STARTUPINFO = thismodule.STARTUPINFOW;
|
|
pub const STARTUPINFOEX = thismodule.STARTUPINFOEXW;
|
|
pub const CreateMutex = thismodule.CreateMutexW;
|
|
pub const CreateEvent = thismodule.CreateEventW;
|
|
pub const OpenEvent = thismodule.OpenEventW;
|
|
pub const CreateMutexEx = thismodule.CreateMutexExW;
|
|
pub const CreateEventEx = thismodule.CreateEventExW;
|
|
pub const CreateSemaphoreEx = thismodule.CreateSemaphoreExW;
|
|
pub const CreateSemaphore = thismodule.CreateSemaphoreW;
|
|
pub const CreateProcess = thismodule.CreateProcessW;
|
|
pub const GetStartupInfo = thismodule.GetStartupInfoW;
|
|
pub const CreateProcessAsUser = thismodule.CreateProcessAsUserW;
|
|
pub const CreatePrivateNamespace = thismodule.CreatePrivateNamespaceW;
|
|
pub const OpenPrivateNamespace = thismodule.OpenPrivateNamespaceW;
|
|
pub const CreateBoundaryDescriptor = thismodule.CreateBoundaryDescriptorW;
|
|
pub const AvSetMmThreadCharacteristics = thismodule.AvSetMmThreadCharacteristicsW;
|
|
pub const AvSetMmMaxThreadCharacteristics = thismodule.AvSetMmMaxThreadCharacteristicsW;
|
|
pub const AvRtCreateThreadOrderingGroupEx = thismodule.AvRtCreateThreadOrderingGroupExW;
|
|
pub const QueryFullProcessImageName = thismodule.QueryFullProcessImageNameW;
|
|
},
|
|
.unspecified => if (@import("builtin").is_test) struct {
|
|
pub const STARTUPINFO = *opaque{};
|
|
pub const STARTUPINFOEX = *opaque{};
|
|
pub const CreateMutex = *opaque{};
|
|
pub const CreateEvent = *opaque{};
|
|
pub const OpenEvent = *opaque{};
|
|
pub const CreateMutexEx = *opaque{};
|
|
pub const CreateEventEx = *opaque{};
|
|
pub const CreateSemaphoreEx = *opaque{};
|
|
pub const CreateSemaphore = *opaque{};
|
|
pub const CreateProcess = *opaque{};
|
|
pub const GetStartupInfo = *opaque{};
|
|
pub const CreateProcessAsUser = *opaque{};
|
|
pub const CreatePrivateNamespace = *opaque{};
|
|
pub const OpenPrivateNamespace = *opaque{};
|
|
pub const CreateBoundaryDescriptor = *opaque{};
|
|
pub const AvSetMmThreadCharacteristics = *opaque{};
|
|
pub const AvSetMmMaxThreadCharacteristics = *opaque{};
|
|
pub const AvRtCreateThreadOrderingGroupEx = *opaque{};
|
|
pub const QueryFullProcessImageName = *opaque{};
|
|
} else struct {
|
|
pub const STARTUPINFO = @compileError("'STARTUPINFO' requires that UNICODE be set to true or false in the root module");
|
|
pub const STARTUPINFOEX = @compileError("'STARTUPINFOEX' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateMutex = @compileError("'CreateMutex' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateEvent = @compileError("'CreateEvent' requires that UNICODE be set to true or false in the root module");
|
|
pub const OpenEvent = @compileError("'OpenEvent' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateMutexEx = @compileError("'CreateMutexEx' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateEventEx = @compileError("'CreateEventEx' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateSemaphoreEx = @compileError("'CreateSemaphoreEx' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateSemaphore = @compileError("'CreateSemaphore' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateProcess = @compileError("'CreateProcess' requires that UNICODE be set to true or false in the root module");
|
|
pub const GetStartupInfo = @compileError("'GetStartupInfo' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateProcessAsUser = @compileError("'CreateProcessAsUser' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreatePrivateNamespace = @compileError("'CreatePrivateNamespace' requires that UNICODE be set to true or false in the root module");
|
|
pub const OpenPrivateNamespace = @compileError("'OpenPrivateNamespace' requires that UNICODE be set to true or false in the root module");
|
|
pub const CreateBoundaryDescriptor = @compileError("'CreateBoundaryDescriptor' requires that UNICODE be set to true or false in the root module");
|
|
pub const AvSetMmThreadCharacteristics = @compileError("'AvSetMmThreadCharacteristics' requires that UNICODE be set to true or false in the root module");
|
|
pub const AvSetMmMaxThreadCharacteristics = @compileError("'AvSetMmMaxThreadCharacteristics' requires that UNICODE be set to true or false in the root module");
|
|
pub const AvRtCreateThreadOrderingGroupEx = @compileError("'AvRtCreateThreadOrderingGroupEx' requires that UNICODE be set to true or false in the root module");
|
|
pub const QueryFullProcessImageName = @compileError("'QueryFullProcessImageName' requires that UNICODE be set to true or false in the root module");
|
|
},
|
|
};
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Imports (22)
|
|
//--------------------------------------------------------------------------------
|
|
const Guid = @import("../zig.zig").Guid;
|
|
const BOOL = @import("../foundation.zig").BOOL;
|
|
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
|
|
const FILETIME = @import("../foundation.zig").FILETIME;
|
|
const GROUP_AFFINITY = @import("../system/system_information.zig").GROUP_AFFINITY;
|
|
const HANDLE = @import("../foundation.zig").HANDLE;
|
|
const HINSTANCE = @import("../foundation.zig").HINSTANCE;
|
|
const HRESULT = @import("../foundation.zig").HRESULT;
|
|
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
|
|
const LIST_ENTRY = @import("../system/kernel.zig").LIST_ENTRY;
|
|
const NTSTATUS = @import("../foundation.zig").NTSTATUS;
|
|
const PAPCFUNC = @import("../foundation.zig").PAPCFUNC;
|
|
const PROCESSOR_NUMBER = @import("../system/kernel.zig").PROCESSOR_NUMBER;
|
|
const PSID = @import("../foundation.zig").PSID;
|
|
const PSTR = @import("../foundation.zig").PSTR;
|
|
const PWSTR = @import("../foundation.zig").PWSTR;
|
|
const RTL_UMS_SCHEDULER_REASON = @import("../system/system_services.zig").RTL_UMS_SCHEDULER_REASON;
|
|
const SECURITY_ATTRIBUTES = @import("../security.zig").SECURITY_ATTRIBUTES;
|
|
const SLIST_ENTRY = @import("../system/kernel.zig").SLIST_ENTRY;
|
|
const SLIST_HEADER = @import("../system/kernel.zig").SLIST_HEADER;
|
|
const TOKEN_ACCESS_MASK = @import("../security.zig").TOKEN_ACCESS_MASK;
|
|
const UNICODE_STRING = @import("../foundation.zig").UNICODE_STRING;
|
|
|
|
test {
|
|
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
|
|
if (@hasDecl(@This(), "LPTHREAD_START_ROUTINE")) { _ = LPTHREAD_START_ROUTINE; }
|
|
if (@hasDecl(@This(), "PINIT_ONCE_FN")) { _ = PINIT_ONCE_FN; }
|
|
if (@hasDecl(@This(), "PTIMERAPCROUTINE")) { _ = PTIMERAPCROUTINE; }
|
|
if (@hasDecl(@This(), "PTP_WIN32_IO_CALLBACK")) { _ = PTP_WIN32_IO_CALLBACK; }
|
|
if (@hasDecl(@This(), "PRTL_UMS_SCHEDULER_ENTRY_POINT")) { _ = PRTL_UMS_SCHEDULER_ENTRY_POINT; }
|
|
if (@hasDecl(@This(), "WAITORTIMERCALLBACK")) { _ = WAITORTIMERCALLBACK; }
|
|
if (@hasDecl(@This(), "PFLS_CALLBACK_FUNCTION")) { _ = PFLS_CALLBACK_FUNCTION; }
|
|
if (@hasDecl(@This(), "PTP_SIMPLE_CALLBACK")) { _ = PTP_SIMPLE_CALLBACK; }
|
|
if (@hasDecl(@This(), "PTP_CLEANUP_GROUP_CANCEL_CALLBACK")) { _ = PTP_CLEANUP_GROUP_CANCEL_CALLBACK; }
|
|
if (@hasDecl(@This(), "PTP_WORK_CALLBACK")) { _ = PTP_WORK_CALLBACK; }
|
|
if (@hasDecl(@This(), "PTP_TIMER_CALLBACK")) { _ = PTP_TIMER_CALLBACK; }
|
|
if (@hasDecl(@This(), "PTP_WAIT_CALLBACK")) { _ = PTP_WAIT_CALLBACK; }
|
|
if (@hasDecl(@This(), "LPFIBER_START_ROUTINE")) { _ = LPFIBER_START_ROUTINE; }
|
|
if (@hasDecl(@This(), "PPS_POST_PROCESS_INIT_ROUTINE")) { _ = PPS_POST_PROCESS_INIT_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);
|
|
}
|
|
}
|