zigwin32/win32/system/services.zig

1430 lines
60 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (131)
//--------------------------------------------------------------------------------
pub const SERVICE_ALL_ACCESS = @as(u32, 983551);
pub const SC_MANAGER_ALL_ACCESS = @as(u32, 983103);
pub const SERVICES_ACTIVE_DATABASEW = "ServicesActive";
pub const SERVICES_FAILED_DATABASEW = "ServicesFailed";
pub const SERVICES_ACTIVE_DATABASEA = "ServicesActive";
pub const SERVICES_FAILED_DATABASEA = "ServicesFailed";
pub const SERVICES_ACTIVE_DATABASE = "ServicesActive";
pub const SERVICES_FAILED_DATABASE = "ServicesFailed";
pub const SERVICE_NO_CHANGE = @as(u32, 4294967295);
pub const SERVICE_CONTROL_STOP = @as(u32, 1);
pub const SERVICE_CONTROL_PAUSE = @as(u32, 2);
pub const SERVICE_CONTROL_CONTINUE = @as(u32, 3);
pub const SERVICE_CONTROL_INTERROGATE = @as(u32, 4);
pub const SERVICE_CONTROL_SHUTDOWN = @as(u32, 5);
pub const SERVICE_CONTROL_PARAMCHANGE = @as(u32, 6);
pub const SERVICE_CONTROL_NETBINDADD = @as(u32, 7);
pub const SERVICE_CONTROL_NETBINDREMOVE = @as(u32, 8);
pub const SERVICE_CONTROL_NETBINDENABLE = @as(u32, 9);
pub const SERVICE_CONTROL_NETBINDDISABLE = @as(u32, 10);
pub const SERVICE_CONTROL_DEVICEEVENT = @as(u32, 11);
pub const SERVICE_CONTROL_HARDWAREPROFILECHANGE = @as(u32, 12);
pub const SERVICE_CONTROL_POWEREVENT = @as(u32, 13);
pub const SERVICE_CONTROL_SESSIONCHANGE = @as(u32, 14);
pub const SERVICE_CONTROL_PRESHUTDOWN = @as(u32, 15);
pub const SERVICE_CONTROL_TIMECHANGE = @as(u32, 16);
pub const SERVICE_CONTROL_TRIGGEREVENT = @as(u32, 32);
pub const SERVICE_CONTROL_LOWRESOURCES = @as(u32, 96);
pub const SERVICE_CONTROL_SYSTEMLOWRESOURCES = @as(u32, 97);
pub const SERVICE_ACCEPT_STOP = @as(u32, 1);
pub const SERVICE_ACCEPT_PAUSE_CONTINUE = @as(u32, 2);
pub const SERVICE_ACCEPT_SHUTDOWN = @as(u32, 4);
pub const SERVICE_ACCEPT_PARAMCHANGE = @as(u32, 8);
pub const SERVICE_ACCEPT_NETBINDCHANGE = @as(u32, 16);
pub const SERVICE_ACCEPT_HARDWAREPROFILECHANGE = @as(u32, 32);
pub const SERVICE_ACCEPT_POWEREVENT = @as(u32, 64);
pub const SERVICE_ACCEPT_SESSIONCHANGE = @as(u32, 128);
pub const SERVICE_ACCEPT_PRESHUTDOWN = @as(u32, 256);
pub const SERVICE_ACCEPT_TIMECHANGE = @as(u32, 512);
pub const SERVICE_ACCEPT_TRIGGEREVENT = @as(u32, 1024);
pub const SERVICE_ACCEPT_USER_LOGOFF = @as(u32, 2048);
pub const SERVICE_ACCEPT_LOWRESOURCES = @as(u32, 8192);
pub const SERVICE_ACCEPT_SYSTEMLOWRESOURCES = @as(u32, 16384);
pub const SC_MANAGER_CONNECT = @as(u32, 1);
pub const SC_MANAGER_CREATE_SERVICE = @as(u32, 2);
pub const SC_MANAGER_ENUMERATE_SERVICE = @as(u32, 4);
pub const SC_MANAGER_LOCK = @as(u32, 8);
pub const SC_MANAGER_QUERY_LOCK_STATUS = @as(u32, 16);
pub const SC_MANAGER_MODIFY_BOOT_CONFIG = @as(u32, 32);
pub const SERVICE_QUERY_CONFIG = @as(u32, 1);
pub const SERVICE_CHANGE_CONFIG = @as(u32, 2);
pub const SERVICE_QUERY_STATUS = @as(u32, 4);
pub const SERVICE_ENUMERATE_DEPENDENTS = @as(u32, 8);
pub const SERVICE_START = @as(u32, 16);
pub const SERVICE_STOP = @as(u32, 32);
pub const SERVICE_PAUSE_CONTINUE = @as(u32, 64);
pub const SERVICE_INTERROGATE = @as(u32, 128);
pub const SERVICE_USER_DEFINED_CONTROL = @as(u32, 256);
pub const SERVICE_NOTIFY_STATUS_CHANGE_1 = @as(u32, 1);
pub const SERVICE_NOTIFY_STATUS_CHANGE_2 = @as(u32, 2);
pub const SERVICE_NOTIFY_STATUS_CHANGE = @as(u32, 2);
pub const SERVICE_STOP_REASON_FLAG_MIN = @as(u32, 0);
pub const SERVICE_STOP_REASON_FLAG_UNPLANNED = @as(u32, 268435456);
pub const SERVICE_STOP_REASON_FLAG_CUSTOM = @as(u32, 536870912);
pub const SERVICE_STOP_REASON_FLAG_PLANNED = @as(u32, 1073741824);
pub const SERVICE_STOP_REASON_FLAG_MAX = @as(u32, 2147483648);
pub const SERVICE_STOP_REASON_MAJOR_MIN = @as(u32, 0);
pub const SERVICE_STOP_REASON_MAJOR_OTHER = @as(u32, 65536);
pub const SERVICE_STOP_REASON_MAJOR_HARDWARE = @as(u32, 131072);
pub const SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM = @as(u32, 196608);
pub const SERVICE_STOP_REASON_MAJOR_SOFTWARE = @as(u32, 262144);
pub const SERVICE_STOP_REASON_MAJOR_APPLICATION = @as(u32, 327680);
pub const SERVICE_STOP_REASON_MAJOR_NONE = @as(u32, 393216);
pub const SERVICE_STOP_REASON_MAJOR_MAX = @as(u32, 458752);
pub const SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM = @as(u32, 4194304);
pub const SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM = @as(u32, 16711680);
pub const SERVICE_STOP_REASON_MINOR_MIN = @as(u32, 0);
pub const SERVICE_STOP_REASON_MINOR_OTHER = @as(u32, 1);
pub const SERVICE_STOP_REASON_MINOR_MAINTENANCE = @as(u32, 2);
pub const SERVICE_STOP_REASON_MINOR_INSTALLATION = @as(u32, 3);
pub const SERVICE_STOP_REASON_MINOR_UPGRADE = @as(u32, 4);
pub const SERVICE_STOP_REASON_MINOR_RECONFIG = @as(u32, 5);
pub const SERVICE_STOP_REASON_MINOR_HUNG = @as(u32, 6);
pub const SERVICE_STOP_REASON_MINOR_UNSTABLE = @as(u32, 7);
pub const SERVICE_STOP_REASON_MINOR_DISK = @as(u32, 8);
pub const SERVICE_STOP_REASON_MINOR_NETWORKCARD = @as(u32, 9);
pub const SERVICE_STOP_REASON_MINOR_ENVIRONMENT = @as(u32, 10);
pub const SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER = @as(u32, 11);
pub const SERVICE_STOP_REASON_MINOR_OTHERDRIVER = @as(u32, 12);
pub const SERVICE_STOP_REASON_MINOR_SERVICEPACK = @as(u32, 13);
pub const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE = @as(u32, 14);
pub const SERVICE_STOP_REASON_MINOR_SECURITYFIX = @as(u32, 15);
pub const SERVICE_STOP_REASON_MINOR_SECURITY = @as(u32, 16);
pub const SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY = @as(u32, 17);
pub const SERVICE_STOP_REASON_MINOR_WMI = @as(u32, 18);
pub const SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL = @as(u32, 19);
pub const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL = @as(u32, 20);
pub const SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL = @as(u32, 21);
pub const SERVICE_STOP_REASON_MINOR_MMC = @as(u32, 22);
pub const SERVICE_STOP_REASON_MINOR_NONE = @as(u32, 23);
pub const SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT = @as(u32, 24);
pub const SERVICE_STOP_REASON_MINOR_MAX = @as(u32, 25);
pub const SERVICE_STOP_REASON_MINOR_MIN_CUSTOM = @as(u32, 256);
pub const SERVICE_STOP_REASON_MINOR_MAX_CUSTOM = @as(u32, 65535);
pub const SERVICE_CONTROL_STATUS_REASON_INFO = @as(u32, 1);
pub const SERVICE_SID_TYPE_NONE = @as(u32, 0);
pub const SERVICE_SID_TYPE_UNRESTRICTED = @as(u32, 1);
pub const SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE = @as(u32, 7);
pub const SERVICE_TRIGGER_TYPE_AGGREGATE = @as(u32, 30);
pub const SERVICE_START_REASON_DEMAND = @as(u32, 1);
pub const SERVICE_START_REASON_AUTO = @as(u32, 2);
pub const SERVICE_START_REASON_TRIGGER = @as(u32, 4);
pub const SERVICE_START_REASON_RESTART_ON_FAILURE = @as(u32, 8);
pub const SERVICE_START_REASON_DELAYEDAUTO = @as(u32, 16);
pub const SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = @as(u32, 1);
pub const SERVICE_LAUNCH_PROTECTED_NONE = @as(u32, 0);
pub const SERVICE_LAUNCH_PROTECTED_WINDOWS = @as(u32, 1);
pub const SERVICE_LAUNCH_PROTECTED_WINDOWS_LIGHT = @as(u32, 2);
pub const SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT = @as(u32, 3);
pub const NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID = Guid.initString("4f27f2de-14e2-430b-a549-7cd48cbc8245");
pub const NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID = Guid.initString("cc4ba62a-162e-4648-847a-b6bdf993e335");
pub const DOMAIN_JOIN_GUID = Guid.initString("1ce20aba-9851-4421-9430-1ddeb766e809");
pub const DOMAIN_LEAVE_GUID = Guid.initString("ddaf516e-58c2-4866-9574-c3b615d42ea1");
pub const FIREWALL_PORT_OPEN_GUID = Guid.initString("b7569e07-8421-4ee0-ad10-86915afdad09");
pub const FIREWALL_PORT_CLOSE_GUID = Guid.initString("a144ed38-8e12-4de4-9d96-e64740b1a524");
pub const MACHINE_POLICY_PRESENT_GUID = Guid.initString("659fcae6-5bdb-4da9-b1ff-ca2a178d46e0");
pub const USER_POLICY_PRESENT_GUID = Guid.initString("54fb46c8-f089-464c-b1fd-59d1b62c3b50");
pub const RPC_INTERFACE_EVENT_GUID = Guid.initString("bc90d167-9470-4139-a9ba-be0bbbf5b74d");
pub const NAMED_PIPE_EVENT_GUID = Guid.initString("1f81d131-3fac-4537-9e0c-7e7b0c2f4b55");
pub const CUSTOM_SYSTEM_STATE_CHANGE_EVENT_GUID = Guid.initString("2d7a2816-0c5e-45fc-9ce7-570e5ecde9c9");
pub const SERVICE_TRIGGER_STARTED_ARGUMENT = "TriggerStarted";
pub const SC_AGGREGATE_STORAGE_KEY = "System\\CurrentControlSet\\Control\\ServiceAggregatedEvents";
//--------------------------------------------------------------------------------
// Section: Types (68)
//--------------------------------------------------------------------------------
pub const ENUM_SERVICE_STATE = enum(u32) {
ACTIVE = 1,
INACTIVE = 2,
STATE_ALL = 3,
};
pub const SERVICE_ACTIVE = ENUM_SERVICE_STATE.ACTIVE;
pub const SERVICE_INACTIVE = ENUM_SERVICE_STATE.INACTIVE;
pub const SERVICE_STATE_ALL = ENUM_SERVICE_STATE.STATE_ALL;
pub const SERVICE_ERROR = enum(u32) {
CRITICAL = 3,
IGNORE = 0,
NORMAL = 1,
SEVERE = 2,
};
pub const SERVICE_ERROR_CRITICAL = SERVICE_ERROR.CRITICAL;
pub const SERVICE_ERROR_IGNORE = SERVICE_ERROR.IGNORE;
pub const SERVICE_ERROR_NORMAL = SERVICE_ERROR.NORMAL;
pub const SERVICE_ERROR_SEVERE = SERVICE_ERROR.SEVERE;
pub const SERVICE_CONFIG = enum(u32) {
DELAYED_AUTO_START_INFO = 3,
DESCRIPTION = 1,
FAILURE_ACTIONS = 2,
FAILURE_ACTIONS_FLAG = 4,
PREFERRED_NODE = 9,
PRESHUTDOWN_INFO = 7,
REQUIRED_PRIVILEGES_INFO = 6,
SERVICE_SID_INFO = 5,
TRIGGER_INFO = 8,
LAUNCH_PROTECTED = 12,
};
pub const SERVICE_CONFIG_DELAYED_AUTO_START_INFO = SERVICE_CONFIG.DELAYED_AUTO_START_INFO;
pub const SERVICE_CONFIG_DESCRIPTION = SERVICE_CONFIG.DESCRIPTION;
pub const SERVICE_CONFIG_FAILURE_ACTIONS = SERVICE_CONFIG.FAILURE_ACTIONS;
pub const SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = SERVICE_CONFIG.FAILURE_ACTIONS_FLAG;
pub const SERVICE_CONFIG_PREFERRED_NODE = SERVICE_CONFIG.PREFERRED_NODE;
pub const SERVICE_CONFIG_PRESHUTDOWN_INFO = SERVICE_CONFIG.PRESHUTDOWN_INFO;
pub const SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = SERVICE_CONFIG.REQUIRED_PRIVILEGES_INFO;
pub const SERVICE_CONFIG_SERVICE_SID_INFO = SERVICE_CONFIG.SERVICE_SID_INFO;
pub const SERVICE_CONFIG_TRIGGER_INFO = SERVICE_CONFIG.TRIGGER_INFO;
pub const SERVICE_CONFIG_LAUNCH_PROTECTED = SERVICE_CONFIG.LAUNCH_PROTECTED;
pub const ENUM_SERVICE_TYPE = enum(u32) {
DRIVER = 11,
FILE_SYSTEM_DRIVER_ = 2,
KERNEL_DRIVER = 1,
WIN32 = 48,
WIN32_OWN_PROCESS_ = 16,
WIN32_SHARE_PROCESS = 32,
ADAPTER = 4,
// FILE_SYSTEM_DRIVER = 2, this enum value conflicts with FILE_SYSTEM_DRIVER_
RECOGNIZER_DRIVER = 8,
// WIN32_OWN_PROCESS = 16, this enum value conflicts with WIN32_OWN_PROCESS_
USER_OWN_PROCESS = 80,
USER_SHARE_PROCESS = 96,
_,
pub fn initFlags(o: struct {
DRIVER: u1 = 0,
FILE_SYSTEM_DRIVER_: u1 = 0,
KERNEL_DRIVER: u1 = 0,
WIN32: u1 = 0,
WIN32_OWN_PROCESS_: u1 = 0,
WIN32_SHARE_PROCESS: u1 = 0,
ADAPTER: u1 = 0,
RECOGNIZER_DRIVER: u1 = 0,
USER_OWN_PROCESS: u1 = 0,
USER_SHARE_PROCESS: u1 = 0,
}) ENUM_SERVICE_TYPE {
return @as(ENUM_SERVICE_TYPE, @enumFromInt(
(if (o.DRIVER == 1) @intFromEnum(ENUM_SERVICE_TYPE.DRIVER) else 0)
| (if (o.FILE_SYSTEM_DRIVER_ == 1) @intFromEnum(ENUM_SERVICE_TYPE.FILE_SYSTEM_DRIVER_) else 0)
| (if (o.KERNEL_DRIVER == 1) @intFromEnum(ENUM_SERVICE_TYPE.KERNEL_DRIVER) else 0)
| (if (o.WIN32 == 1) @intFromEnum(ENUM_SERVICE_TYPE.WIN32) else 0)
| (if (o.WIN32_OWN_PROCESS_ == 1) @intFromEnum(ENUM_SERVICE_TYPE.WIN32_OWN_PROCESS_) else 0)
| (if (o.WIN32_SHARE_PROCESS == 1) @intFromEnum(ENUM_SERVICE_TYPE.WIN32_SHARE_PROCESS) else 0)
| (if (o.ADAPTER == 1) @intFromEnum(ENUM_SERVICE_TYPE.ADAPTER) else 0)
| (if (o.RECOGNIZER_DRIVER == 1) @intFromEnum(ENUM_SERVICE_TYPE.RECOGNIZER_DRIVER) else 0)
| (if (o.USER_OWN_PROCESS == 1) @intFromEnum(ENUM_SERVICE_TYPE.USER_OWN_PROCESS) else 0)
| (if (o.USER_SHARE_PROCESS == 1) @intFromEnum(ENUM_SERVICE_TYPE.USER_SHARE_PROCESS) else 0)
));
}
};
pub const SERVICE_DRIVER = ENUM_SERVICE_TYPE.DRIVER;
pub const SERVICE_FILE_SYSTEM_DRIVER_ = ENUM_SERVICE_TYPE.FILE_SYSTEM_DRIVER_;
pub const SERVICE_KERNEL_DRIVER = ENUM_SERVICE_TYPE.KERNEL_DRIVER;
pub const SERVICE_WIN32 = ENUM_SERVICE_TYPE.WIN32;
pub const SERVICE_WIN32_OWN_PROCESS_ = ENUM_SERVICE_TYPE.WIN32_OWN_PROCESS_;
pub const SERVICE_WIN32_SHARE_PROCESS = ENUM_SERVICE_TYPE.WIN32_SHARE_PROCESS;
pub const SERVICE_ADAPTER = ENUM_SERVICE_TYPE.ADAPTER;
pub const SERVICE_FILE_SYSTEM_DRIVER = ENUM_SERVICE_TYPE.FILE_SYSTEM_DRIVER_;
pub const SERVICE_RECOGNIZER_DRIVER = ENUM_SERVICE_TYPE.RECOGNIZER_DRIVER;
pub const SERVICE_WIN32_OWN_PROCESS = ENUM_SERVICE_TYPE.WIN32_OWN_PROCESS_;
pub const SERVICE_USER_OWN_PROCESS = ENUM_SERVICE_TYPE.USER_OWN_PROCESS;
pub const SERVICE_USER_SHARE_PROCESS = ENUM_SERVICE_TYPE.USER_SHARE_PROCESS;
pub const SERVICE_START_TYPE = enum(u32) {
AUTO_START = 2,
BOOT_START = 0,
DEMAND_START = 3,
DISABLED = 4,
SYSTEM_START = 1,
};
pub const SERVICE_AUTO_START = SERVICE_START_TYPE.AUTO_START;
pub const SERVICE_BOOT_START = SERVICE_START_TYPE.BOOT_START;
pub const SERVICE_DEMAND_START = SERVICE_START_TYPE.DEMAND_START;
pub const SERVICE_DISABLED = SERVICE_START_TYPE.DISABLED;
pub const SERVICE_SYSTEM_START = SERVICE_START_TYPE.SYSTEM_START;
pub const SERVICE_NOTIFY = enum(u32) {
CREATED = 128,
CONTINUE_PENDING = 16,
DELETE_PENDING = 512,
DELETED = 256,
PAUSE_PENDING = 32,
PAUSED = 64,
RUNNING = 8,
START_PENDING = 2,
STOP_PENDING = 4,
STOPPED = 1,
_,
pub fn initFlags(o: struct {
CREATED: u1 = 0,
CONTINUE_PENDING: u1 = 0,
DELETE_PENDING: u1 = 0,
DELETED: u1 = 0,
PAUSE_PENDING: u1 = 0,
PAUSED: u1 = 0,
RUNNING: u1 = 0,
START_PENDING: u1 = 0,
STOP_PENDING: u1 = 0,
STOPPED: u1 = 0,
}) SERVICE_NOTIFY {
return @as(SERVICE_NOTIFY, @enumFromInt(
(if (o.CREATED == 1) @intFromEnum(SERVICE_NOTIFY.CREATED) else 0)
| (if (o.CONTINUE_PENDING == 1) @intFromEnum(SERVICE_NOTIFY.CONTINUE_PENDING) else 0)
| (if (o.DELETE_PENDING == 1) @intFromEnum(SERVICE_NOTIFY.DELETE_PENDING) else 0)
| (if (o.DELETED == 1) @intFromEnum(SERVICE_NOTIFY.DELETED) else 0)
| (if (o.PAUSE_PENDING == 1) @intFromEnum(SERVICE_NOTIFY.PAUSE_PENDING) else 0)
| (if (o.PAUSED == 1) @intFromEnum(SERVICE_NOTIFY.PAUSED) else 0)
| (if (o.RUNNING == 1) @intFromEnum(SERVICE_NOTIFY.RUNNING) else 0)
| (if (o.START_PENDING == 1) @intFromEnum(SERVICE_NOTIFY.START_PENDING) else 0)
| (if (o.STOP_PENDING == 1) @intFromEnum(SERVICE_NOTIFY.STOP_PENDING) else 0)
| (if (o.STOPPED == 1) @intFromEnum(SERVICE_NOTIFY.STOPPED) else 0)
));
}
};
pub const SERVICE_NOTIFY_CREATED = SERVICE_NOTIFY.CREATED;
pub const SERVICE_NOTIFY_CONTINUE_PENDING = SERVICE_NOTIFY.CONTINUE_PENDING;
pub const SERVICE_NOTIFY_DELETE_PENDING = SERVICE_NOTIFY.DELETE_PENDING;
pub const SERVICE_NOTIFY_DELETED = SERVICE_NOTIFY.DELETED;
pub const SERVICE_NOTIFY_PAUSE_PENDING = SERVICE_NOTIFY.PAUSE_PENDING;
pub const SERVICE_NOTIFY_PAUSED = SERVICE_NOTIFY.PAUSED;
pub const SERVICE_NOTIFY_RUNNING = SERVICE_NOTIFY.RUNNING;
pub const SERVICE_NOTIFY_START_PENDING = SERVICE_NOTIFY.START_PENDING;
pub const SERVICE_NOTIFY_STOP_PENDING = SERVICE_NOTIFY.STOP_PENDING;
pub const SERVICE_NOTIFY_STOPPED = SERVICE_NOTIFY.STOPPED;
pub const SERVICE_RUNS_IN_PROCESS = enum(u32) {
NON_SYSTEM_OR_NOT_RUNNING = 0,
SYSTEM_PROCESS = 1,
};
pub const SERVICE_RUNS_IN_NON_SYSTEM_OR_NOT_RUNNING = SERVICE_RUNS_IN_PROCESS.NON_SYSTEM_OR_NOT_RUNNING;
pub const SERVICE_RUNS_IN_SYSTEM_PROCESS = SERVICE_RUNS_IN_PROCESS.SYSTEM_PROCESS;
pub const SERVICE_TRIGGER_ACTION = enum(u32) {
ART = 1,
OP = 2,
};
pub const SERVICE_TRIGGER_ACTION_SERVICE_START = SERVICE_TRIGGER_ACTION.ART;
pub const SERVICE_TRIGGER_ACTION_SERVICE_STOP = SERVICE_TRIGGER_ACTION.OP;
pub const SERVICE_TRIGGER_TYPE = enum(u32) {
CUSTOM = 20,
DEVICE_INTERFACE_ARRIVAL = 1,
DOMAIN_JOIN = 3,
FIREWALL_PORT_EVENT = 4,
GROUP_POLICY = 5,
IP_ADDRESS_AVAILABILITY = 2,
NETWORK_ENDPOINT = 6,
};
pub const SERVICE_TRIGGER_TYPE_CUSTOM = SERVICE_TRIGGER_TYPE.CUSTOM;
pub const SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL = SERVICE_TRIGGER_TYPE.DEVICE_INTERFACE_ARRIVAL;
pub const SERVICE_TRIGGER_TYPE_DOMAIN_JOIN = SERVICE_TRIGGER_TYPE.DOMAIN_JOIN;
pub const SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT = SERVICE_TRIGGER_TYPE.FIREWALL_PORT_EVENT;
pub const SERVICE_TRIGGER_TYPE_GROUP_POLICY = SERVICE_TRIGGER_TYPE.GROUP_POLICY;
pub const SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY = SERVICE_TRIGGER_TYPE.IP_ADDRESS_AVAILABILITY;
pub const SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT = SERVICE_TRIGGER_TYPE.NETWORK_ENDPOINT;
pub const SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE = enum(u32) {
BINARY = 1,
STRING = 2,
LEVEL = 3,
KEYWORD_ANY = 4,
KEYWORD_ALL = 5,
};
pub const SERVICE_TRIGGER_DATA_TYPE_BINARY = SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE.BINARY;
pub const SERVICE_TRIGGER_DATA_TYPE_STRING = SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE.STRING;
pub const SERVICE_TRIGGER_DATA_TYPE_LEVEL = SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE.LEVEL;
pub const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY = SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE.KEYWORD_ANY;
pub const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL = SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE.KEYWORD_ALL;
pub const SERVICE_STATUS_CURRENT_STATE = enum(u32) {
CONTINUE_PENDING = 5,
PAUSE_PENDING = 6,
PAUSED = 7,
RUNNING = 4,
START_PENDING = 2,
STOP_PENDING = 3,
STOPPED = 1,
};
pub const SERVICE_CONTINUE_PENDING = SERVICE_STATUS_CURRENT_STATE.CONTINUE_PENDING;
pub const SERVICE_PAUSE_PENDING = SERVICE_STATUS_CURRENT_STATE.PAUSE_PENDING;
pub const SERVICE_PAUSED = SERVICE_STATUS_CURRENT_STATE.PAUSED;
pub const SERVICE_RUNNING = SERVICE_STATUS_CURRENT_STATE.RUNNING;
pub const SERVICE_START_PENDING = SERVICE_STATUS_CURRENT_STATE.START_PENDING;
pub const SERVICE_STOP_PENDING = SERVICE_STATUS_CURRENT_STATE.STOP_PENDING;
pub const SERVICE_STOPPED = SERVICE_STATUS_CURRENT_STATE.STOPPED;
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const SERVICE_STATUS_HANDLE = isize;
pub const SERVICE_TRIGGER_CUSTOM_STATE_ID = extern struct {
Data: [2]u32,
};
pub const SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM = extern struct {
u: extern union {
CustomStateId: SERVICE_TRIGGER_CUSTOM_STATE_ID,
s: extern struct {
DataOffset: u32,
Data: [1]u8,
},
},
};
pub const SERVICE_DESCRIPTIONA = extern struct {
lpDescription: ?PSTR,
};
pub const SERVICE_DESCRIPTIONW = extern struct {
lpDescription: ?PWSTR,
};
pub const SC_ACTION_TYPE = enum(i32) {
NONE = 0,
RESTART = 1,
REBOOT = 2,
RUN_COMMAND = 3,
OWN_RESTART = 4,
};
pub const SC_ACTION_NONE = SC_ACTION_TYPE.NONE;
pub const SC_ACTION_RESTART = SC_ACTION_TYPE.RESTART;
pub const SC_ACTION_REBOOT = SC_ACTION_TYPE.REBOOT;
pub const SC_ACTION_RUN_COMMAND = SC_ACTION_TYPE.RUN_COMMAND;
pub const SC_ACTION_OWN_RESTART = SC_ACTION_TYPE.OWN_RESTART;
pub const SC_ACTION = extern struct {
Type: SC_ACTION_TYPE,
Delay: u32,
};
pub const SERVICE_FAILURE_ACTIONSA = extern struct {
dwResetPeriod: u32,
lpRebootMsg: ?PSTR,
lpCommand: ?PSTR,
cActions: u32,
lpsaActions: ?*SC_ACTION,
};
pub const SERVICE_FAILURE_ACTIONSW = extern struct {
dwResetPeriod: u32,
lpRebootMsg: ?PWSTR,
lpCommand: ?PWSTR,
cActions: u32,
lpsaActions: ?*SC_ACTION,
};
pub const SERVICE_DELAYED_AUTO_START_INFO = extern struct {
fDelayedAutostart: BOOL,
};
pub const SERVICE_FAILURE_ACTIONS_FLAG = extern struct {
fFailureActionsOnNonCrashFailures: BOOL,
};
pub const SERVICE_SID_INFO = extern struct {
dwServiceSidType: u32,
};
pub const SERVICE_REQUIRED_PRIVILEGES_INFOA = extern struct {
pmszRequiredPrivileges: ?PSTR,
};
pub const SERVICE_REQUIRED_PRIVILEGES_INFOW = extern struct {
pmszRequiredPrivileges: ?PWSTR,
};
pub const SERVICE_PRESHUTDOWN_INFO = extern struct {
dwPreshutdownTimeout: u32,
};
pub const SERVICE_TRIGGER_SPECIFIC_DATA_ITEM = extern struct {
dwDataType: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM_DATA_TYPE,
cbData: u32,
pData: ?*u8,
};
pub const SERVICE_TRIGGER = extern struct {
dwTriggerType: SERVICE_TRIGGER_TYPE,
dwAction: SERVICE_TRIGGER_ACTION,
pTriggerSubtype: ?*Guid,
cDataItems: u32,
pDataItems: ?*SERVICE_TRIGGER_SPECIFIC_DATA_ITEM,
};
pub const SERVICE_TRIGGER_INFO = extern struct {
cTriggers: u32,
pTriggers: ?*SERVICE_TRIGGER,
pReserved: ?*u8,
};
pub const SERVICE_PREFERRED_NODE_INFO = extern struct {
usPreferredNode: u16,
fDelete: BOOLEAN,
};
pub const SERVICE_TIMECHANGE_INFO = extern struct {
liNewTime: LARGE_INTEGER,
liOldTime: LARGE_INTEGER,
};
pub const SERVICE_LAUNCH_PROTECTED_INFO = extern struct {
dwLaunchProtected: u32,
};
pub const SC_STATUS_TYPE = enum(i32) {
O = 0,
};
pub const SC_STATUS_PROCESS_INFO = SC_STATUS_TYPE.O;
pub const SC_ENUM_TYPE = enum(i32) {
O = 0,
};
pub const SC_ENUM_PROCESS_INFO = SC_ENUM_TYPE.O;
pub const SERVICE_STATUS = extern struct {
dwServiceType: ENUM_SERVICE_TYPE,
dwCurrentState: SERVICE_STATUS_CURRENT_STATE,
dwControlsAccepted: u32,
dwWin32ExitCode: u32,
dwServiceSpecificExitCode: u32,
dwCheckPoint: u32,
dwWaitHint: u32,
};
pub const SERVICE_STATUS_PROCESS = extern struct {
dwServiceType: ENUM_SERVICE_TYPE,
dwCurrentState: SERVICE_STATUS_CURRENT_STATE,
dwControlsAccepted: u32,
dwWin32ExitCode: u32,
dwServiceSpecificExitCode: u32,
dwCheckPoint: u32,
dwWaitHint: u32,
dwProcessId: u32,
dwServiceFlags: SERVICE_RUNS_IN_PROCESS,
};
pub const ENUM_SERVICE_STATUSA = extern struct {
lpServiceName: ?PSTR,
lpDisplayName: ?PSTR,
ServiceStatus: SERVICE_STATUS,
};
pub const ENUM_SERVICE_STATUSW = extern struct {
lpServiceName: ?PWSTR,
lpDisplayName: ?PWSTR,
ServiceStatus: SERVICE_STATUS,
};
pub const ENUM_SERVICE_STATUS_PROCESSA = extern struct {
lpServiceName: ?PSTR,
lpDisplayName: ?PSTR,
ServiceStatusProcess: SERVICE_STATUS_PROCESS,
};
pub const ENUM_SERVICE_STATUS_PROCESSW = extern struct {
lpServiceName: ?PWSTR,
lpDisplayName: ?PWSTR,
ServiceStatusProcess: SERVICE_STATUS_PROCESS,
};
pub const QUERY_SERVICE_LOCK_STATUSA = extern struct {
fIsLocked: u32,
lpLockOwner: ?PSTR,
dwLockDuration: u32,
};
pub const QUERY_SERVICE_LOCK_STATUSW = extern struct {
fIsLocked: u32,
lpLockOwner: ?PWSTR,
dwLockDuration: u32,
};
pub const QUERY_SERVICE_CONFIGA = extern struct {
dwServiceType: ENUM_SERVICE_TYPE,
dwStartType: SERVICE_START_TYPE,
dwErrorControl: SERVICE_ERROR,
lpBinaryPathName: ?PSTR,
lpLoadOrderGroup: ?PSTR,
dwTagId: u32,
lpDependencies: ?PSTR,
lpServiceStartName: ?PSTR,
lpDisplayName: ?PSTR,
};
pub const QUERY_SERVICE_CONFIGW = extern struct {
dwServiceType: ENUM_SERVICE_TYPE,
dwStartType: SERVICE_START_TYPE,
dwErrorControl: SERVICE_ERROR,
lpBinaryPathName: ?PWSTR,
lpLoadOrderGroup: ?PWSTR,
dwTagId: u32,
lpDependencies: ?PWSTR,
lpServiceStartName: ?PWSTR,
lpDisplayName: ?PWSTR,
};
pub const SERVICE_MAIN_FUNCTIONW = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?PWSTR,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?PWSTR,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const SERVICE_MAIN_FUNCTIONA = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?*i8,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?*i8,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const LPSERVICE_MAIN_FUNCTIONW = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?PWSTR,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?PWSTR,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const LPSERVICE_MAIN_FUNCTIONA = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?PSTR,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwNumServicesArgs: u32,
lpServiceArgVectors: ?*?PSTR,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const SERVICE_TABLE_ENTRYA = extern struct {
lpServiceName: ?PSTR,
lpServiceProc: ?LPSERVICE_MAIN_FUNCTIONA,
};
pub const SERVICE_TABLE_ENTRYW = extern struct {
lpServiceName: ?PWSTR,
lpServiceProc: ?LPSERVICE_MAIN_FUNCTIONW,
};
pub const HANDLER_FUNCTION = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwControl: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwControl: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const HANDLER_FUNCTION_EX = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwControl: u32,
dwEventType: u32,
lpEventData: ?*anyopaque,
lpContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
dwControl: u32,
dwEventType: u32,
lpEventData: ?*anyopaque,
lpContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
} ;
pub const LPHANDLER_FUNCTION = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwControl: u32,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwControl: u32,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const LPHANDLER_FUNCTION_EX = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwControl: u32,
dwEventType: u32,
lpEventData: ?*anyopaque,
lpContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
dwControl: u32,
dwEventType: u32,
lpEventData: ?*anyopaque,
lpContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32,
} ;
pub const PFN_SC_NOTIFY_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
pParameter: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
pParameter: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const SERVICE_NOTIFY_1 = extern struct {
dwVersion: u32,
pfnNotifyCallback: ?PFN_SC_NOTIFY_CALLBACK,
pContext: ?*anyopaque,
dwNotificationStatus: u32,
ServiceStatus: SERVICE_STATUS_PROCESS,
};
pub const SERVICE_NOTIFY_2A = extern struct {
dwVersion: u32,
pfnNotifyCallback: ?PFN_SC_NOTIFY_CALLBACK,
pContext: ?*anyopaque,
dwNotificationStatus: u32,
ServiceStatus: SERVICE_STATUS_PROCESS,
dwNotificationTriggered: u32,
pszServiceNames: ?PSTR,
};
pub const SERVICE_NOTIFY_2W = extern struct {
dwVersion: u32,
pfnNotifyCallback: ?PFN_SC_NOTIFY_CALLBACK,
pContext: ?*anyopaque,
dwNotificationStatus: u32,
ServiceStatus: SERVICE_STATUS_PROCESS,
dwNotificationTriggered: u32,
pszServiceNames: ?PWSTR,
};
pub const SERVICE_CONTROL_STATUS_REASON_PARAMSA = extern struct {
dwReason: u32,
pszComment: ?PSTR,
ServiceStatus: SERVICE_STATUS_PROCESS,
};
pub const SERVICE_CONTROL_STATUS_REASON_PARAMSW = extern struct {
dwReason: u32,
pszComment: ?PWSTR,
ServiceStatus: SERVICE_STATUS_PROCESS,
};
pub const SERVICE_START_REASON = extern struct {
dwReason: u32,
};
pub const SC_EVENT_TYPE = enum(i32) {
DATABASE_CHANGE = 0,
PROPERTY_CHANGE = 1,
STATUS_CHANGE = 2,
};
pub const SC_EVENT_DATABASE_CHANGE = SC_EVENT_TYPE.DATABASE_CHANGE;
pub const SC_EVENT_PROPERTY_CHANGE = SC_EVENT_TYPE.PROPERTY_CHANGE;
pub const SC_EVENT_STATUS_CHANGE = SC_EVENT_TYPE.STATUS_CHANGE;
pub const PSC_NOTIFICATION_CALLBACK = switch (@import("builtin").zig_backend) {
.stage1 => fn(
dwNotify: u32,
pCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
dwNotify: u32,
pCallbackContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
} ;
pub const _SC_NOTIFICATION_REGISTRATION = extern struct {
placeholder: usize, // TODO: why is this type empty?
};
pub const SERVICE_REGISTRY_STATE_TYPE = enum(i32) {
ServiceRegistryStateParameters = 0,
ServiceRegistryStatePersistent = 1,
MaxServiceRegistryStateType = 2,
};
pub const ServiceRegistryStateParameters = SERVICE_REGISTRY_STATE_TYPE.ServiceRegistryStateParameters;
pub const ServiceRegistryStatePersistent = SERVICE_REGISTRY_STATE_TYPE.ServiceRegistryStatePersistent;
pub const MaxServiceRegistryStateType = SERVICE_REGISTRY_STATE_TYPE.MaxServiceRegistryStateType;
pub const SERVICE_DIRECTORY_TYPE = enum(i32) {
PersistentState = 0,
TypeMax = 1,
};
pub const ServiceDirectoryPersistentState = SERVICE_DIRECTORY_TYPE.PersistentState;
pub const ServiceDirectoryTypeMax = SERVICE_DIRECTORY_TYPE.TypeMax;
pub const SERVICE_SHARED_REGISTRY_STATE_TYPE = enum(i32) {
e = 0,
};
pub const ServiceSharedRegistryPersistentState = SERVICE_SHARED_REGISTRY_STATE_TYPE.e;
pub const SERVICE_SHARED_DIRECTORY_TYPE = enum(i32) {
e = 0,
};
pub const ServiceSharedDirectoryPersistentState = SERVICE_SHARED_DIRECTORY_TYPE.e;
//--------------------------------------------------------------------------------
// Section: Functions (56)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetServiceBits(
hServiceStatus: SERVICE_STATUS_HANDLE,
dwServiceBits: u32,
bSetBitsOn: BOOL,
bUpdateImmediately: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ChangeServiceConfigA(
hService: SC_HANDLE,
dwServiceType: u32,
dwStartType: SERVICE_START_TYPE,
dwErrorControl: SERVICE_ERROR,
lpBinaryPathName: ?[*:0]const u8,
lpLoadOrderGroup: ?[*:0]const u8,
lpdwTagId: ?*u32,
lpDependencies: ?[*:0]const u8,
lpServiceStartName: ?[*:0]const u8,
lpPassword: ?[*:0]const u8,
lpDisplayName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ChangeServiceConfigW(
hService: SC_HANDLE,
dwServiceType: u32,
dwStartType: SERVICE_START_TYPE,
dwErrorControl: SERVICE_ERROR,
lpBinaryPathName: ?[*:0]const u16,
lpLoadOrderGroup: ?[*:0]const u16,
lpdwTagId: ?*u32,
lpDependencies: ?[*:0]const u16,
lpServiceStartName: ?[*:0]const u16,
lpPassword: ?[*:0]const u16,
lpDisplayName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ChangeServiceConfig2A(
hService: SC_HANDLE,
dwInfoLevel: SERVICE_CONFIG,
lpInfo: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ChangeServiceConfig2W(
hService: SC_HANDLE,
dwInfoLevel: SERVICE_CONFIG,
lpInfo: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CloseServiceHandle(
hSCObject: SC_HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn ControlService(
hService: SC_HANDLE,
dwControl: u32,
lpServiceStatus: ?*SERVICE_STATUS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreateServiceA(
hSCManager: SC_HANDLE,
lpServiceName: ?[*:0]const u8,
lpDisplayName: ?[*:0]const u8,
dwDesiredAccess: u32,
dwServiceType: ENUM_SERVICE_TYPE,
dwStartType: SERVICE_START_TYPE,
dwErrorControl: SERVICE_ERROR,
lpBinaryPathName: ?[*:0]const u8,
lpLoadOrderGroup: ?[*:0]const u8,
lpdwTagId: ?*u32,
lpDependencies: ?[*:0]const u8,
lpServiceStartName: ?[*:0]const u8,
lpPassword: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) SC_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn CreateServiceW(
hSCManager: SC_HANDLE,
lpServiceName: ?[*:0]const u16,
lpDisplayName: ?[*:0]const u16,
dwDesiredAccess: u32,
dwServiceType: ENUM_SERVICE_TYPE,
dwStartType: SERVICE_START_TYPE,
dwErrorControl: SERVICE_ERROR,
lpBinaryPathName: ?[*:0]const u16,
lpLoadOrderGroup: ?[*:0]const u16,
lpdwTagId: ?*u32,
lpDependencies: ?[*:0]const u16,
lpServiceStartName: ?[*:0]const u16,
lpPassword: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) SC_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn DeleteService(
hService: SC_HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EnumDependentServicesA(
hService: SC_HANDLE,
dwServiceState: ENUM_SERVICE_STATE,
// TODO: what to do with BytesParamIndex 3?
lpServices: ?*ENUM_SERVICE_STATUSA,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
lpServicesReturned: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EnumDependentServicesW(
hService: SC_HANDLE,
dwServiceState: ENUM_SERVICE_STATE,
// TODO: what to do with BytesParamIndex 3?
lpServices: ?*ENUM_SERVICE_STATUSW,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
lpServicesReturned: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EnumServicesStatusA(
hSCManager: SC_HANDLE,
dwServiceType: ENUM_SERVICE_TYPE,
dwServiceState: ENUM_SERVICE_STATE,
// TODO: what to do with BytesParamIndex 4?
lpServices: ?*ENUM_SERVICE_STATUSA,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
lpServicesReturned: ?*u32,
lpResumeHandle: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EnumServicesStatusW(
hSCManager: SC_HANDLE,
dwServiceType: ENUM_SERVICE_TYPE,
dwServiceState: ENUM_SERVICE_STATE,
// TODO: what to do with BytesParamIndex 4?
lpServices: ?*ENUM_SERVICE_STATUSW,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
lpServicesReturned: ?*u32,
lpResumeHandle: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EnumServicesStatusExA(
hSCManager: SC_HANDLE,
InfoLevel: SC_ENUM_TYPE,
dwServiceType: ENUM_SERVICE_TYPE,
dwServiceState: ENUM_SERVICE_STATE,
// TODO: what to do with BytesParamIndex 5?
lpServices: ?*u8,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
lpServicesReturned: ?*u32,
lpResumeHandle: ?*u32,
pszGroupName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn EnumServicesStatusExW(
hSCManager: SC_HANDLE,
InfoLevel: SC_ENUM_TYPE,
dwServiceType: ENUM_SERVICE_TYPE,
dwServiceState: ENUM_SERVICE_STATE,
// TODO: what to do with BytesParamIndex 5?
lpServices: ?*u8,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
lpServicesReturned: ?*u32,
lpResumeHandle: ?*u32,
pszGroupName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetServiceKeyNameA(
hSCManager: SC_HANDLE,
lpDisplayName: ?[*:0]const u8,
lpServiceName: ?[*:0]u8,
lpcchBuffer: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetServiceKeyNameW(
hSCManager: SC_HANDLE,
lpDisplayName: ?[*:0]const u16,
lpServiceName: ?[*:0]u16,
lpcchBuffer: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetServiceDisplayNameA(
hSCManager: SC_HANDLE,
lpServiceName: ?[*:0]const u8,
lpDisplayName: ?[*:0]u8,
lpcchBuffer: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn GetServiceDisplayNameW(
hSCManager: SC_HANDLE,
lpServiceName: ?[*:0]const u16,
lpDisplayName: ?[*:0]u16,
lpcchBuffer: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn LockServiceDatabase(
hSCManager: SC_HANDLE,
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn NotifyBootConfigStatus(
BootAcceptable: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn OpenSCManagerA(
lpMachineName: ?[*:0]const u8,
lpDatabaseName: ?[*:0]const u8,
dwDesiredAccess: u32,
) callconv(@import("std").os.windows.WINAPI) SC_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn OpenSCManagerW(
lpMachineName: ?[*:0]const u16,
lpDatabaseName: ?[*:0]const u16,
dwDesiredAccess: u32,
) callconv(@import("std").os.windows.WINAPI) SC_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn OpenServiceA(
hSCManager: SC_HANDLE,
lpServiceName: ?[*:0]const u8,
dwDesiredAccess: u32,
) callconv(@import("std").os.windows.WINAPI) SC_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn OpenServiceW(
hSCManager: SC_HANDLE,
lpServiceName: ?[*:0]const u16,
dwDesiredAccess: u32,
) callconv(@import("std").os.windows.WINAPI) SC_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceConfigA(
hService: SC_HANDLE,
// TODO: what to do with BytesParamIndex 2?
lpServiceConfig: ?*QUERY_SERVICE_CONFIGA,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceConfigW(
hService: SC_HANDLE,
// TODO: what to do with BytesParamIndex 2?
lpServiceConfig: ?*QUERY_SERVICE_CONFIGW,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceConfig2A(
hService: SC_HANDLE,
dwInfoLevel: SERVICE_CONFIG,
// TODO: what to do with BytesParamIndex 3?
lpBuffer: ?*u8,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceConfig2W(
hService: SC_HANDLE,
dwInfoLevel: SERVICE_CONFIG,
// TODO: what to do with BytesParamIndex 3?
lpBuffer: ?*u8,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceLockStatusA(
hSCManager: SC_HANDLE,
// TODO: what to do with BytesParamIndex 2?
lpLockStatus: ?*QUERY_SERVICE_LOCK_STATUSA,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceLockStatusW(
hSCManager: SC_HANDLE,
// TODO: what to do with BytesParamIndex 2?
lpLockStatus: ?*QUERY_SERVICE_LOCK_STATUSW,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceObjectSecurity(
hService: SC_HANDLE,
dwSecurityInformation: u32,
// TODO: what to do with BytesParamIndex 3?
lpSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceStatus(
hService: SC_HANDLE,
lpServiceStatus: ?*SERVICE_STATUS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn QueryServiceStatusEx(
hService: SC_HANDLE,
InfoLevel: SC_STATUS_TYPE,
// TODO: what to do with BytesParamIndex 3?
lpBuffer: ?*u8,
cbBufSize: u32,
pcbBytesNeeded: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn RegisterServiceCtrlHandlerA(
lpServiceName: ?[*:0]const u8,
lpHandlerProc: ?LPHANDLER_FUNCTION,
) callconv(@import("std").os.windows.WINAPI) SERVICE_STATUS_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn RegisterServiceCtrlHandlerW(
lpServiceName: ?[*:0]const u16,
lpHandlerProc: ?LPHANDLER_FUNCTION,
) callconv(@import("std").os.windows.WINAPI) SERVICE_STATUS_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn RegisterServiceCtrlHandlerExA(
lpServiceName: ?[*:0]const u8,
lpHandlerProc: ?LPHANDLER_FUNCTION_EX,
lpContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) SERVICE_STATUS_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn RegisterServiceCtrlHandlerExW(
lpServiceName: ?[*:0]const u16,
lpHandlerProc: ?LPHANDLER_FUNCTION_EX,
lpContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) SERVICE_STATUS_HANDLE;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetServiceObjectSecurity(
hService: SC_HANDLE,
dwSecurityInformation: OBJECT_SECURITY_INFORMATION,
lpSecurityDescriptor: ?PSECURITY_DESCRIPTOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn SetServiceStatus(
hServiceStatus: SERVICE_STATUS_HANDLE,
lpServiceStatus: ?*SERVICE_STATUS,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn StartServiceCtrlDispatcherA(
lpServiceStartTable: ?*const SERVICE_TABLE_ENTRYA,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn StartServiceCtrlDispatcherW(
lpServiceStartTable: ?*const SERVICE_TABLE_ENTRYW,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn StartServiceA(
hService: SC_HANDLE,
dwNumServiceArgs: u32,
lpServiceArgVectors: ?[*]?PSTR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn StartServiceW(
hService: SC_HANDLE,
dwNumServiceArgs: u32,
lpServiceArgVectors: ?[*]?PWSTR,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "advapi32" fn UnlockServiceDatabase(
ScLock: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn NotifyServiceStatusChangeA(
hService: SC_HANDLE,
dwNotifyMask: SERVICE_NOTIFY,
pNotifyBuffer: ?*SERVICE_NOTIFY_2A,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn NotifyServiceStatusChangeW(
hService: SC_HANDLE,
dwNotifyMask: SERVICE_NOTIFY,
pNotifyBuffer: ?*SERVICE_NOTIFY_2W,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn ControlServiceExA(
hService: SC_HANDLE,
dwControl: u32,
dwInfoLevel: u32,
pControlParams: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "advapi32" fn ControlServiceExW(
hService: SC_HANDLE,
dwControl: u32,
dwInfoLevel: u32,
pControlParams: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows8.0'
pub extern "advapi32" fn QueryServiceDynamicInformation(
hServiceStatus: SERVICE_STATUS_HANDLE,
dwInfoLevel: u32,
ppDynamicInfo: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) BOOL;
pub extern "advapi32" fn WaitServiceState(
hService: SC_HANDLE,
dwNotify: u32,
dwTimeout: u32,
hCancelEvent: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows10.0.19041'
pub extern "api-ms-win-service-core-l1-1-3" fn GetServiceRegistryStateKey(
ServiceStatusHandle: SERVICE_STATUS_HANDLE,
StateType: SERVICE_REGISTRY_STATE_TYPE,
AccessMask: u32,
ServiceStateKey: ?*?HKEY,
) callconv(@import("std").os.windows.WINAPI) u32;
// TODO: this type is limited to platform 'windows10.0.19041'
pub extern "api-ms-win-service-core-l1-1-4" fn GetServiceDirectory(
hServiceStatus: SERVICE_STATUS_HANDLE,
eDirectoryType: SERVICE_DIRECTORY_TYPE,
lpPathBuffer: ?[*]u16,
cchPathBufferLength: u32,
lpcchRequiredBufferLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "api-ms-win-service-core-l1-1-5" fn GetSharedServiceRegistryStateKey(
ServiceHandle: SC_HANDLE,
StateType: SERVICE_SHARED_REGISTRY_STATE_TYPE,
AccessMask: u32,
ServiceStateKey: ?*?HKEY,
) callconv(@import("std").os.windows.WINAPI) u32;
pub extern "api-ms-win-service-core-l1-1-5" fn GetSharedServiceDirectory(
ServiceHandle: SC_HANDLE,
DirectoryType: SERVICE_SHARED_DIRECTORY_TYPE,
PathBuffer: ?[*]u16,
PathBufferLength: u32,
RequiredBufferLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (31)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
pub const SERVICE_DESCRIPTION = thismodule.SERVICE_DESCRIPTIONA;
pub const SERVICE_FAILURE_ACTIONS = thismodule.SERVICE_FAILURE_ACTIONSA;
pub const SERVICE_REQUIRED_PRIVILEGES_INFO = thismodule.SERVICE_REQUIRED_PRIVILEGES_INFOA;
pub const ENUM_SERVICE_STATUS = thismodule.ENUM_SERVICE_STATUSA;
pub const ENUM_SERVICE_STATUS_PROCESS = thismodule.ENUM_SERVICE_STATUS_PROCESSA;
pub const QUERY_SERVICE_LOCK_STATUS = thismodule.QUERY_SERVICE_LOCK_STATUSA;
pub const QUERY_SERVICE_CONFIG = thismodule.QUERY_SERVICE_CONFIGA;
pub const SERVICE_MAIN_FUNCTION = thismodule.SERVICE_MAIN_FUNCTIONA;
pub const LPSERVICE_MAIN_FUNCTION = thismodule.LPSERVICE_MAIN_FUNCTIONA;
pub const SERVICE_TABLE_ENTRY = thismodule.SERVICE_TABLE_ENTRYA;
pub const SERVICE_NOTIFY_2 = thismodule.SERVICE_NOTIFY_2A;
pub const SERVICE_CONTROL_STATUS_REASON_PARAMS = thismodule.SERVICE_CONTROL_STATUS_REASON_PARAMSA;
pub const ChangeServiceConfig = thismodule.ChangeServiceConfigA;
pub const ChangeServiceConfig2 = thismodule.ChangeServiceConfig2A;
pub const CreateService = thismodule.CreateServiceA;
pub const EnumDependentServices = thismodule.EnumDependentServicesA;
pub const EnumServicesStatus = thismodule.EnumServicesStatusA;
pub const EnumServicesStatusEx = thismodule.EnumServicesStatusExA;
pub const GetServiceKeyName = thismodule.GetServiceKeyNameA;
pub const GetServiceDisplayName = thismodule.GetServiceDisplayNameA;
pub const OpenSCManager = thismodule.OpenSCManagerA;
pub const OpenService = thismodule.OpenServiceA;
pub const QueryServiceConfig = thismodule.QueryServiceConfigA;
pub const QueryServiceConfig2 = thismodule.QueryServiceConfig2A;
pub const QueryServiceLockStatus = thismodule.QueryServiceLockStatusA;
pub const RegisterServiceCtrlHandler = thismodule.RegisterServiceCtrlHandlerA;
pub const RegisterServiceCtrlHandlerEx = thismodule.RegisterServiceCtrlHandlerExA;
pub const StartServiceCtrlDispatcher = thismodule.StartServiceCtrlDispatcherA;
pub const StartService = thismodule.StartServiceA;
pub const NotifyServiceStatusChange = thismodule.NotifyServiceStatusChangeA;
pub const ControlServiceEx = thismodule.ControlServiceExA;
},
.wide => struct {
pub const SERVICE_DESCRIPTION = thismodule.SERVICE_DESCRIPTIONW;
pub const SERVICE_FAILURE_ACTIONS = thismodule.SERVICE_FAILURE_ACTIONSW;
pub const SERVICE_REQUIRED_PRIVILEGES_INFO = thismodule.SERVICE_REQUIRED_PRIVILEGES_INFOW;
pub const ENUM_SERVICE_STATUS = thismodule.ENUM_SERVICE_STATUSW;
pub const ENUM_SERVICE_STATUS_PROCESS = thismodule.ENUM_SERVICE_STATUS_PROCESSW;
pub const QUERY_SERVICE_LOCK_STATUS = thismodule.QUERY_SERVICE_LOCK_STATUSW;
pub const QUERY_SERVICE_CONFIG = thismodule.QUERY_SERVICE_CONFIGW;
pub const SERVICE_MAIN_FUNCTION = thismodule.SERVICE_MAIN_FUNCTIONW;
pub const LPSERVICE_MAIN_FUNCTION = thismodule.LPSERVICE_MAIN_FUNCTIONW;
pub const SERVICE_TABLE_ENTRY = thismodule.SERVICE_TABLE_ENTRYW;
pub const SERVICE_NOTIFY_2 = thismodule.SERVICE_NOTIFY_2W;
pub const SERVICE_CONTROL_STATUS_REASON_PARAMS = thismodule.SERVICE_CONTROL_STATUS_REASON_PARAMSW;
pub const ChangeServiceConfig = thismodule.ChangeServiceConfigW;
pub const ChangeServiceConfig2 = thismodule.ChangeServiceConfig2W;
pub const CreateService = thismodule.CreateServiceW;
pub const EnumDependentServices = thismodule.EnumDependentServicesW;
pub const EnumServicesStatus = thismodule.EnumServicesStatusW;
pub const EnumServicesStatusEx = thismodule.EnumServicesStatusExW;
pub const GetServiceKeyName = thismodule.GetServiceKeyNameW;
pub const GetServiceDisplayName = thismodule.GetServiceDisplayNameW;
pub const OpenSCManager = thismodule.OpenSCManagerW;
pub const OpenService = thismodule.OpenServiceW;
pub const QueryServiceConfig = thismodule.QueryServiceConfigW;
pub const QueryServiceConfig2 = thismodule.QueryServiceConfig2W;
pub const QueryServiceLockStatus = thismodule.QueryServiceLockStatusW;
pub const RegisterServiceCtrlHandler = thismodule.RegisterServiceCtrlHandlerW;
pub const RegisterServiceCtrlHandlerEx = thismodule.RegisterServiceCtrlHandlerExW;
pub const StartServiceCtrlDispatcher = thismodule.StartServiceCtrlDispatcherW;
pub const StartService = thismodule.StartServiceW;
pub const NotifyServiceStatusChange = thismodule.NotifyServiceStatusChangeW;
pub const ControlServiceEx = thismodule.ControlServiceExW;
},
.unspecified => if (@import("builtin").is_test) struct {
pub const SERVICE_DESCRIPTION = *opaque{};
pub const SERVICE_FAILURE_ACTIONS = *opaque{};
pub const SERVICE_REQUIRED_PRIVILEGES_INFO = *opaque{};
pub const ENUM_SERVICE_STATUS = *opaque{};
pub const ENUM_SERVICE_STATUS_PROCESS = *opaque{};
pub const QUERY_SERVICE_LOCK_STATUS = *opaque{};
pub const QUERY_SERVICE_CONFIG = *opaque{};
pub const SERVICE_MAIN_FUNCTION = *opaque{};
pub const LPSERVICE_MAIN_FUNCTION = *opaque{};
pub const SERVICE_TABLE_ENTRY = *opaque{};
pub const SERVICE_NOTIFY_2 = *opaque{};
pub const SERVICE_CONTROL_STATUS_REASON_PARAMS = *opaque{};
pub const ChangeServiceConfig = *opaque{};
pub const ChangeServiceConfig2 = *opaque{};
pub const CreateService = *opaque{};
pub const EnumDependentServices = *opaque{};
pub const EnumServicesStatus = *opaque{};
pub const EnumServicesStatusEx = *opaque{};
pub const GetServiceKeyName = *opaque{};
pub const GetServiceDisplayName = *opaque{};
pub const OpenSCManager = *opaque{};
pub const OpenService = *opaque{};
pub const QueryServiceConfig = *opaque{};
pub const QueryServiceConfig2 = *opaque{};
pub const QueryServiceLockStatus = *opaque{};
pub const RegisterServiceCtrlHandler = *opaque{};
pub const RegisterServiceCtrlHandlerEx = *opaque{};
pub const StartServiceCtrlDispatcher = *opaque{};
pub const StartService = *opaque{};
pub const NotifyServiceStatusChange = *opaque{};
pub const ControlServiceEx = *opaque{};
} else struct {
pub const SERVICE_DESCRIPTION = @compileError("'SERVICE_DESCRIPTION' requires that UNICODE be set to true or false in the root module");
pub const SERVICE_FAILURE_ACTIONS = @compileError("'SERVICE_FAILURE_ACTIONS' requires that UNICODE be set to true or false in the root module");
pub const SERVICE_REQUIRED_PRIVILEGES_INFO = @compileError("'SERVICE_REQUIRED_PRIVILEGES_INFO' requires that UNICODE be set to true or false in the root module");
pub const ENUM_SERVICE_STATUS = @compileError("'ENUM_SERVICE_STATUS' requires that UNICODE be set to true or false in the root module");
pub const ENUM_SERVICE_STATUS_PROCESS = @compileError("'ENUM_SERVICE_STATUS_PROCESS' requires that UNICODE be set to true or false in the root module");
pub const QUERY_SERVICE_LOCK_STATUS = @compileError("'QUERY_SERVICE_LOCK_STATUS' requires that UNICODE be set to true or false in the root module");
pub const QUERY_SERVICE_CONFIG = @compileError("'QUERY_SERVICE_CONFIG' requires that UNICODE be set to true or false in the root module");
pub const SERVICE_MAIN_FUNCTION = @compileError("'SERVICE_MAIN_FUNCTION' requires that UNICODE be set to true or false in the root module");
pub const LPSERVICE_MAIN_FUNCTION = @compileError("'LPSERVICE_MAIN_FUNCTION' requires that UNICODE be set to true or false in the root module");
pub const SERVICE_TABLE_ENTRY = @compileError("'SERVICE_TABLE_ENTRY' requires that UNICODE be set to true or false in the root module");
pub const SERVICE_NOTIFY_2 = @compileError("'SERVICE_NOTIFY_2' requires that UNICODE be set to true or false in the root module");
pub const SERVICE_CONTROL_STATUS_REASON_PARAMS = @compileError("'SERVICE_CONTROL_STATUS_REASON_PARAMS' requires that UNICODE be set to true or false in the root module");
pub const ChangeServiceConfig = @compileError("'ChangeServiceConfig' requires that UNICODE be set to true or false in the root module");
pub const ChangeServiceConfig2 = @compileError("'ChangeServiceConfig2' requires that UNICODE be set to true or false in the root module");
pub const CreateService = @compileError("'CreateService' requires that UNICODE be set to true or false in the root module");
pub const EnumDependentServices = @compileError("'EnumDependentServices' requires that UNICODE be set to true or false in the root module");
pub const EnumServicesStatus = @compileError("'EnumServicesStatus' requires that UNICODE be set to true or false in the root module");
pub const EnumServicesStatusEx = @compileError("'EnumServicesStatusEx' requires that UNICODE be set to true or false in the root module");
pub const GetServiceKeyName = @compileError("'GetServiceKeyName' requires that UNICODE be set to true or false in the root module");
pub const GetServiceDisplayName = @compileError("'GetServiceDisplayName' requires that UNICODE be set to true or false in the root module");
pub const OpenSCManager = @compileError("'OpenSCManager' requires that UNICODE be set to true or false in the root module");
pub const OpenService = @compileError("'OpenService' requires that UNICODE be set to true or false in the root module");
pub const QueryServiceConfig = @compileError("'QueryServiceConfig' requires that UNICODE be set to true or false in the root module");
pub const QueryServiceConfig2 = @compileError("'QueryServiceConfig2' requires that UNICODE be set to true or false in the root module");
pub const QueryServiceLockStatus = @compileError("'QueryServiceLockStatus' requires that UNICODE be set to true or false in the root module");
pub const RegisterServiceCtrlHandler = @compileError("'RegisterServiceCtrlHandler' requires that UNICODE be set to true or false in the root module");
pub const RegisterServiceCtrlHandlerEx = @compileError("'RegisterServiceCtrlHandlerEx' requires that UNICODE be set to true or false in the root module");
pub const StartServiceCtrlDispatcher = @compileError("'StartServiceCtrlDispatcher' requires that UNICODE be set to true or false in the root module");
pub const StartService = @compileError("'StartService' requires that UNICODE be set to true or false in the root module");
pub const NotifyServiceStatusChange = @compileError("'NotifyServiceStatusChange' requires that UNICODE be set to true or false in the root module");
pub const ControlServiceEx = @compileError("'ControlServiceEx' requires that UNICODE be set to true or false in the root module");
},
};
//--------------------------------------------------------------------------------
// Section: Imports (11)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const HANDLE = @import("../foundation.zig").HANDLE;
const HKEY = @import("../system/registry.zig").HKEY;
const LARGE_INTEGER = @import("../foundation.zig").LARGE_INTEGER;
const OBJECT_SECURITY_INFORMATION = @import("../security.zig").OBJECT_SECURITY_INFORMATION;
const PSECURITY_DESCRIPTOR = @import("../security.zig").PSECURITY_DESCRIPTOR;
const PSTR = @import("../foundation.zig").PSTR;
const PWSTR = @import("../foundation.zig").PWSTR;
const SC_HANDLE = @import("../security.zig").SC_HANDLE;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "SERVICE_MAIN_FUNCTIONW")) { _ = SERVICE_MAIN_FUNCTIONW; }
if (@hasDecl(@This(), "SERVICE_MAIN_FUNCTIONA")) { _ = SERVICE_MAIN_FUNCTIONA; }
if (@hasDecl(@This(), "LPSERVICE_MAIN_FUNCTIONW")) { _ = LPSERVICE_MAIN_FUNCTIONW; }
if (@hasDecl(@This(), "LPSERVICE_MAIN_FUNCTIONA")) { _ = LPSERVICE_MAIN_FUNCTIONA; }
if (@hasDecl(@This(), "HANDLER_FUNCTION")) { _ = HANDLER_FUNCTION; }
if (@hasDecl(@This(), "HANDLER_FUNCTION_EX")) { _ = HANDLER_FUNCTION_EX; }
if (@hasDecl(@This(), "LPHANDLER_FUNCTION")) { _ = LPHANDLER_FUNCTION; }
if (@hasDecl(@This(), "LPHANDLER_FUNCTION_EX")) { _ = LPHANDLER_FUNCTION_EX; }
if (@hasDecl(@This(), "PFN_SC_NOTIFY_CALLBACK")) { _ = PFN_SC_NOTIFY_CALLBACK; }
if (@hasDecl(@This(), "PSC_NOTIFICATION_CALLBACK")) { _ = PSC_NOTIFICATION_CALLBACK; }
@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);
}
}