2006-09-20 16:32:29 +00:00
/* header auto-generated by pidl */
2007-02-16 14:50:57 +00:00
# include <stdint.h>
2008-09-17 15:07:24 +02:00
# include "librpc/gen_ndr/misc.h"
2008-10-23 19:26:44 +02:00
# include "librpc/gen_ndr/security.h"
2006-09-20 16:32:29 +00:00
# ifndef _HEADER_svcctl
# define _HEADER_svcctl
# 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 )
2009-01-09 14:30:56 +01:00
# define SERVICE_TYPE_INTERACTIVE_PROCESS ( 0x100 )
2006-09-20 16:32:29 +00:00
# define SV_TYPE_ALL ( 0xFFFFFFFF )
2008-10-23 19:26:44 +02:00
# define SC_MANAGER_READ_ACCESS ( (SEC_STD_READ_CONTROL|SC_RIGHT_MGR_CONNECT|SC_RIGHT_MGR_ENUMERATE_SERVICE|SC_RIGHT_MGR_QUERY_LOCK_STATUS) )
2008-10-23 18:34:28 +02:00
# define SC_MANAGER_EXECUTE_ACCESS ( SC_MANAGER_READ_ACCESS )
2008-10-23 19:26:44 +02:00
# 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) )
2008-10-23 18:34:28 +02:00
# define SC_MANAGER_ALL_ACCESS ( SC_MANAGER_WRITE_ACCESS )
2008-10-23 19:26:44 +02:00
# 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) )
2008-10-23 18:34:28 +02:00
# define SERVICE_EXECUTE_ACCESS ( (SERVICE_READ_ACCESS|SC_RIGHT_SVC_START|SC_RIGHT_SVC_STOP|SC_RIGHT_SVC_PAUSE_CONTINUE) )
2008-10-23 19:26:44 +02:00
# define SERVICE_WRITE_ACCESS ( (SEC_STD_REQUIRED|SERVICE_READ_ACCESS|SERVICE_EXECUTE_ACCESS|SC_RIGHT_SVC_CHANGE_CONFIG) )
2008-10-23 18:34:28 +02:00
# define SERVICE_ALL_ACCESS ( SERVICE_WRITE_ACCESS )
2006-09-20 16:32:29 +00:00
struct SERVICE_LOCK_STATUS {
uint32_t is_locked ;
const char * lock_owner ; /* [unique,charset(UTF16)] */
uint32_t lock_duration ;
} ;
2009-01-08 13:08:18 +01:00
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_NONE ( 0x00000000 )
# 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 )
2006-09-20 16:32:29 +00:00
struct SERVICE_STATUS {
uint32_t type ;
2009-01-08 13:08:18 +01:00
enum svcctl_ServiceStatus state ;
2006-09-20 16:32:29 +00:00
uint32_t controls_accepted ;
2007-07-10 08:56:13 +00:00
WERROR win32_exit_code ;
2006-09-20 16:32:29 +00:00
uint32_t service_exit_code ;
uint32_t check_point ;
uint32_t wait_hint ;
} ;
2009-01-06 18:19:29 +01:00
struct SERVICE_STATUS_PROCESS {
struct SERVICE_STATUS status ;
uint32_t process_id ;
uint32_t service_flags ;
} /* [public] */ ;
2009-01-08 15:45:09 +01:00
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 {
2006-09-20 16:32:29 +00:00
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 ;
2009-01-08 15:45:09 +01:00
} /* [gensize,public] */ ;
2006-09-20 16:32:29 +00:00
/* 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 )
2008-01-13 01:22:23 +01:00
enum SERVICE_CONTROL
2007-02-06 23:02:27 +00:00
# ifndef USE_UINT_ENUMS
2008-01-13 01:22:23 +01:00
{
2008-11-14 11:54:16 +01:00
SVCCTL_CONTROL_STOP = 0x00000001 ,
SVCCTL_CONTROL_PAUSE = 0x00000002 ,
SVCCTL_CONTROL_CONTINUE = 0x00000003 ,
SVCCTL_CONTROL_INTERROGATE = 0x00000004 ,
SVCCTL_CONTROL_SHUTDOWN = 0x00000005
2007-02-27 17:17:16 +00:00
}
2007-02-06 23:02:27 +00:00
# else
2008-01-13 01:22:23 +01:00
{ __donnot_use_enum_SERVICE_CONTROL = 0x7FFFFFFF }
2008-11-14 11:54:16 +01:00
# 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 )
2007-02-06 23:02:27 +00:00
# endif
2007-02-27 17:17:16 +00:00
;
2006-09-20 16:32:29 +00:00
2009-01-06 18:19:29 +01:00
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
{
2009-01-08 15:45:09 +01:00
SERVICE_STATE_ACTIVE = 0x00000001 ,
SERVICE_STATE_INACTIVE = 0x00000002 ,
SERVICE_STATE_ALL = ( SERVICE_STATE_ACTIVE | SERVICE_STATE_INACTIVE )
2009-01-06 18:19:29 +01:00
}
# else
{ __donnot_use_enum_svcctl_ServiceState = 0x7FFFFFFF }
2009-01-08 15:45:09 +01:00
# define SERVICE_STATE_ACTIVE ( 0x00000001 )
# define SERVICE_STATE_INACTIVE ( 0x00000002 )
# define SERVICE_STATE_ALL ( (SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE) )
2009-01-06 18:19:29 +01:00
# endif
;
2008-03-26 11:36:41 +01:00
/* 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 )
2008-10-16 01:22:21 +02:00
struct QUERY_SERVICE_CONFIG {
uint32_t service_type ;
2009-01-06 18:19:29 +01:00
enum svcctl_StartType start_type ;
enum svcctl_ErrorControl error_control ;
2008-10-16 01:22:21 +02:00
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] */ ;
2008-11-14 12:03:18 +01:00
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
;
2009-01-06 18:19:29 +01:00
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] */ ;
2008-11-14 11:58:12 +01:00
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
;
2006-09-20 16:32:29 +00:00
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] */
2008-11-14 11:54:16 +01:00
enum SERVICE_CONTROL control ;
2006-09-20 16:32:29 +00:00
} in ;
struct {
2007-05-31 15:46:01 +00:00
struct SERVICE_STATUS * service_status ; /* [ref] */
2006-09-20 16:32:29 +00:00
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 {
2008-02-28 00:03:00 +01:00
struct policy_handle * handle ; /* [ref] */
uint32_t security_flags ;
uint32_t buffer_size ; /* [range(0,0x40000)] */
} in ;
struct {
uint8_t * buffer ; /* [ref,size_is(buffer_size)] */
uint32_t * needed ; /* [ref,range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct svcctl_SetServiceObjectSecurity {
2008-02-28 00:18:37 +01:00
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t security_flags ;
uint8_t * buffer ; /* [ref,size_is(buffer_size)] */
uint32_t buffer_size ;
} in ;
2006-09-20 16:32:29 +00:00
struct {
WERROR result ;
} out ;
} ;
struct svcctl_QueryServiceStatus {
struct {
struct policy_handle * handle ; /* [ref] */
} in ;
struct {
2007-05-31 15:46:01 +00:00
struct SERVICE_STATUS * service_status ; /* [ref] */
2006-09-20 16:32:29 +00:00
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 ;
2009-01-06 18:19:29 +01:00
enum svcctl_StartType start_type ;
enum svcctl_ErrorControl error_control ;
2006-09-20 16:32:29 +00:00
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 ;
2009-01-06 18:19:29 +01:00
enum svcctl_StartType start_type ;
enum svcctl_ErrorControl error_control ;
2006-09-20 16:32:29 +00:00
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 ;
2007-02-16 14:50:57 +00:00
uint32_t * TagId ; /* [unique] */
2006-09-20 16:32:29 +00:00
} in ;
struct {
struct policy_handle * handle ; /* [ref] */
2007-02-16 14:50:57 +00:00
uint32_t * TagId ; /* [unique] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct svcctl_EnumDependentServicesW {
struct {
struct policy_handle * service ; /* [ref] */
uint32_t state ;
2008-03-20 01:35:58 +01:00
uint32_t buf_size ; /* [range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
} in ;
struct {
2008-03-20 01:35:58 +01:00
uint8_t * service_status ; /* [ref,size_is(buf_size)] */
uint32_t * bytes_needed ; /* [ref,range(0,0x40000)] */
uint32_t * services_returned ; /* [ref,range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct svcctl_EnumServicesStatusW {
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t type ;
2009-01-06 18:19:29 +01:00
enum svcctl_ServiceState state ;
2009-01-08 15:45:09 +01:00
uint32_t buf_size ; /* [range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
uint32_t * resume_handle ; /* [unique] */
} in ;
struct {
2008-11-14 11:54:46 +01:00
uint8_t * service ; /* [ref,size_is(buf_size)] */
2009-01-08 15:45:09 +01:00
uint32_t * bytes_needed ; /* [ref,range(0,0x40000)] */
uint32_t * services_returned ; /* [ref,range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
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] */
2008-10-16 01:22:21 +02:00
uint32_t buf_size ; /* [range(0,8192)] */
2006-09-20 16:32:29 +00:00
} in ;
struct {
2008-10-16 01:22:21 +02:00
struct QUERY_SERVICE_CONFIG * query ; /* [ref] */
uint32_t * bytes_needed ; /* [ref,range(0,8192)] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct svcctl_QueryServiceLockStatusW {
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t buf_size ;
} in ;
struct {
2007-05-31 15:46:01 +00:00
struct SERVICE_LOCK_STATUS * lock_status ; /* [ref] */
2006-09-20 16:32:29 +00:00
uint32_t * required_buf_size ; /* [ref] */
WERROR result ;
} out ;
} ;
struct svcctl_StartServiceW {
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t NumArgs ;
2007-08-15 10:30:44 +00:00
const char * Arguments ; /* [unique,charset(UTF16)] */
2006-09-20 16:32:29 +00:00
} 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 ;
2009-01-06 18:19:29 +01:00
enum svcctl_StartType start_type ;
enum svcctl_ErrorControl error_control ;
2006-09-20 16:32:29 +00:00
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 ;
2009-01-06 18:19:29 +01:00
enum svcctl_StartType start_type ;
enum svcctl_ErrorControl error_control ;
2006-09-20 16:32:29 +00:00
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] */
uint32_t state ;
uint32_t buf_size ;
} in ;
struct {
2009-01-08 15:45:09 +01:00
struct ENUM_SERVICE_STATUSA * service_status ; /* [unique] */
2006-09-20 16:32:29 +00:00
uint32_t * bytes_needed ; /* [ref] */
uint32_t * services_returned ; /* [ref] */
WERROR result ;
} out ;
} ;
struct svcctl_EnumServicesStatusA {
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t type ;
2009-01-08 15:45:09 +01:00
enum svcctl_ServiceState state ;
2006-09-20 16:32:29 +00:00
uint32_t buf_size ;
uint32_t * resume_handle ; /* [unique] */
} in ;
struct {
uint8_t * service ; /* [size_is(buf_size)] */
uint32_t * bytes_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 buf_size ;
} in ;
struct {
uint8_t * query ;
uint32_t * bytes_needed ; /* [ref] */
WERROR result ;
} out ;
} ;
struct svcctl_QueryServiceLockStatusA {
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t buf_size ;
} in ;
struct {
2007-05-31 15:46:01 +00:00
struct SERVICE_LOCK_STATUS * lock_status ; /* [ref] */
2006-09-20 16:32:29 +00:00
uint32_t * required_buf_size ; /* [ref] */
WERROR result ;
} out ;
} ;
struct svcctl_StartServiceA {
struct {
struct policy_handle * handle ; /* [ref] */
uint32_t NumArgs ;
2007-08-15 10:30:44 +00:00
const char * Arguments ; /* [unique,charset(UTF16)] */
2006-09-20 16:32:29 +00:00
} 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] */
2008-11-14 12:03:18 +01:00
enum svcctl_ConfigLevel info_level ;
2006-09-20 16:32:29 +00:00
uint32_t buf_size ;
} in ;
struct {
uint8_t * buffer ;
uint32_t * bytes_needed ; /* [ref] */
WERROR result ;
} out ;
} ;
struct svcctl_QueryServiceConfig2W {
struct {
struct policy_handle * handle ; /* [ref] */
2008-11-14 12:03:18 +01:00
enum svcctl_ConfigLevel info_level ;
2008-11-14 11:54:46 +01:00
uint32_t buf_size ; /* [range(0,8192)] */
2006-09-20 16:32:29 +00:00
} in ;
struct {
2008-11-14 11:54:46 +01:00
uint8_t * buffer ; /* [ref,size_is(buf_size)] */
uint32_t * bytes_needed ; /* [ref,range(0,8192)] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct svcctl_QueryServiceStatusEx {
struct {
struct policy_handle * handle ; /* [ref] */
2008-11-14 11:58:12 +01:00
enum svcctl_StatusLevel info_level ;
2008-11-14 11:54:46 +01:00
uint32_t buf_size ; /* [range(0,8192)] */
2006-09-20 16:32:29 +00:00
} in ;
struct {
2008-11-14 11:54:46 +01:00
uint8_t * buffer ; /* [ref,size_is(buf_size)] */
uint32_t * bytes_needed ; /* [ref,range(0,8192)] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct EnumServicesStatusExA {
struct {
struct policy_handle * scmanager ; /* [ref] */
uint32_t info_level ;
uint32_t type ;
2009-01-08 15:45:09 +01:00
enum svcctl_ServiceState state ;
2006-09-20 16:32:29 +00:00
uint32_t buf_size ;
uint32_t * resume_handle ; /* [unique] */
} in ;
struct {
uint8_t * services ;
uint32_t * bytes_needed ; /* [ref] */
uint32_t * service_returned ; /* [ref] */
const char * * group_name ; /* [ref,charset(UTF16)] */
2007-02-16 14:50:57 +00:00
uint32_t * resume_handle ; /* [unique] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct EnumServicesStatusExW {
struct {
struct policy_handle * scmanager ; /* [ref] */
uint32_t info_level ;
uint32_t type ;
2009-01-08 15:45:09 +01:00
enum svcctl_ServiceState state ;
uint32_t buf_size ; /* [range(0,0x40000)] */
2008-11-14 11:54:46 +01:00
const char * group_name ; /* [unique,charset(UTF16)] */
2009-01-08 15:45:09 +01:00
uint32_t * resume_handle ; /* [unique,range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
} in ;
struct {
2008-11-14 11:54:46 +01:00
uint8_t * services ; /* [ref,size_is(buf_size)] */
2009-01-08 15:45:09 +01:00
uint32_t * bytes_needed ; /* [ref,range(0,0x40000)] */
uint32_t * service_returned ; /* [ref,range(0,0x40000)] */
uint32_t * resume_handle ; /* [unique,range(0,0x40000)] */
2006-09-20 16:32:29 +00:00
WERROR result ;
} out ;
} ;
struct svcctl_SCSendTSMessage {
struct {
WERROR result ;
} out ;
} ;
# endif /* _HEADER_svcctl */