source: branches/samba-3.2.x/source/librpc/idl/svcctl.idl

Last change on this file was 133, checked in by Paul Smedley, 17 years ago

Update trunk to 3.2.0pre3

File size: 13.6 KB
Line 
1#include "idl_types.h"
2
3/*
4 svcctl interface definitions
5*/
6
7[ uuid("367abb81-9844-35f1-ad32-98f038001003"),
8 version(2.0),
9 pointer_default(unique),
10 endpoint("ncacn_np:[\\pipe\\svcctl]", "ncalrpc:"),
11 helpstring("Service Control")
12] interface svcctl
13{
14 typedef struct {
15 uint32 is_locked;
16 [string,charset(UTF16)] uint16 *lock_owner;
17 uint32 lock_duration;
18 } SERVICE_LOCK_STATUS;
19
20 typedef struct {
21 uint32 type;
22 uint32 state;
23 uint32 controls_accepted;
24 WERROR win32_exit_code;
25 uint32 service_exit_code;
26 uint32 check_point;
27 uint32 wait_hint;
28 } SERVICE_STATUS;
29
30 typedef struct {
31 [relative] astring *service_name;
32 [relative] astring *display_name;
33 SERVICE_STATUS status;
34 } ENUM_SERVICE_STATUS;
35
36 const int SERVICE_TYPE_KERNEL_DRIVER = 0x01;
37 const int SERVICE_TYPE_FS_DRIVER = 0x02;
38 const int SERVICE_TYPE_ADAPTER = 0x04;
39 const int SERVICE_TYPE_RECOGNIZER_DRIVER = 0x08;
40 const int SERVICE_TYPE_DRIVER=SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER;
41 const int SERVICE_TYPE_WIN32_OWN_PROCESS = 0x10;
42 const int SERVICE_TYPE_WIN32_SHARE_PROCESS = 0x20;
43 const int SERVICE_TYPE_WIN32=SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS;
44
45 const int SERVICE_STATE_ACTIVE = 0x01;
46 const int SERVICE_STATE_INACTIVE = 0x02;
47 const int SERVICE_STATE_ALL = 0x03;
48
49 typedef [public,bitmap32bit] bitmap {
50 SV_TYPE_WORKSTATION = 0x00000001,
51 SV_TYPE_SERVER = 0x00000002,
52 SV_TYPE_SQLSERVER = 0x00000004,
53 SV_TYPE_DOMAIN_CTRL = 0x00000008,
54 SV_TYPE_DOMAIN_BAKCTRL = 0x00000010,
55 SV_TYPE_TIME_SOURCE = 0x00000020,
56 SV_TYPE_AFP = 0x00000040,
57 SV_TYPE_NOVELL = 0x00000080,
58
59 SV_TYPE_DOMAIN_MEMBER = 0x00000100,
60 SV_TYPE_PRINTQ_SERVER = 0x00000200,
61 SV_TYPE_DIALIN_SERVER = 0x00000400,
62 SV_TYPE_SERVER_UNIX = 0x00000800,
63 SV_TYPE_NT = 0x00001000,
64 SV_TYPE_WFW = 0x00002000,
65 SV_TYPE_SERVER_MFPN = 0x00004000,
66 SV_TYPE_SERVER_NT = 0x00008000,
67 SV_TYPE_POTENTIAL_BROWSER = 0x00010000,
68 SV_TYPE_BACKUP_BROWSER = 0x00020000,
69 SV_TYPE_MASTER_BROWSER = 0x00040000,
70 SV_TYPE_DOMAIN_MASTER = 0x00080000,
71 SV_TYPE_SERVER_OSF = 0x00100000,
72 SV_TYPE_SERVER_VMS = 0x00200000,
73 SV_TYPE_WIN95_PLUS = 0x00400000,
74 SV_TYPE_DFS_SERVER = 0x00800000,
75 SV_TYPE_ALTERNATE_XPORT = 0x20000000,
76 SV_TYPE_LOCAL_LIST_ONLY = 0x40000000,
77 SV_TYPE_DOMAIN_ENUM = 0x80000000
78 } svcctl_ServerType;
79
80 const uint32 SV_TYPE_ALL = 0xFFFFFFFF;
81
82 /*****************/
83 /* Function 0x00 */
84 WERROR svcctl_CloseServiceHandle(
85 [in,out,ref] policy_handle *handle
86 );
87
88 /*****************/
89 /* Function 0x01 */
90
91 typedef enum {
92 FIXME=1
93 } SERVICE_CONTROL;
94
95 WERROR svcctl_ControlService(
96 [in,ref] policy_handle *handle,
97 [in] uint32 control,
98 [out,ref] SERVICE_STATUS *service_status
99 );
100
101 /*****************/
102 /* Function 0x02 */
103 WERROR svcctl_DeleteService(
104 [in,ref] policy_handle *handle
105 );
106
107 /*****************/
108 /* Function 0x03 */
109
110 WERROR svcctl_LockServiceDatabase(
111 [in,ref] policy_handle *handle,
112 [out,ref] policy_handle *lock
113 );
114
115 /*****************/
116 /* Function 0x04 */
117 WERROR svcctl_QueryServiceObjectSecurity(
118 [in] policy_handle *handle,
119 [in] uint32 security_flags,
120 [out,ref,size_is(buffer_size)] uint8 *buffer,
121 [in,range(0,0x40000)] uint32 buffer_size,
122 [out,ref,range(0,0x40000)] uint32 *needed
123 );
124
125 /*****************/
126 /* Function 0x05 */
127 WERROR svcctl_SetServiceObjectSecurity(
128 [in] policy_handle *handle,
129 [in] uint32 security_flags,
130 [in,ref,size_is(buffer_size)] uint8 *buffer,
131 [in] uint32 buffer_size
132 );
133
134 /*****************/
135 /* Function 0x06 */
136 WERROR svcctl_QueryServiceStatus(
137 [in,ref] policy_handle *handle,
138 [out,ref] SERVICE_STATUS *service_status
139 );
140
141 /*****************/
142 /* Function 0x07 */
143 WERROR svcctl_SetServiceStatus(
144 );
145
146 /*****************/
147 /* Function 0x08 */
148 WERROR svcctl_UnlockServiceDatabase(
149 [in,out,ref] policy_handle *lock
150 );
151
152 /*****************/
153 /* Function 0x09 */
154 WERROR svcctl_NotifyBootConfigStatus(
155 );
156
157 /*****************/
158 /* Function 0x0a */
159 WERROR svcctl_SCSetServiceBitsW(
160 [in,ref] policy_handle *handle,
161 [in] uint32 bits,
162 [in] boolean32 bitson,
163 [in] boolean32 immediate
164 );
165
166 /*****************/
167 /* Function 0x0b */
168 WERROR svcctl_ChangeServiceConfigW(
169 [in,ref] policy_handle *handle,
170 [in] uint32 type,
171 [in] uint32 start,
172 [in] uint32 error,
173 [in,unique] [string,charset(UTF16)] uint16 *binary_path,
174 [in,unique] [string,charset(UTF16)] uint16 *load_order_group,
175 [out,ref] uint32 *tag_id,
176 [in,unique] [string,charset(UTF16)] uint16 *dependencies,
177 [in,unique] [string,charset(UTF16)] uint16 *service_start_name,
178 [in,unique] [string,charset(UTF16)] uint16 *password,
179 [in,unique] [string,charset(UTF16)] uint16 *display_name
180 );
181
182 /*****************/
183 /* Function 0x0c */
184 WERROR svcctl_CreateServiceW(
185 [in,ref] policy_handle *scmanager_handle,
186 [in] [string,charset(UTF16)] uint16 ServiceName[],
187 [in,unique] [string,charset(UTF16)] uint16 *DisplayName,
188 [in] uint32 desired_access,
189 [in] uint32 type,
190 [in] uint32 start_type,
191 [in] uint32 error_control,
192 [in] [string,charset(UTF16)] uint16 binary_path[],
193 [in,unique] [string,charset(UTF16)] uint16 *LoadOrderGroupKey,
194 [in,out,unique] uint32 *TagId,
195 [in,unique,size_is(dependencies_size)] uint8 *dependencies,
196 [in] uint32 dependencies_size,
197 [in,unique] [string,charset(UTF16)] uint16 *service_start_name,
198 [in,unique,size_is(password_size)] uint8 *password,
199 [in] uint32 password_size,
200 [out,ref] policy_handle *handle
201 );
202
203 /*****************/
204 /* Function 0x0d */
205 WERROR svcctl_EnumDependentServicesW(
206 [in,ref] policy_handle *service,
207 [in] uint32 state,
208 [out,unique] ENUM_SERVICE_STATUS *service_status,
209 [in] uint32 buf_size,
210 [out,ref] uint32 *bytes_needed,
211 [out,ref] uint32 *services_returned
212 );
213
214 /*****************/
215 /* Function 0x0e */
216 WERROR svcctl_EnumServicesStatusW(
217 [in,ref] policy_handle *handle,
218 [in] uint32 type,
219 [in] uint32 state,
220 [in] uint32 buf_size,
221 [out,size_is(buf_size)] uint8 service[*],
222 [out,ref] uint32 *bytes_needed,
223 [out,ref] uint32 *services_returned,
224 [in,out,unique] uint32 *resume_handle
225 );
226
227 /*****************/
228 /* Function 0x0f */
229 WERROR svcctl_OpenSCManagerW(
230 [in,unique] [string,charset(UTF16)] uint16 *MachineName,
231 [in,unique] [string,charset(UTF16)] uint16 *DatabaseName,
232 [in] uint32 access_mask,
233 [out,ref] policy_handle *handle
234 );
235
236 /*****************/
237 /* Function 0x10 */
238 WERROR svcctl_OpenServiceW(
239 [in,ref] policy_handle *scmanager_handle,
240 [in] [string,charset(UTF16)] uint16 ServiceName[],
241 [in] uint32 access_mask,
242 [out,ref] policy_handle *handle
243 );
244
245 /*****************/
246 /* Function 0x11 */
247 WERROR svcctl_QueryServiceConfigW(
248 [in,ref] policy_handle *handle,
249 [out] uint8 query[buf_size], /*QUERY_SERVICE_CONFIG */
250 [in] uint32 buf_size,
251 [out,ref] uint32 *bytes_needed
252 );
253
254 /*****************/
255 /* Function 0x12 */
256 WERROR svcctl_QueryServiceLockStatusW(
257 [in,ref] policy_handle *handle,
258 [in] uint32 buf_size,
259 [out,ref] SERVICE_LOCK_STATUS *lock_status,
260 [out,ref] uint32 *required_buf_size
261 );
262
263 /*****************/
264 /* Function 0x13 */
265 WERROR svcctl_StartServiceW(
266 [in,ref] policy_handle *handle,
267 [in] uint32 NumArgs,
268 [in,unique/*FIXME:,length_is(NumArgs)*/] [string,charset(UTF16)] uint16 *Arguments
269 );
270
271 /*****************/
272 /* Function 0x14 */
273 WERROR svcctl_GetServiceDisplayNameW(
274 [in,ref] policy_handle *handle,
275 [in,unique] [string,charset(UTF16)] uint16 *service_name,
276 [out,ref] [string,charset(UTF16)] uint16 **display_name,
277 [in,out,unique] uint32 *display_name_length
278 );
279
280 /*****************/
281 /* Function 0x15 */
282 WERROR svcctl_GetServiceKeyNameW(
283 [in,ref] policy_handle *handle,
284 [in,unique] [string,charset(UTF16)] uint16 *service_name,
285 [out,ref] [string,charset(UTF16)] uint16 **key_name,
286 [in,out,unique] uint32 *display_name_length
287 );
288
289 /*****************/
290 /* Function 0x16 */
291 WERROR svcctl_SCSetServiceBitsA(
292 [in,ref] policy_handle *handle,
293 [in] uint32 bits,
294 [in] boolean32 bitson,
295 [in] boolean32 immediate
296 );
297
298 /*****************/
299 /* Function 0x17 */
300 WERROR svcctl_ChangeServiceConfigA(
301 [in,ref] policy_handle *handle,
302 [in] uint32 type,
303 [in] uint32 start,
304 [in] uint32 error,
305 [in,unique] [string,charset(UTF16)] uint16 *binary_path,
306 [in,unique] [string,charset(UTF16)] uint16 *load_order_group,
307 [out,ref] uint32 *tag_id,
308 [in,unique] [string,charset(UTF16)] uint16 *dependencies,
309 [in,unique] [string,charset(UTF16)] uint16 *service_start_name,
310 [in,unique] [string,charset(UTF16)] uint16 *password,
311 [in,unique] [string,charset(UTF16)] uint16 *display_name
312 );
313
314 /*****************/
315 /* Function 0x18 */
316 WERROR svcctl_CreateServiceA(
317 [in,ref] policy_handle *handle,
318 [in,unique] [string,charset(UTF16)] uint16 *ServiceName,
319 [in,unique] [string,charset(UTF16)] uint16 *DisplayName,
320 [in] uint32 desired_access,
321 [in] uint32 type,
322 [in] uint32 start_type,
323 [in] uint32 error_control,
324 [in,unique] [string,charset(UTF16)] uint16 *binary_path,
325 [in,unique] [string,charset(UTF16)] uint16 *LoadOrderGroupKey,
326 [out,unique] uint32 *TagId,
327 [in,unique] [string,charset(UTF16)] uint16 *dependencies,
328 [in,unique] [string,charset(UTF16)] uint16 *service_start_name,
329 [in,unique] [string,charset(UTF16)] uint16 *password
330 );
331
332 /*****************/
333 /* Function 0x19 */
334 WERROR svcctl_EnumDependentServicesA(
335 [in,ref] policy_handle *service,
336 [in] uint32 state,
337 [out,unique] ENUM_SERVICE_STATUS *service_status,
338 [in] uint32 buf_size,
339 [out,ref] uint32 *bytes_needed,
340 [out,ref] uint32 *services_returned
341 );
342
343 /*****************/
344 /* Function 0x1a */
345 WERROR svcctl_EnumServicesStatusA(
346 [in,ref] policy_handle *handle,
347 [in] uint32 type,
348 [in] uint32 state,
349 [in] uint32 buf_size,
350 [out,size_is(buf_size)] uint8 service[*],
351 [out,ref] uint32 *bytes_needed,
352 [out,ref] uint32 *services_returned,
353 [in,out,unique] uint32 *resume_handle
354 );
355
356 /*****************/
357 /* Function 0x1b */
358 WERROR svcctl_OpenSCManagerA(
359 [in,unique] [string,charset(UTF16)] uint16 *MachineName,
360 [in,unique] [string,charset(UTF16)] uint16 *DatabaseName,
361 [in] uint32 access_mask,
362 [out,ref] policy_handle *handle
363 );
364
365 /*****************/
366 /* Function 0x1c */
367 WERROR svcctl_OpenServiceA(
368 [in,ref] policy_handle *scmanager_handle,
369 [in,unique] [string,charset(UTF16)] uint16 *ServiceName,
370 [in] uint32 access_mask
371 );
372
373 /*****************/
374 /* Function 0x1d */
375 WERROR svcctl_QueryServiceConfigA(
376 [in,ref] policy_handle *handle,
377 [out] uint8 query[buf_size], /*QUERYU_SERVICE_CONFIG */
378 [in] uint32 buf_size,
379 [out,ref] uint32 *bytes_needed
380 );
381
382 /*****************/
383 /* Function 0x1e */
384 WERROR svcctl_QueryServiceLockStatusA(
385 [in,ref] policy_handle *handle,
386 [in] uint32 buf_size,
387 [out,ref] SERVICE_LOCK_STATUS *lock_status,
388 [out,ref] uint32 *required_buf_size
389 );
390
391 /*****************/
392 /* Function 0x1f */
393 WERROR svcctl_StartServiceA(
394 [in,ref] policy_handle *handle,
395 [in] uint32 NumArgs,
396 [in,unique/*FIXME:,length_is(NumArgs)*/] [string,charset(UTF16)] uint16 *Arguments
397 );
398
399 /*****************/
400 /* Function 0x20 */
401 WERROR svcctl_GetServiceDisplayNameA(
402 [in,ref] policy_handle *handle,
403 [in,unique] [string,charset(UTF16)] uint16 *service_name,
404 [out,ref] [string,charset(UTF16)] uint16 **display_name,
405 [in,out,unique] uint32 *display_name_length
406 );
407
408 /*****************/
409 /* Function 0x21 */
410 WERROR svcctl_GetServiceKeyNameA(
411 [in,ref] policy_handle *handle,
412 [in,unique] [string,charset(UTF16)] uint16 *service_name,
413 [out,ref] [string,charset(UTF16)] uint16 **key_name,
414 [in,out,unique] uint32 *display_name_length
415 );
416
417 /*****************/
418 /* Function 0x22 */
419 WERROR svcctl_GetCurrentGroupeStateW(
420 );
421
422 /*****************/
423 /* Function 0x23 */
424 WERROR svcctl_EnumServiceGroupW(
425 );
426
427 /*****************/
428 /* Function 0x24 */
429 WERROR svcctl_ChangeServiceConfig2A(
430 [in,ref] policy_handle *handle,
431 [in] uint32 info_level,
432 [in,unique] uint8 *info
433 );
434
435 /*****************/
436 /* Function 0x25 */
437 WERROR svcctl_ChangeServiceConfig2W(
438 [in,ref] policy_handle *handle,
439 [in] uint32 info_level,
440 [in,unique] uint8 *info
441 );
442
443 /*****************/
444 /* Function 0x26 */
445 WERROR svcctl_QueryServiceConfig2A(
446 [in,ref] policy_handle *handle,
447 [in] uint32 info_level,
448 [out] uint8 buffer[buf_size],
449 [in] uint32 buf_size,
450 [out,ref] uint32 *bytes_needed
451 );
452
453 /*****************/
454 /* Function 0x27 */
455 WERROR svcctl_QueryServiceConfig2W(
456 [in,ref] policy_handle *handle,
457 [in] uint32 info_level,
458 [out] uint8 buffer[buf_size],
459 [in] uint32 buf_size,
460 [out,ref] uint32 *bytes_needed
461 );
462
463 /*****************/
464 /* Function 0x28 */
465 WERROR svcctl_QueryServiceStatusEx(
466 [in,ref] policy_handle *handle,
467 [in] uint32 info_level,
468 [out] uint8 buffer[buf_size],
469 [in] uint32 buf_size,
470 [out,ref] uint32 *bytes_needed
471 );
472
473 /*****************/
474 /* Function 0x29 */
475 WERROR EnumServicesStatusExA(
476 [in,ref] policy_handle *scmanager,
477 [in] uint32 info_level,
478 [in] uint32 type,
479 [in] uint32 state,
480 [out] uint8 services[buf_size],
481 [in] uint32 buf_size,
482 [out,ref] uint32 *bytes_needed,
483 [out,ref] uint32 *service_returned,
484 [in,out,unique] uint32 *resume_handle,
485 [out,ref] [string,charset(UTF16)] uint16 **group_name
486 );
487
488 /*****************/
489 /* Function 0x2a */
490 WERROR EnumServicesStatusExW(
491 [in,ref] policy_handle *scmanager,
492 [in] uint32 info_level,
493 [in] uint32 type,
494 [in] uint32 state,
495 [out] uint8 services[buf_size],
496 [in] uint32 buf_size,
497 [out,ref] uint32 *bytes_needed,
498 [out,ref] uint32 *service_returned,
499 [in,out,unique] uint32 *resume_handle,
500 [out,ref] [string,charset(UTF16)] uint16 **group_name
501 );
502
503 /*****************/
504 /* Function 0x2b */
505 WERROR svcctl_SCSendTSMessage(
506 );
507}
Note: See TracBrowser for help on using the repository browser.