4 svcctl interface definitions
7 [ uuid(367abb81-9844-35f1-ad32-98f038001003),
9 pointer_default(unique)
16 } SERVICE_LOCK_STATUS;
21 uint32 controls_accepted;
22 uint32 win32_exit_code;
23 uint32 service_exit_code;
31 SERVICE_STATUS status;
32 } ENUM_SERVICE_STATUS;
35 SERVICE_TYPE_KERNEL_DRIVER=0x01,
36 SERVICE_TYPE_FS_DRIVER=0x02,
37 SERVICE_TYPE_ADAPTER=0x04,
38 SERVICE_TYPE_RECOGNIZER_DRIVER=0x08,
39 SERVICE_TYPE_DRIVER=SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER,
40 SERVICE_TYPE_WIN32_OWN_PROCESS=0x10,
41 SERVICE_TYPE_WIN32_SHARE_PROCESS=0x20,
42 SERVICE_TYPE_WIN32=SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS
46 SERVICE_STATE_ACTIVE=0x01,
47 SERVICE_STATE_INACTIVE=0x02,
48 SERVICE_STATE_ALL=0x03
53 uint32 svcctl_CloseServiceHandle(
54 [in,out,ref] policy_handle *handle
60 WERROR svcctl_ControlService();
64 WERROR svcctl_DeleteService();
69 WERROR svcctl_LockServiceDatabase(
70 [in,ref] policy_handle *handle,
71 [out] policy_handle lock
76 WERROR svcctl_QueryServiceObjectSecurity();
80 WERROR svcctl_SetServiceObjectSecurity();
84 WERROR svcctl_QueryServiceStatus(
85 [in,ref] policy_handle *handle,
86 [out,ref] SERVICE_STATUS *status);
90 WERROR svcctl_SetServiceStatus();
94 WERROR svcctl_UnlockServiceDatabase(
95 [in,out,ref] policy_handle *lock
100 WERROR svcctl_NotifyBootConfigStatus();
104 WERROR svcctl_SCSetServiceBits();
108 WERROR svcctl_ChangeServiceConfig();
112 WERROR svcctl_CreateService();
116 WERROR svcctl_EnumDependentServices();
120 WERROR svcctl_EnumServicesStatus(
121 [in,ref] policy_handle *handle,
124 [in] uint32 buf_size,
125 [out,size_is(buf_size)] uint8 service[*],
126 [out] uint32 bytes_needed,
127 [out] uint32 services_returned,
128 [in,out] uint32 *resume_handle
132 WERROR svcctl_OpenSCManager(
133 [in] unistr *MachineName,
134 [in] unistr *DatabaseName,
135 [in] uint32 access_mask,
136 [out,ref] policy_handle *handle);
140 WERROR svcctl_OpenService();
144 WERROR svcctl_QueryServiceConfig();
148 WERROR svcctl_QueryServiceLockStatus(
149 [in,ref] policy_handle *handle,
150 [in] uint32 buf_size,
151 [out,ref] SERVICE_LOCK_STATUS *status,
152 [out,ref] uint32 *required_buf_size
157 WERROR svcctl_StartService(
158 [in,ref] policy_handle *handle,
160 [in,length_of(NumArgs)] unistr *Arguments);