s4:selftest: reference binaries via variables in tests.sh
[Samba.git] / librpc / gen_ndr / svcctl.h
blob328d8ab517fb239d46d09ae4691c0cd119d7b57c
1 /* header auto-generated by pidl */
3 #include <stdint.h>
5 #include "librpc/gen_ndr/misc.h"
6 #include "librpc/gen_ndr/security.h"
7 #ifndef _HEADER_svcctl
8 #define _HEADER_svcctl
10 #define SERVICE_TYPE_KERNEL_DRIVER ( 0x01 )
11 #define SERVICE_TYPE_FS_DRIVER ( 0x02 )
12 #define SERVICE_TYPE_ADAPTER ( 0x04 )
13 #define SERVICE_TYPE_RECOGNIZER_DRIVER ( 0x08 )
14 #define SERVICE_TYPE_DRIVER ( SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER )
15 #define SERVICE_TYPE_WIN32_OWN_PROCESS ( 0x10 )
16 #define SERVICE_TYPE_WIN32_SHARE_PROCESS ( 0x20 )
17 #define SERVICE_TYPE_WIN32 ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS )
18 #define SERVICE_TYPE_INTERACTIVE_PROCESS ( 0x100 )
19 #define SV_TYPE_ALL ( 0xFFFFFFFF )
20 #define SC_MANAGER_READ_ACCESS ( (SEC_STD_READ_CONTROL|SC_RIGHT_MGR_CONNECT|SC_RIGHT_MGR_ENUMERATE_SERVICE|SC_RIGHT_MGR_QUERY_LOCK_STATUS) )
21 #define SC_MANAGER_EXECUTE_ACCESS ( SC_MANAGER_READ_ACCESS )
22 #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) )
23 #define SC_MANAGER_ALL_ACCESS ( SC_MANAGER_WRITE_ACCESS )
24 #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) )
25 #define SERVICE_EXECUTE_ACCESS ( (SERVICE_READ_ACCESS|SC_RIGHT_SVC_START|SC_RIGHT_SVC_STOP|SC_RIGHT_SVC_PAUSE_CONTINUE) )
26 #define SERVICE_WRITE_ACCESS ( (SEC_STD_REQUIRED|SERVICE_READ_ACCESS|SERVICE_EXECUTE_ACCESS|SC_RIGHT_SVC_CHANGE_CONFIG) )
27 #define SERVICE_ALL_ACCESS ( SERVICE_WRITE_ACCESS )
28 struct SERVICE_LOCK_STATUS {
29 uint32_t is_locked;
30 const char *lock_owner;/* [unique,charset(UTF16)] */
31 uint32_t lock_duration;
34 enum svcctl_ServiceStatus
35 #ifndef USE_UINT_ENUMS
37 SVCCTL_STATE_UNKNOWN=0x00000000,
38 SVCCTL_STOPPED=0x00000001,
39 SVCCTL_START_PENDING=0x00000002,
40 SVCCTL_STOP_PENDING=0x00000003,
41 SVCCTL_RUNNING=0x00000004,
42 SVCCTL_CONTINUE_PENDING=0x00000005,
43 SVCCTL_PAUSE_PENDING=0x00000006,
44 SVCCTL_PAUSED=0x00000007
46 #else
47 { __donnot_use_enum_svcctl_ServiceStatus=0x7FFFFFFF}
48 #define SVCCTL_STATE_UNKNOWN ( 0x00000000 )
49 #define SVCCTL_STOPPED ( 0x00000001 )
50 #define SVCCTL_START_PENDING ( 0x00000002 )
51 #define SVCCTL_STOP_PENDING ( 0x00000003 )
52 #define SVCCTL_RUNNING ( 0x00000004 )
53 #define SVCCTL_CONTINUE_PENDING ( 0x00000005 )
54 #define SVCCTL_PAUSE_PENDING ( 0x00000006 )
55 #define SVCCTL_PAUSED ( 0x00000007 )
56 #endif
59 /* bitmap svcctl_ControlsAccepted */
60 #define SVCCTL_ACCEPT_NONE ( 0x00000000 )
61 #define SVCCTL_ACCEPT_STOP ( 0x00000001 )
62 #define SVCCTL_ACCEPT_PAUSE_CONTINUE ( 0x00000002 )
63 #define SVCCTL_ACCEPT_SHUTDOWN ( 0x00000004 )
64 #define SVCCTL_ACCEPT_PARAMCHANGE ( 0x00000008 )
65 #define SVCCTL_ACCEPT_NETBINDCHANGE ( 0x00000010 )
66 #define SVCCTL_ACCEPT_HARDWAREPROFILECHANGE ( 0x00000020 )
67 #define SVCCTL_ACCEPT_POWEREVENT ( 0x00000040 )
69 struct SERVICE_STATUS {
70 uint32_t type;
71 enum svcctl_ServiceStatus state;
72 uint32_t controls_accepted;
73 WERROR win32_exit_code;
74 uint32_t service_exit_code;
75 uint32_t check_point;
76 uint32_t wait_hint;
79 struct SERVICE_STATUS_PROCESS {
80 struct SERVICE_STATUS status;
81 uint32_t process_id;
82 uint32_t service_flags;
83 }/* [public] */;
85 struct ENUM_SERVICE_STATUSW {
86 const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
87 const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
88 struct SERVICE_STATUS status;
89 }/* [gensize,public] */;
91 struct ENUM_SERVICE_STATUSA {
92 const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
93 const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
94 struct SERVICE_STATUS status;
95 }/* [gensize,public] */;
97 /* bitmap svcctl_ServerType */
98 #define SV_TYPE_WORKSTATION ( 0x00000001 )
99 #define SV_TYPE_SERVER ( 0x00000002 )
100 #define SV_TYPE_SQLSERVER ( 0x00000004 )
101 #define SV_TYPE_DOMAIN_CTRL ( 0x00000008 )
102 #define SV_TYPE_DOMAIN_BAKCTRL ( 0x00000010 )
103 #define SV_TYPE_TIME_SOURCE ( 0x00000020 )
104 #define SV_TYPE_AFP ( 0x00000040 )
105 #define SV_TYPE_NOVELL ( 0x00000080 )
106 #define SV_TYPE_DOMAIN_MEMBER ( 0x00000100 )
107 #define SV_TYPE_PRINTQ_SERVER ( 0x00000200 )
108 #define SV_TYPE_DIALIN_SERVER ( 0x00000400 )
109 #define SV_TYPE_SERVER_UNIX ( 0x00000800 )
110 #define SV_TYPE_NT ( 0x00001000 )
111 #define SV_TYPE_WFW ( 0x00002000 )
112 #define SV_TYPE_SERVER_MFPN ( 0x00004000 )
113 #define SV_TYPE_SERVER_NT ( 0x00008000 )
114 #define SV_TYPE_POTENTIAL_BROWSER ( 0x00010000 )
115 #define SV_TYPE_BACKUP_BROWSER ( 0x00020000 )
116 #define SV_TYPE_MASTER_BROWSER ( 0x00040000 )
117 #define SV_TYPE_DOMAIN_MASTER ( 0x00080000 )
118 #define SV_TYPE_SERVER_OSF ( 0x00100000 )
119 #define SV_TYPE_SERVER_VMS ( 0x00200000 )
120 #define SV_TYPE_WIN95_PLUS ( 0x00400000 )
121 #define SV_TYPE_DFS_SERVER ( 0x00800000 )
122 #define SV_TYPE_ALTERNATE_XPORT ( 0x20000000 )
123 #define SV_TYPE_LOCAL_LIST_ONLY ( 0x40000000 )
124 #define SV_TYPE_DOMAIN_ENUM ( 0x80000000 )
126 enum SERVICE_CONTROL
127 #ifndef USE_UINT_ENUMS
129 SVCCTL_CONTROL_STOP=0x00000001,
130 SVCCTL_CONTROL_PAUSE=0x00000002,
131 SVCCTL_CONTROL_CONTINUE=0x00000003,
132 SVCCTL_CONTROL_INTERROGATE=0x00000004,
133 SVCCTL_CONTROL_SHUTDOWN=0x00000005
135 #else
136 { __donnot_use_enum_SERVICE_CONTROL=0x7FFFFFFF}
137 #define SVCCTL_CONTROL_STOP ( 0x00000001 )
138 #define SVCCTL_CONTROL_PAUSE ( 0x00000002 )
139 #define SVCCTL_CONTROL_CONTINUE ( 0x00000003 )
140 #define SVCCTL_CONTROL_INTERROGATE ( 0x00000004 )
141 #define SVCCTL_CONTROL_SHUTDOWN ( 0x00000005 )
142 #endif
145 enum svcctl_ErrorControl
146 #ifndef USE_UINT_ENUMS
148 SVCCTL_SVC_ERROR_IGNORE=0x00000000,
149 SVCCTL_SVC_ERROR_NORMAL=0x00000001,
150 SVCCTL_SVC_ERROR_CRITICAL=0x00000002,
151 SVCCTL_SVC_ERROR_SEVERE=0x00000003
153 #else
154 { __donnot_use_enum_svcctl_ErrorControl=0x7FFFFFFF}
155 #define SVCCTL_SVC_ERROR_IGNORE ( 0x00000000 )
156 #define SVCCTL_SVC_ERROR_NORMAL ( 0x00000001 )
157 #define SVCCTL_SVC_ERROR_CRITICAL ( 0x00000002 )
158 #define SVCCTL_SVC_ERROR_SEVERE ( 0x00000003 )
159 #endif
162 enum svcctl_StartType
163 #ifndef USE_UINT_ENUMS
165 SVCCTL_BOOT_START=0x00000000,
166 SVCCTL_SYSTEM_START=0x00000001,
167 SVCCTL_AUTO_START=0x00000002,
168 SVCCTL_DEMAND_START=0x00000003,
169 SVCCTL_DISABLED=0x00000004
171 #else
172 { __donnot_use_enum_svcctl_StartType=0x7FFFFFFF}
173 #define SVCCTL_BOOT_START ( 0x00000000 )
174 #define SVCCTL_SYSTEM_START ( 0x00000001 )
175 #define SVCCTL_AUTO_START ( 0x00000002 )
176 #define SVCCTL_DEMAND_START ( 0x00000003 )
177 #define SVCCTL_DISABLED ( 0x00000004 )
178 #endif
181 enum svcctl_ServiceState
182 #ifndef USE_UINT_ENUMS
184 SERVICE_STATE_ACTIVE=0x00000001,
185 SERVICE_STATE_INACTIVE=0x00000002,
186 SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE)
188 #else
189 { __donnot_use_enum_svcctl_ServiceState=0x7FFFFFFF}
190 #define SERVICE_STATE_ACTIVE ( 0x00000001 )
191 #define SERVICE_STATE_INACTIVE ( 0x00000002 )
192 #define SERVICE_STATE_ALL ( (SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE) )
193 #endif
196 /* bitmap svcctl_MgrAccessMask */
197 #define SC_RIGHT_MGR_CONNECT ( 0x0001 )
198 #define SC_RIGHT_MGR_CREATE_SERVICE ( 0x0002 )
199 #define SC_RIGHT_MGR_ENUMERATE_SERVICE ( 0x0004 )
200 #define SC_RIGHT_MGR_LOCK ( 0x0008 )
201 #define SC_RIGHT_MGR_QUERY_LOCK_STATUS ( 0x0010 )
202 #define SC_RIGHT_MGR_MODIFY_BOOT_CONFIG ( 0x0020 )
204 /* bitmap svcctl_ServiceAccessMask */
205 #define SC_RIGHT_SVC_QUERY_CONFIG ( 0x0001 )
206 #define SC_RIGHT_SVC_CHANGE_CONFIG ( 0x0002 )
207 #define SC_RIGHT_SVC_QUERY_STATUS ( 0x0004 )
208 #define SC_RIGHT_SVC_ENUMERATE_DEPENDENTS ( 0x0008 )
209 #define SC_RIGHT_SVC_START ( 0x0010 )
210 #define SC_RIGHT_SVC_STOP ( 0x0020 )
211 #define SC_RIGHT_SVC_PAUSE_CONTINUE ( 0x0040 )
212 #define SC_RIGHT_SVC_INTERROGATE ( 0x0080 )
213 #define SC_RIGHT_SVC_USER_DEFINED_CONTROL ( 0x0100 )
215 struct QUERY_SERVICE_CONFIG {
216 uint32_t service_type;
217 enum svcctl_StartType start_type;
218 enum svcctl_ErrorControl error_control;
219 const char *executablepath;/* [unique,range(0,8192),charset(UTF16)] */
220 const char *loadordergroup;/* [unique,range(0,8192),charset(UTF16)] */
221 uint32_t tag_id;
222 const char *dependencies;/* [unique,range(0,8192),charset(UTF16)] */
223 const char *startname;/* [unique,range(0,8192),charset(UTF16)] */
224 const char *displayname;/* [unique,range(0,8192),charset(UTF16)] */
225 }/* [gensize,public] */;
227 enum svcctl_ConfigLevel
228 #ifndef USE_UINT_ENUMS
230 SERVICE_CONFIG_DESCRIPTION=0x00000001,
231 SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002
233 #else
234 { __donnot_use_enum_svcctl_ConfigLevel=0x7FFFFFFF}
235 #define SERVICE_CONFIG_DESCRIPTION ( 0x00000001 )
236 #define SERVICE_CONFIG_FAILURE_ACTIONS ( 0x00000002 )
237 #endif
240 struct SERVICE_DESCRIPTION {
241 const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
242 }/* [gensize,public] */;
244 enum SC_ACTION_TYPE
245 #ifndef USE_UINT_ENUMS
247 SC_ACTION_NONE=0,
248 SC_ACTION_RESTART=1,
249 SC_ACTION_REBOOT=2,
250 SC_ACTION_RUN_COMMAND=3
252 #else
253 { __donnot_use_enum_SC_ACTION_TYPE=0x7FFFFFFF}
254 #define SC_ACTION_NONE ( 0 )
255 #define SC_ACTION_RESTART ( 1 )
256 #define SC_ACTION_REBOOT ( 2 )
257 #define SC_ACTION_RUN_COMMAND ( 3 )
258 #endif
261 struct SC_ACTION {
262 enum SC_ACTION_TYPE type;
263 uint32_t delay;
266 struct SERVICE_FAILURE_ACTIONS {
267 uint32_t reset_period;
268 const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
269 const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
270 uint32_t num_actions;/* [range(0,1024)] */
271 struct SC_ACTION *actions;/* [relative,size_is(num_actions)] */
272 }/* [gensize,public] */;
274 enum svcctl_StatusLevel
275 #ifndef USE_UINT_ENUMS
277 SVC_STATUS_PROCESS_INFO=0x00000000
279 #else
280 { __donnot_use_enum_svcctl_StatusLevel=0x7FFFFFFF}
281 #define SVC_STATUS_PROCESS_INFO ( 0x00000000 )
282 #endif
286 struct svcctl_CloseServiceHandle {
287 struct {
288 struct policy_handle *handle;/* [ref] */
289 } in;
291 struct {
292 struct policy_handle *handle;/* [ref] */
293 WERROR result;
294 } out;
299 struct svcctl_ControlService {
300 struct {
301 struct policy_handle *handle;/* [ref] */
302 enum SERVICE_CONTROL control;
303 } in;
305 struct {
306 struct SERVICE_STATUS *service_status;/* [ref] */
307 WERROR result;
308 } out;
313 struct svcctl_DeleteService {
314 struct {
315 struct policy_handle *handle;/* [ref] */
316 } in;
318 struct {
319 WERROR result;
320 } out;
325 struct svcctl_LockServiceDatabase {
326 struct {
327 struct policy_handle *handle;/* [ref] */
328 } in;
330 struct {
331 struct policy_handle *lock;/* [ref] */
332 WERROR result;
333 } out;
338 struct svcctl_QueryServiceObjectSecurity {
339 struct {
340 struct policy_handle *handle;/* [ref] */
341 uint32_t security_flags;
342 uint32_t buffer_size;/* [range(0,0x40000)] */
343 } in;
345 struct {
346 uint8_t *buffer;/* [ref,size_is(buffer_size)] */
347 uint32_t *needed;/* [ref,range(0,0x40000)] */
348 WERROR result;
349 } out;
354 struct svcctl_SetServiceObjectSecurity {
355 struct {
356 struct policy_handle *handle;/* [ref] */
357 uint32_t security_flags;
358 uint8_t *buffer;/* [ref,size_is(buffer_size)] */
359 uint32_t buffer_size;
360 } in;
362 struct {
363 WERROR result;
364 } out;
369 struct svcctl_QueryServiceStatus {
370 struct {
371 struct policy_handle *handle;/* [ref] */
372 } in;
374 struct {
375 struct SERVICE_STATUS *service_status;/* [ref] */
376 WERROR result;
377 } out;
382 struct svcctl_SetServiceStatus {
383 struct {
384 WERROR result;
385 } out;
390 struct svcctl_UnlockServiceDatabase {
391 struct {
392 struct policy_handle *lock;/* [ref] */
393 } in;
395 struct {
396 struct policy_handle *lock;/* [ref] */
397 WERROR result;
398 } out;
403 struct svcctl_NotifyBootConfigStatus {
404 struct {
405 WERROR result;
406 } out;
411 struct svcctl_SCSetServiceBitsW {
412 struct {
413 struct policy_handle *handle;/* [ref] */
414 uint32_t bits;
415 uint32_t bitson;
416 uint32_t immediate;
417 } in;
419 struct {
420 WERROR result;
421 } out;
426 struct svcctl_ChangeServiceConfigW {
427 struct {
428 struct policy_handle *handle;/* [ref] */
429 uint32_t type;
430 enum svcctl_StartType start_type;
431 enum svcctl_ErrorControl error_control;
432 const char *binary_path;/* [unique,charset(UTF16)] */
433 const char *load_order_group;/* [unique,charset(UTF16)] */
434 const char *dependencies;/* [unique,charset(UTF16)] */
435 const char *service_start_name;/* [unique,charset(UTF16)] */
436 const char *password;/* [unique,charset(UTF16)] */
437 const char *display_name;/* [unique,charset(UTF16)] */
438 } in;
440 struct {
441 uint32_t *tag_id;/* [ref] */
442 WERROR result;
443 } out;
448 struct svcctl_CreateServiceW {
449 struct {
450 struct policy_handle *scmanager_handle;/* [ref] */
451 const char *ServiceName;/* [charset(UTF16)] */
452 const char *DisplayName;/* [unique,charset(UTF16)] */
453 uint32_t desired_access;
454 uint32_t type;
455 enum svcctl_StartType start_type;
456 enum svcctl_ErrorControl error_control;
457 const char *binary_path;/* [charset(UTF16)] */
458 const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
459 uint8_t *dependencies;/* [unique,size_is(dependencies_size)] */
460 uint32_t dependencies_size;
461 const char *service_start_name;/* [unique,charset(UTF16)] */
462 uint8_t *password;/* [unique,size_is(password_size)] */
463 uint32_t password_size;
464 uint32_t *TagId;/* [unique] */
465 } in;
467 struct {
468 struct policy_handle *handle;/* [ref] */
469 uint32_t *TagId;/* [unique] */
470 WERROR result;
471 } out;
476 struct svcctl_EnumDependentServicesW {
477 struct {
478 struct policy_handle *service;/* [ref] */
479 uint32_t state;
480 uint32_t buf_size;/* [range(0,0x40000)] */
481 } in;
483 struct {
484 uint8_t *service_status;/* [ref,size_is(buf_size)] */
485 uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
486 uint32_t *services_returned;/* [ref,range(0,0x40000)] */
487 WERROR result;
488 } out;
493 struct svcctl_EnumServicesStatusW {
494 struct {
495 struct policy_handle *handle;/* [ref] */
496 uint32_t type;
497 enum svcctl_ServiceState state;
498 uint32_t buf_size;/* [range(0,0x40000)] */
499 uint32_t *resume_handle;/* [unique] */
500 } in;
502 struct {
503 uint8_t *service;/* [ref,size_is(buf_size)] */
504 uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
505 uint32_t *services_returned;/* [ref,range(0,0x40000)] */
506 uint32_t *resume_handle;/* [unique] */
507 WERROR result;
508 } out;
513 struct svcctl_OpenSCManagerW {
514 struct {
515 const char *MachineName;/* [unique,charset(UTF16)] */
516 const char *DatabaseName;/* [unique,charset(UTF16)] */
517 uint32_t access_mask;
518 } in;
520 struct {
521 struct policy_handle *handle;/* [ref] */
522 WERROR result;
523 } out;
528 struct svcctl_OpenServiceW {
529 struct {
530 struct policy_handle *scmanager_handle;/* [ref] */
531 const char *ServiceName;/* [charset(UTF16)] */
532 uint32_t access_mask;
533 } in;
535 struct {
536 struct policy_handle *handle;/* [ref] */
537 WERROR result;
538 } out;
543 struct svcctl_QueryServiceConfigW {
544 struct {
545 struct policy_handle *handle;/* [ref] */
546 uint32_t buf_size;/* [range(0,8192)] */
547 } in;
549 struct {
550 struct QUERY_SERVICE_CONFIG *query;/* [ref] */
551 uint32_t *bytes_needed;/* [ref,range(0,8192)] */
552 WERROR result;
553 } out;
558 struct svcctl_QueryServiceLockStatusW {
559 struct {
560 struct policy_handle *handle;/* [ref] */
561 uint32_t buf_size;
562 } in;
564 struct {
565 struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
566 uint32_t *required_buf_size;/* [ref] */
567 WERROR result;
568 } out;
573 struct svcctl_StartServiceW {
574 struct {
575 struct policy_handle *handle;/* [ref] */
576 uint32_t NumArgs;
577 const char *Arguments;/* [unique,charset(UTF16)] */
578 } in;
580 struct {
581 WERROR result;
582 } out;
587 struct svcctl_GetServiceDisplayNameW {
588 struct {
589 struct policy_handle *handle;/* [ref] */
590 const char *service_name;/* [unique,charset(UTF16)] */
591 uint32_t *display_name_length;/* [unique] */
592 } in;
594 struct {
595 const char **display_name;/* [ref,charset(UTF16)] */
596 uint32_t *display_name_length;/* [unique] */
597 WERROR result;
598 } out;
603 struct svcctl_GetServiceKeyNameW {
604 struct {
605 struct policy_handle *handle;/* [ref] */
606 const char *service_name;/* [unique,charset(UTF16)] */
607 uint32_t *display_name_length;/* [unique] */
608 } in;
610 struct {
611 const char **key_name;/* [ref,charset(UTF16)] */
612 uint32_t *display_name_length;/* [unique] */
613 WERROR result;
614 } out;
619 struct svcctl_SCSetServiceBitsA {
620 struct {
621 struct policy_handle *handle;/* [ref] */
622 uint32_t bits;
623 uint32_t bitson;
624 uint32_t immediate;
625 } in;
627 struct {
628 WERROR result;
629 } out;
634 struct svcctl_ChangeServiceConfigA {
635 struct {
636 struct policy_handle *handle;/* [ref] */
637 uint32_t type;
638 enum svcctl_StartType start_type;
639 enum svcctl_ErrorControl error_control;
640 const char *binary_path;/* [unique,charset(UTF16)] */
641 const char *load_order_group;/* [unique,charset(UTF16)] */
642 const char *dependencies;/* [unique,charset(UTF16)] */
643 const char *service_start_name;/* [unique,charset(UTF16)] */
644 const char *password;/* [unique,charset(UTF16)] */
645 const char *display_name;/* [unique,charset(UTF16)] */
646 } in;
648 struct {
649 uint32_t *tag_id;/* [ref] */
650 WERROR result;
651 } out;
656 struct svcctl_CreateServiceA {
657 struct {
658 struct policy_handle *handle;/* [ref] */
659 const char *ServiceName;/* [unique,charset(UTF16)] */
660 const char *DisplayName;/* [unique,charset(UTF16)] */
661 uint32_t desired_access;
662 uint32_t type;
663 enum svcctl_StartType start_type;
664 enum svcctl_ErrorControl error_control;
665 const char *binary_path;/* [unique,charset(UTF16)] */
666 const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
667 const char *dependencies;/* [unique,charset(UTF16)] */
668 const char *service_start_name;/* [unique,charset(UTF16)] */
669 const char *password;/* [unique,charset(UTF16)] */
670 } in;
672 struct {
673 uint32_t *TagId;/* [unique] */
674 WERROR result;
675 } out;
680 struct svcctl_EnumDependentServicesA {
681 struct {
682 struct policy_handle *service;/* [ref] */
683 uint32_t state;
684 uint32_t buf_size;
685 } in;
687 struct {
688 struct ENUM_SERVICE_STATUSA *service_status;/* [unique] */
689 uint32_t *bytes_needed;/* [ref] */
690 uint32_t *services_returned;/* [ref] */
691 WERROR result;
692 } out;
697 struct svcctl_EnumServicesStatusA {
698 struct {
699 struct policy_handle *handle;/* [ref] */
700 uint32_t type;
701 enum svcctl_ServiceState state;
702 uint32_t buf_size;
703 uint32_t *resume_handle;/* [unique] */
704 } in;
706 struct {
707 uint8_t *service;/* [size_is(buf_size)] */
708 uint32_t *bytes_needed;/* [ref] */
709 uint32_t *services_returned;/* [ref] */
710 uint32_t *resume_handle;/* [unique] */
711 WERROR result;
712 } out;
717 struct svcctl_OpenSCManagerA {
718 struct {
719 const char *MachineName;/* [unique,charset(UTF16)] */
720 const char *DatabaseName;/* [unique,charset(UTF16)] */
721 uint32_t access_mask;
722 } in;
724 struct {
725 struct policy_handle *handle;/* [ref] */
726 WERROR result;
727 } out;
732 struct svcctl_OpenServiceA {
733 struct {
734 struct policy_handle *scmanager_handle;/* [ref] */
735 const char *ServiceName;/* [unique,charset(UTF16)] */
736 uint32_t access_mask;
737 } in;
739 struct {
740 WERROR result;
741 } out;
746 struct svcctl_QueryServiceConfigA {
747 struct {
748 struct policy_handle *handle;/* [ref] */
749 uint32_t buf_size;
750 } in;
752 struct {
753 uint8_t *query;
754 uint32_t *bytes_needed;/* [ref] */
755 WERROR result;
756 } out;
761 struct svcctl_QueryServiceLockStatusA {
762 struct {
763 struct policy_handle *handle;/* [ref] */
764 uint32_t buf_size;
765 } in;
767 struct {
768 struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
769 uint32_t *required_buf_size;/* [ref] */
770 WERROR result;
771 } out;
776 struct svcctl_StartServiceA {
777 struct {
778 struct policy_handle *handle;/* [ref] */
779 uint32_t NumArgs;
780 const char *Arguments;/* [unique,charset(UTF16)] */
781 } in;
783 struct {
784 WERROR result;
785 } out;
790 struct svcctl_GetServiceDisplayNameA {
791 struct {
792 struct policy_handle *handle;/* [ref] */
793 const char *service_name;/* [unique,charset(UTF16)] */
794 uint32_t *display_name_length;/* [unique] */
795 } in;
797 struct {
798 const char **display_name;/* [ref,charset(UTF16)] */
799 uint32_t *display_name_length;/* [unique] */
800 WERROR result;
801 } out;
806 struct svcctl_GetServiceKeyNameA {
807 struct {
808 struct policy_handle *handle;/* [ref] */
809 const char *service_name;/* [unique,charset(UTF16)] */
810 uint32_t *display_name_length;/* [unique] */
811 } in;
813 struct {
814 const char **key_name;/* [ref,charset(UTF16)] */
815 uint32_t *display_name_length;/* [unique] */
816 WERROR result;
817 } out;
822 struct svcctl_GetCurrentGroupeStateW {
823 struct {
824 WERROR result;
825 } out;
830 struct svcctl_EnumServiceGroupW {
831 struct {
832 WERROR result;
833 } out;
838 struct svcctl_ChangeServiceConfig2A {
839 struct {
840 struct policy_handle *handle;/* [ref] */
841 uint32_t info_level;
842 uint8_t *info;/* [unique] */
843 } in;
845 struct {
846 WERROR result;
847 } out;
852 struct svcctl_ChangeServiceConfig2W {
853 struct {
854 struct policy_handle *handle;/* [ref] */
855 uint32_t info_level;
856 uint8_t *info;/* [unique] */
857 } in;
859 struct {
860 WERROR result;
861 } out;
866 struct svcctl_QueryServiceConfig2A {
867 struct {
868 struct policy_handle *handle;/* [ref] */
869 enum svcctl_ConfigLevel info_level;
870 uint32_t buf_size;
871 } in;
873 struct {
874 uint8_t *buffer;
875 uint32_t *bytes_needed;/* [ref] */
876 WERROR result;
877 } out;
882 struct svcctl_QueryServiceConfig2W {
883 struct {
884 struct policy_handle *handle;/* [ref] */
885 enum svcctl_ConfigLevel info_level;
886 uint32_t buf_size;/* [range(0,8192)] */
887 } in;
889 struct {
890 uint8_t *buffer;/* [ref,size_is(buf_size)] */
891 uint32_t *bytes_needed;/* [ref,range(0,8192)] */
892 WERROR result;
893 } out;
898 struct svcctl_QueryServiceStatusEx {
899 struct {
900 struct policy_handle *handle;/* [ref] */
901 enum svcctl_StatusLevel info_level;
902 uint32_t buf_size;/* [range(0,8192)] */
903 } in;
905 struct {
906 uint8_t *buffer;/* [ref,size_is(buf_size)] */
907 uint32_t *bytes_needed;/* [ref,range(0,8192)] */
908 WERROR result;
909 } out;
914 struct EnumServicesStatusExA {
915 struct {
916 struct policy_handle *scmanager;/* [ref] */
917 uint32_t info_level;
918 uint32_t type;
919 enum svcctl_ServiceState state;
920 uint32_t buf_size;
921 uint32_t *resume_handle;/* [unique] */
922 } in;
924 struct {
925 uint8_t *services;
926 uint32_t *bytes_needed;/* [ref] */
927 uint32_t *service_returned;/* [ref] */
928 const char **group_name;/* [ref,charset(UTF16)] */
929 uint32_t *resume_handle;/* [unique] */
930 WERROR result;
931 } out;
936 struct EnumServicesStatusExW {
937 struct {
938 struct policy_handle *scmanager;/* [ref] */
939 uint32_t info_level;
940 uint32_t type;
941 enum svcctl_ServiceState state;
942 uint32_t buf_size;/* [range(0,0x40000)] */
943 const char *group_name;/* [unique,charset(UTF16)] */
944 uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
945 } in;
947 struct {
948 uint8_t *services;/* [ref,size_is(buf_size)] */
949 uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
950 uint32_t *service_returned;/* [ref,range(0,0x40000)] */
951 uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
952 WERROR result;
953 } out;
958 struct svcctl_SCSendTSMessage {
959 struct {
960 WERROR result;
961 } out;
965 #endif /* _HEADER_svcctl */