/* header auto-generated by pidl */ #include #include "libcli/util/ntstatus.h" #include "librpc/gen_ndr/misc.h" #include "librpc/gen_ndr/security.h" #ifndef _HEADER_svcctl #define _HEADER_svcctl #define SVCCTL_ACCEPT_NONE ( 0x00000000 ) #define SERVICE_TYPE_KERNEL_DRIVER ( 0x01 ) #define SERVICE_TYPE_FS_DRIVER ( 0x02 ) #define SERVICE_TYPE_ADAPTER ( 0x04 ) #define SERVICE_TYPE_RECOGNIZER_DRIVER ( 0x08 ) #define SERVICE_TYPE_DRIVER ( SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER ) #define SERVICE_TYPE_WIN32_OWN_PROCESS ( 0x10 ) #define SERVICE_TYPE_WIN32_SHARE_PROCESS ( 0x20 ) #define SERVICE_TYPE_WIN32 ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS ) #define SERVICE_TYPE_INTERACTIVE_PROCESS ( 0x100 ) #define SV_TYPE_ALL ( 0xFFFFFFFF ) #define SC_MANAGER_READ_ACCESS ( (SEC_STD_READ_CONTROL|SC_RIGHT_MGR_CONNECT|SC_RIGHT_MGR_ENUMERATE_SERVICE|SC_RIGHT_MGR_QUERY_LOCK_STATUS) ) #define SC_MANAGER_EXECUTE_ACCESS ( SC_MANAGER_READ_ACCESS ) #define SC_MANAGER_WRITE_ACCESS ( (SEC_STD_REQUIRED|SC_MANAGER_READ_ACCESS|SC_RIGHT_MGR_CREATE_SERVICE|SC_RIGHT_MGR_LOCK|SC_RIGHT_MGR_MODIFY_BOOT_CONFIG) ) #define SC_MANAGER_ALL_ACCESS ( SC_MANAGER_WRITE_ACCESS ) #define SERVICE_READ_ACCESS ( (SEC_STD_READ_CONTROL|SC_RIGHT_SVC_ENUMERATE_DEPENDENTS|SC_RIGHT_SVC_INTERROGATE|SC_RIGHT_SVC_QUERY_CONFIG|SC_RIGHT_SVC_QUERY_STATUS|SC_RIGHT_SVC_USER_DEFINED_CONTROL) ) #define SERVICE_EXECUTE_ACCESS ( (SERVICE_READ_ACCESS|SC_RIGHT_SVC_START|SC_RIGHT_SVC_STOP|SC_RIGHT_SVC_PAUSE_CONTINUE) ) #define SERVICE_WRITE_ACCESS ( (SEC_STD_REQUIRED|SERVICE_READ_ACCESS|SERVICE_EXECUTE_ACCESS|SC_RIGHT_SVC_CHANGE_CONFIG) ) #define SERVICE_ALL_ACCESS ( SERVICE_WRITE_ACCESS ) #define SC_MAX_ARGUMENT_LENGTH ( 1024 ) #define SC_MAX_ARGUMENTS ( 1024 ) struct SERVICE_LOCK_STATUS { uint32_t is_locked; const char *lock_owner;/* [unique,charset(UTF16)] */ uint32_t lock_duration; }; enum svcctl_ServiceStatus #ifndef USE_UINT_ENUMS { SVCCTL_STATE_UNKNOWN=0x00000000, SVCCTL_STOPPED=0x00000001, SVCCTL_START_PENDING=0x00000002, SVCCTL_STOP_PENDING=0x00000003, SVCCTL_RUNNING=0x00000004, SVCCTL_CONTINUE_PENDING=0x00000005, SVCCTL_PAUSE_PENDING=0x00000006, SVCCTL_PAUSED=0x00000007 } #else { __donnot_use_enum_svcctl_ServiceStatus=0x7FFFFFFF} #define SVCCTL_STATE_UNKNOWN ( 0x00000000 ) #define SVCCTL_STOPPED ( 0x00000001 ) #define SVCCTL_START_PENDING ( 0x00000002 ) #define SVCCTL_STOP_PENDING ( 0x00000003 ) #define SVCCTL_RUNNING ( 0x00000004 ) #define SVCCTL_CONTINUE_PENDING ( 0x00000005 ) #define SVCCTL_PAUSE_PENDING ( 0x00000006 ) #define SVCCTL_PAUSED ( 0x00000007 ) #endif ; /* bitmap svcctl_ControlsAccepted */ #define SVCCTL_ACCEPT_STOP ( 0x00000001 ) #define SVCCTL_ACCEPT_PAUSE_CONTINUE ( 0x00000002 ) #define SVCCTL_ACCEPT_SHUTDOWN ( 0x00000004 ) #define SVCCTL_ACCEPT_PARAMCHANGE ( 0x00000008 ) #define SVCCTL_ACCEPT_NETBINDCHANGE ( 0x00000010 ) #define SVCCTL_ACCEPT_HARDWAREPROFILECHANGE ( 0x00000020 ) #define SVCCTL_ACCEPT_POWEREVENT ( 0x00000040 ) struct SERVICE_STATUS { uint32_t type; enum svcctl_ServiceStatus state; uint32_t controls_accepted; WERROR win32_exit_code; uint32_t service_exit_code; uint32_t check_point; uint32_t wait_hint; }; struct SERVICE_STATUS_PROCESS { struct SERVICE_STATUS status; uint32_t process_id; uint32_t service_flags; }/* [public] */; struct ENUM_SERVICE_STATUSW { const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ struct SERVICE_STATUS status; }/* [gensize,public] */; struct ENUM_SERVICE_STATUSA { const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */ struct SERVICE_STATUS status; }/* [gensize,public] */; /* bitmap svcctl_ServerType */ #define SV_TYPE_WORKSTATION ( 0x00000001 ) #define SV_TYPE_SERVER ( 0x00000002 ) #define SV_TYPE_SQLSERVER ( 0x00000004 ) #define SV_TYPE_DOMAIN_CTRL ( 0x00000008 ) #define SV_TYPE_DOMAIN_BAKCTRL ( 0x00000010 ) #define SV_TYPE_TIME_SOURCE ( 0x00000020 ) #define SV_TYPE_AFP ( 0x00000040 ) #define SV_TYPE_NOVELL ( 0x00000080 ) #define SV_TYPE_DOMAIN_MEMBER ( 0x00000100 ) #define SV_TYPE_PRINTQ_SERVER ( 0x00000200 ) #define SV_TYPE_DIALIN_SERVER ( 0x00000400 ) #define SV_TYPE_SERVER_UNIX ( 0x00000800 ) #define SV_TYPE_NT ( 0x00001000 ) #define SV_TYPE_WFW ( 0x00002000 ) #define SV_TYPE_SERVER_MFPN ( 0x00004000 ) #define SV_TYPE_SERVER_NT ( 0x00008000 ) #define SV_TYPE_POTENTIAL_BROWSER ( 0x00010000 ) #define SV_TYPE_BACKUP_BROWSER ( 0x00020000 ) #define SV_TYPE_MASTER_BROWSER ( 0x00040000 ) #define SV_TYPE_DOMAIN_MASTER ( 0x00080000 ) #define SV_TYPE_SERVER_OSF ( 0x00100000 ) #define SV_TYPE_SERVER_VMS ( 0x00200000 ) #define SV_TYPE_WIN95_PLUS ( 0x00400000 ) #define SV_TYPE_DFS_SERVER ( 0x00800000 ) #define SV_TYPE_ALTERNATE_XPORT ( 0x20000000 ) #define SV_TYPE_LOCAL_LIST_ONLY ( 0x40000000 ) #define SV_TYPE_DOMAIN_ENUM ( 0x80000000 ) enum SERVICE_CONTROL #ifndef USE_UINT_ENUMS { SVCCTL_CONTROL_STOP=0x00000001, SVCCTL_CONTROL_PAUSE=0x00000002, SVCCTL_CONTROL_CONTINUE=0x00000003, SVCCTL_CONTROL_INTERROGATE=0x00000004, SVCCTL_CONTROL_SHUTDOWN=0x00000005 } #else { __donnot_use_enum_SERVICE_CONTROL=0x7FFFFFFF} #define SVCCTL_CONTROL_STOP ( 0x00000001 ) #define SVCCTL_CONTROL_PAUSE ( 0x00000002 ) #define SVCCTL_CONTROL_CONTINUE ( 0x00000003 ) #define SVCCTL_CONTROL_INTERROGATE ( 0x00000004 ) #define SVCCTL_CONTROL_SHUTDOWN ( 0x00000005 ) #endif ; enum svcctl_ErrorControl #ifndef USE_UINT_ENUMS { SVCCTL_SVC_ERROR_IGNORE=0x00000000, SVCCTL_SVC_ERROR_NORMAL=0x00000001, SVCCTL_SVC_ERROR_CRITICAL=0x00000002, SVCCTL_SVC_ERROR_SEVERE=0x00000003 } #else { __donnot_use_enum_svcctl_ErrorControl=0x7FFFFFFF} #define SVCCTL_SVC_ERROR_IGNORE ( 0x00000000 ) #define SVCCTL_SVC_ERROR_NORMAL ( 0x00000001 ) #define SVCCTL_SVC_ERROR_CRITICAL ( 0x00000002 ) #define SVCCTL_SVC_ERROR_SEVERE ( 0x00000003 ) #endif ; enum svcctl_StartType #ifndef USE_UINT_ENUMS { SVCCTL_BOOT_START=0x00000000, SVCCTL_SYSTEM_START=0x00000001, SVCCTL_AUTO_START=0x00000002, SVCCTL_DEMAND_START=0x00000003, SVCCTL_DISABLED=0x00000004 } #else { __donnot_use_enum_svcctl_StartType=0x7FFFFFFF} #define SVCCTL_BOOT_START ( 0x00000000 ) #define SVCCTL_SYSTEM_START ( 0x00000001 ) #define SVCCTL_AUTO_START ( 0x00000002 ) #define SVCCTL_DEMAND_START ( 0x00000003 ) #define SVCCTL_DISABLED ( 0x00000004 ) #endif ; enum svcctl_ServiceState #ifndef USE_UINT_ENUMS { SERVICE_STATE_ACTIVE=0x00000001, SERVICE_STATE_INACTIVE=0x00000002, SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE) } #else { __donnot_use_enum_svcctl_ServiceState=0x7FFFFFFF} #define SERVICE_STATE_ACTIVE ( 0x00000001 ) #define SERVICE_STATE_INACTIVE ( 0x00000002 ) #define SERVICE_STATE_ALL ( (SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE) ) #endif ; /* bitmap svcctl_MgrAccessMask */ #define SC_RIGHT_MGR_CONNECT ( 0x0001 ) #define SC_RIGHT_MGR_CREATE_SERVICE ( 0x0002 ) #define SC_RIGHT_MGR_ENUMERATE_SERVICE ( 0x0004 ) #define SC_RIGHT_MGR_LOCK ( 0x0008 ) #define SC_RIGHT_MGR_QUERY_LOCK_STATUS ( 0x0010 ) #define SC_RIGHT_MGR_MODIFY_BOOT_CONFIG ( 0x0020 ) /* bitmap svcctl_ServiceAccessMask */ #define SC_RIGHT_SVC_QUERY_CONFIG ( 0x0001 ) #define SC_RIGHT_SVC_CHANGE_CONFIG ( 0x0002 ) #define SC_RIGHT_SVC_QUERY_STATUS ( 0x0004 ) #define SC_RIGHT_SVC_ENUMERATE_DEPENDENTS ( 0x0008 ) #define SC_RIGHT_SVC_START ( 0x0010 ) #define SC_RIGHT_SVC_STOP ( 0x0020 ) #define SC_RIGHT_SVC_PAUSE_CONTINUE ( 0x0040 ) #define SC_RIGHT_SVC_INTERROGATE ( 0x0080 ) #define SC_RIGHT_SVC_USER_DEFINED_CONTROL ( 0x0100 ) struct QUERY_SERVICE_CONFIG { uint32_t service_type; enum svcctl_StartType start_type; enum svcctl_ErrorControl error_control; const char *executablepath;/* [unique,range(0,8192),charset(UTF16)] */ const char *loadordergroup;/* [unique,range(0,8192),charset(UTF16)] */ uint32_t tag_id; const char *dependencies;/* [unique,range(0,8192),charset(UTF16)] */ const char *startname;/* [unique,range(0,8192),charset(UTF16)] */ const char *displayname;/* [unique,range(0,8192),charset(UTF16)] */ }/* [gensize,public] */; struct svcctl_ArgumentString { const char *string;/* [unique,range(0,SC_MAX_ARGUMENT_LENGTH),charset(UTF16)] */ }; enum svcctl_ConfigLevel #ifndef USE_UINT_ENUMS { SERVICE_CONFIG_DESCRIPTION=0x00000001, SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002 } #else { __donnot_use_enum_svcctl_ConfigLevel=0x7FFFFFFF} #define SERVICE_CONFIG_DESCRIPTION ( 0x00000001 ) #define SERVICE_CONFIG_FAILURE_ACTIONS ( 0x00000002 ) #endif ; struct SERVICE_DESCRIPTION { const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ }/* [gensize,public] */; enum SC_ACTION_TYPE #ifndef USE_UINT_ENUMS { SC_ACTION_NONE=0, SC_ACTION_RESTART=1, SC_ACTION_REBOOT=2, SC_ACTION_RUN_COMMAND=3 } #else { __donnot_use_enum_SC_ACTION_TYPE=0x7FFFFFFF} #define SC_ACTION_NONE ( 0 ) #define SC_ACTION_RESTART ( 1 ) #define SC_ACTION_REBOOT ( 2 ) #define SC_ACTION_RUN_COMMAND ( 3 ) #endif ; struct SC_ACTION { enum SC_ACTION_TYPE type; uint32_t delay; }; struct SERVICE_FAILURE_ACTIONS { uint32_t reset_period; const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */ uint32_t num_actions;/* [range(0,1024)] */ struct SC_ACTION *actions;/* [relative,size_is(num_actions)] */ }/* [gensize,public] */; enum svcctl_StatusLevel #ifndef USE_UINT_ENUMS { SVC_STATUS_PROCESS_INFO=0x00000000 } #else { __donnot_use_enum_svcctl_StatusLevel=0x7FFFFFFF} #define SVC_STATUS_PROCESS_INFO ( 0x00000000 ) #endif ; struct svcctl_CloseServiceHandle { struct { struct policy_handle *handle;/* [ref] */ } in; struct { struct policy_handle *handle;/* [ref] */ WERROR result; } out; }; struct svcctl_ControlService { struct { struct policy_handle *handle;/* [ref] */ enum SERVICE_CONTROL control; } in; struct { struct SERVICE_STATUS *service_status;/* [ref] */ WERROR result; } out; }; struct svcctl_DeleteService { struct { struct policy_handle *handle;/* [ref] */ } in; struct { WERROR result; } out; }; struct svcctl_LockServiceDatabase { struct { struct policy_handle *handle;/* [ref] */ } in; struct { struct policy_handle *lock;/* [ref] */ WERROR result; } out; }; struct svcctl_QueryServiceObjectSecurity { struct { struct policy_handle *handle;/* [ref] */ uint32_t security_flags; uint32_t offered;/* [range(0,0x40000)] */ } in; struct { uint8_t *buffer;/* [ref,size_is(offered)] */ uint32_t *needed;/* [ref,range(0,0x40000)] */ WERROR result; } out; }; struct svcctl_SetServiceObjectSecurity { struct { struct policy_handle *handle;/* [ref] */ uint32_t security_flags; uint8_t *buffer;/* [ref,size_is(offered)] */ uint32_t offered; } in; struct { WERROR result; } out; }; struct svcctl_QueryServiceStatus { struct { struct policy_handle *handle;/* [ref] */ } in; struct { struct SERVICE_STATUS *service_status;/* [ref] */ WERROR result; } out; }; struct svcctl_SetServiceStatus { struct { WERROR result; } out; }; struct svcctl_UnlockServiceDatabase { struct { struct policy_handle *lock;/* [ref] */ } in; struct { struct policy_handle *lock;/* [ref] */ WERROR result; } out; }; struct svcctl_NotifyBootConfigStatus { struct { WERROR result; } out; }; struct svcctl_SCSetServiceBitsW { struct { struct policy_handle *handle;/* [ref] */ uint32_t bits; uint32_t bitson; uint32_t immediate; } in; struct { WERROR result; } out; }; struct svcctl_ChangeServiceConfigW { struct { struct policy_handle *handle;/* [ref] */ uint32_t type; enum svcctl_StartType start_type; enum svcctl_ErrorControl error_control; const char *binary_path;/* [unique,charset(UTF16)] */ const char *load_order_group;/* [unique,charset(UTF16)] */ const char *dependencies;/* [unique,charset(UTF16)] */ const char *service_start_name;/* [unique,charset(UTF16)] */ const char *password;/* [unique,charset(UTF16)] */ const char *display_name;/* [unique,charset(UTF16)] */ } in; struct { uint32_t *tag_id;/* [ref] */ WERROR result; } out; }; struct svcctl_CreateServiceW { struct { struct policy_handle *scmanager_handle;/* [ref] */ const char *ServiceName;/* [charset(UTF16)] */ const char *DisplayName;/* [unique,charset(UTF16)] */ uint32_t desired_access; uint32_t type; enum svcctl_StartType start_type; enum svcctl_ErrorControl error_control; const char *binary_path;/* [charset(UTF16)] */ const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */ uint8_t *dependencies;/* [unique,size_is(dependencies_size)] */ uint32_t dependencies_size; const char *service_start_name;/* [unique,charset(UTF16)] */ uint8_t *password;/* [unique,size_is(password_size)] */ uint32_t password_size; uint32_t *TagId;/* [unique] */ } in; struct { struct policy_handle *handle;/* [ref] */ uint32_t *TagId;/* [unique] */ WERROR result; } out; }; struct svcctl_EnumDependentServicesW { struct { struct policy_handle *service;/* [ref] */ enum svcctl_ServiceState state; uint32_t offered;/* [range(0,0x40000)] */ } in; struct { uint8_t *service_status;/* [ref,size_is(offered)] */ uint32_t *needed;/* [ref,range(0,0x40000)] */ uint32_t *services_returned;/* [ref,range(0,0x40000)] */ WERROR result; } out; }; struct svcctl_EnumServicesStatusW { struct { struct policy_handle *handle;/* [ref] */ uint32_t type; enum svcctl_ServiceState state; uint32_t offered;/* [range(0,0x40000)] */ uint32_t *resume_handle;/* [unique] */ } in; struct { uint8_t *service;/* [ref,size_is(offered)] */ uint32_t *needed;/* [ref,range(0,0x40000)] */ uint32_t *services_returned;/* [ref,range(0,0x40000)] */ uint32_t *resume_handle;/* [unique] */ WERROR result; } out; }; struct svcctl_OpenSCManagerW { struct { const char *MachineName;/* [unique,charset(UTF16)] */ const char *DatabaseName;/* [unique,charset(UTF16)] */ uint32_t access_mask; } in; struct { struct policy_handle *handle;/* [ref] */ WERROR result; } out; }; struct svcctl_OpenServiceW { struct { struct policy_handle *scmanager_handle;/* [ref] */ const char *ServiceName;/* [charset(UTF16)] */ uint32_t access_mask; } in; struct { struct policy_handle *handle;/* [ref] */ WERROR result; } out; }; struct svcctl_QueryServiceConfigW { struct { struct policy_handle *handle;/* [ref] */ uint32_t offered;/* [range(0,8192)] */ } in; struct { struct QUERY_SERVICE_CONFIG *query;/* [ref] */ uint32_t *needed;/* [ref,range(0,8192)] */ WERROR result; } out; }; struct svcctl_QueryServiceLockStatusW { struct { struct policy_handle *handle;/* [ref] */ uint32_t offered; } in; struct { struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */ uint32_t *needed;/* [ref] */ WERROR result; } out; }; struct svcctl_StartServiceW { struct { struct policy_handle *handle;/* [ref] */ uint32_t NumArgs;/* [range(0,SC_MAX_ARGUMENTS)] */ struct svcctl_ArgumentString *Arguments;/* [unique,size_is(NumArgs)] */ } in; struct { WERROR result; } out; }; struct svcctl_GetServiceDisplayNameW { struct { struct policy_handle *handle;/* [ref] */ const char *service_name;/* [unique,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ } in; struct { const char **display_name;/* [ref,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ WERROR result; } out; }; struct svcctl_GetServiceKeyNameW { struct { struct policy_handle *handle;/* [ref] */ const char *service_name;/* [unique,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ } in; struct { const char **key_name;/* [ref,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ WERROR result; } out; }; struct svcctl_SCSetServiceBitsA { struct { struct policy_handle *handle;/* [ref] */ uint32_t bits; uint32_t bitson; uint32_t immediate; } in; struct { WERROR result; } out; }; struct svcctl_ChangeServiceConfigA { struct { struct policy_handle *handle;/* [ref] */ uint32_t type; enum svcctl_StartType start_type; enum svcctl_ErrorControl error_control; const char *binary_path;/* [unique,charset(UTF16)] */ const char *load_order_group;/* [unique,charset(UTF16)] */ const char *dependencies;/* [unique,charset(UTF16)] */ const char *service_start_name;/* [unique,charset(UTF16)] */ const char *password;/* [unique,charset(UTF16)] */ const char *display_name;/* [unique,charset(UTF16)] */ } in; struct { uint32_t *tag_id;/* [ref] */ WERROR result; } out; }; struct svcctl_CreateServiceA { struct { struct policy_handle *handle;/* [ref] */ const char *ServiceName;/* [unique,charset(UTF16)] */ const char *DisplayName;/* [unique,charset(UTF16)] */ uint32_t desired_access; uint32_t type; enum svcctl_StartType start_type; enum svcctl_ErrorControl error_control; const char *binary_path;/* [unique,charset(UTF16)] */ const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */ const char *dependencies;/* [unique,charset(UTF16)] */ const char *service_start_name;/* [unique,charset(UTF16)] */ const char *password;/* [unique,charset(UTF16)] */ } in; struct { uint32_t *TagId;/* [unique] */ WERROR result; } out; }; struct svcctl_EnumDependentServicesA { struct { struct policy_handle *service;/* [ref] */ enum svcctl_ServiceState state; uint32_t offered; } in; struct { struct ENUM_SERVICE_STATUSA *service_status;/* [unique] */ uint32_t *needed;/* [ref] */ uint32_t *services_returned;/* [ref] */ WERROR result; } out; }; struct svcctl_EnumServicesStatusA { struct { struct policy_handle *handle;/* [ref] */ uint32_t type; enum svcctl_ServiceState state; uint32_t offered; uint32_t *resume_handle;/* [unique] */ } in; struct { uint8_t *service;/* [size_is(offered)] */ uint32_t *needed;/* [ref] */ uint32_t *services_returned;/* [ref] */ uint32_t *resume_handle;/* [unique] */ WERROR result; } out; }; struct svcctl_OpenSCManagerA { struct { const char *MachineName;/* [unique,charset(UTF16)] */ const char *DatabaseName;/* [unique,charset(UTF16)] */ uint32_t access_mask; } in; struct { struct policy_handle *handle;/* [ref] */ WERROR result; } out; }; struct svcctl_OpenServiceA { struct { struct policy_handle *scmanager_handle;/* [ref] */ const char *ServiceName;/* [unique,charset(UTF16)] */ uint32_t access_mask; } in; struct { WERROR result; } out; }; struct svcctl_QueryServiceConfigA { struct { struct policy_handle *handle;/* [ref] */ uint32_t offered; } in; struct { uint8_t *query; uint32_t *needed;/* [ref] */ WERROR result; } out; }; struct svcctl_QueryServiceLockStatusA { struct { struct policy_handle *handle;/* [ref] */ uint32_t offered; } in; struct { struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */ uint32_t *needed;/* [ref] */ WERROR result; } out; }; struct svcctl_StartServiceA { struct { struct policy_handle *handle;/* [ref] */ uint32_t NumArgs; const char *Arguments;/* [unique,charset(UTF16)] */ } in; struct { WERROR result; } out; }; struct svcctl_GetServiceDisplayNameA { struct { struct policy_handle *handle;/* [ref] */ const char *service_name;/* [unique,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ } in; struct { const char **display_name;/* [ref,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ WERROR result; } out; }; struct svcctl_GetServiceKeyNameA { struct { struct policy_handle *handle;/* [ref] */ const char *service_name;/* [unique,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ } in; struct { const char **key_name;/* [ref,charset(UTF16)] */ uint32_t *display_name_length;/* [unique] */ WERROR result; } out; }; struct svcctl_GetCurrentGroupeStateW { struct { WERROR result; } out; }; struct svcctl_EnumServiceGroupW { struct { WERROR result; } out; }; struct svcctl_ChangeServiceConfig2A { struct { struct policy_handle *handle;/* [ref] */ uint32_t info_level; uint8_t *info;/* [unique] */ } in; struct { WERROR result; } out; }; struct svcctl_ChangeServiceConfig2W { struct { struct policy_handle *handle;/* [ref] */ uint32_t info_level; uint8_t *info;/* [unique] */ } in; struct { WERROR result; } out; }; struct svcctl_QueryServiceConfig2A { struct { struct policy_handle *handle;/* [ref] */ enum svcctl_ConfigLevel info_level; uint32_t offered; } in; struct { uint8_t *buffer; uint32_t *needed;/* [ref] */ WERROR result; } out; }; struct svcctl_QueryServiceConfig2W { struct { struct policy_handle *handle;/* [ref] */ enum svcctl_ConfigLevel info_level; uint32_t offered;/* [range(0,8192)] */ } in; struct { uint8_t *buffer;/* [ref,size_is(offered)] */ uint32_t *needed;/* [ref,range(0,8192)] */ WERROR result; } out; }; struct svcctl_QueryServiceStatusEx { struct { struct policy_handle *handle;/* [ref] */ enum svcctl_StatusLevel info_level; uint32_t offered;/* [range(0,8192)] */ } in; struct { uint8_t *buffer;/* [ref,size_is(offered)] */ uint32_t *needed;/* [ref,range(0,8192)] */ WERROR result; } out; }; struct EnumServicesStatusExA { struct { struct policy_handle *scmanager;/* [ref] */ uint32_t info_level; uint32_t type; enum svcctl_ServiceState state; uint32_t offered; uint32_t *resume_handle;/* [unique] */ } in; struct { uint8_t *services; uint32_t *needed;/* [ref] */ uint32_t *service_returned;/* [ref] */ const char **group_name;/* [ref,charset(UTF16)] */ uint32_t *resume_handle;/* [unique] */ WERROR result; } out; }; struct EnumServicesStatusExW { struct { struct policy_handle *scmanager;/* [ref] */ uint32_t info_level; uint32_t type; enum svcctl_ServiceState state; uint32_t offered;/* [range(0,0x40000)] */ const char *group_name;/* [unique,charset(UTF16)] */ uint32_t *resume_handle;/* [unique,range(0,0x40000)] */ } in; struct { uint8_t *services;/* [ref,size_is(offered)] */ uint32_t *needed;/* [ref,range(0,0x40000)] */ uint32_t *service_returned;/* [ref,range(0,0x40000)] */ uint32_t *resume_handle;/* [unique,range(0,0x40000)] */ WERROR result; } out; }; struct svcctl_SCSendTSMessage { struct { WERROR result; } out; }; #endif /* _HEADER_svcctl */