svcctl: Fix IDL for svcctl_StartServiceW().
[jra/samba/.git] / librpc / gen_ndr / svcctl.h
1 /* header auto-generated by pidl */
2
3 #include <stdint.h>
4
5 #include "libcli/util/ntstatus.h"
6
7 #include "librpc/gen_ndr/misc.h"
8 #include "librpc/gen_ndr/security.h"
9 #ifndef _HEADER_svcctl
10 #define _HEADER_svcctl
11
12 #define SVCCTL_ACCEPT_NONE      ( 0x00000000 )
13 #define SERVICE_TYPE_KERNEL_DRIVER      ( 0x01 )
14 #define SERVICE_TYPE_FS_DRIVER  ( 0x02 )
15 #define SERVICE_TYPE_ADAPTER    ( 0x04 )
16 #define SERVICE_TYPE_RECOGNIZER_DRIVER  ( 0x08 )
17 #define SERVICE_TYPE_DRIVER     ( SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER )
18 #define SERVICE_TYPE_WIN32_OWN_PROCESS  ( 0x10 )
19 #define SERVICE_TYPE_WIN32_SHARE_PROCESS        ( 0x20 )
20 #define SERVICE_TYPE_WIN32      ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS )
21 #define SERVICE_TYPE_INTERACTIVE_PROCESS        ( 0x100 )
22 #define SV_TYPE_ALL     ( 0xFFFFFFFF )
23 #define SC_MANAGER_READ_ACCESS  ( (SEC_STD_READ_CONTROL|SC_RIGHT_MGR_CONNECT|SC_RIGHT_MGR_ENUMERATE_SERVICE|SC_RIGHT_MGR_QUERY_LOCK_STATUS) )
24 #define SC_MANAGER_EXECUTE_ACCESS       ( SC_MANAGER_READ_ACCESS )
25 #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) )
26 #define SC_MANAGER_ALL_ACCESS   ( SC_MANAGER_WRITE_ACCESS )
27 #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) )
28 #define SERVICE_EXECUTE_ACCESS  ( (SERVICE_READ_ACCESS|SC_RIGHT_SVC_START|SC_RIGHT_SVC_STOP|SC_RIGHT_SVC_PAUSE_CONTINUE) )
29 #define SERVICE_WRITE_ACCESS    ( (SEC_STD_REQUIRED|SERVICE_READ_ACCESS|SERVICE_EXECUTE_ACCESS|SC_RIGHT_SVC_CHANGE_CONFIG) )
30 #define SERVICE_ALL_ACCESS      ( SERVICE_WRITE_ACCESS )
31 #define SC_MAX_ARGUMENT_LENGTH  ( 1024 )
32 #define SC_MAX_ARGUMENTS        ( 1024 )
33 struct SERVICE_LOCK_STATUS {
34         uint32_t is_locked;
35         const char *lock_owner;/* [unique,charset(UTF16)] */
36         uint32_t lock_duration;
37 };
38
39 enum svcctl_ServiceStatus
40 #ifndef USE_UINT_ENUMS
41  {
42         SVCCTL_STATE_UNKNOWN=0x00000000,
43         SVCCTL_STOPPED=0x00000001,
44         SVCCTL_START_PENDING=0x00000002,
45         SVCCTL_STOP_PENDING=0x00000003,
46         SVCCTL_RUNNING=0x00000004,
47         SVCCTL_CONTINUE_PENDING=0x00000005,
48         SVCCTL_PAUSE_PENDING=0x00000006,
49         SVCCTL_PAUSED=0x00000007
50 }
51 #else
52  { __donnot_use_enum_svcctl_ServiceStatus=0x7FFFFFFF}
53 #define SVCCTL_STATE_UNKNOWN ( 0x00000000 )
54 #define SVCCTL_STOPPED ( 0x00000001 )
55 #define SVCCTL_START_PENDING ( 0x00000002 )
56 #define SVCCTL_STOP_PENDING ( 0x00000003 )
57 #define SVCCTL_RUNNING ( 0x00000004 )
58 #define SVCCTL_CONTINUE_PENDING ( 0x00000005 )
59 #define SVCCTL_PAUSE_PENDING ( 0x00000006 )
60 #define SVCCTL_PAUSED ( 0x00000007 )
61 #endif
62 ;
63
64 /* bitmap svcctl_ControlsAccepted */
65 #define SVCCTL_ACCEPT_STOP ( 0x00000001 )
66 #define SVCCTL_ACCEPT_PAUSE_CONTINUE ( 0x00000002 )
67 #define SVCCTL_ACCEPT_SHUTDOWN ( 0x00000004 )
68 #define SVCCTL_ACCEPT_PARAMCHANGE ( 0x00000008 )
69 #define SVCCTL_ACCEPT_NETBINDCHANGE ( 0x00000010 )
70 #define SVCCTL_ACCEPT_HARDWAREPROFILECHANGE ( 0x00000020 )
71 #define SVCCTL_ACCEPT_POWEREVENT ( 0x00000040 )
72
73 struct SERVICE_STATUS {
74         uint32_t type;
75         enum svcctl_ServiceStatus state;
76         uint32_t controls_accepted;
77         WERROR win32_exit_code;
78         uint32_t service_exit_code;
79         uint32_t check_point;
80         uint32_t wait_hint;
81 };
82
83 struct SERVICE_STATUS_PROCESS {
84         struct SERVICE_STATUS status;
85         uint32_t process_id;
86         uint32_t service_flags;
87 }/* [public] */;
88
89 struct ENUM_SERVICE_STATUSW {
90         const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
91         const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
92         struct SERVICE_STATUS status;
93 }/* [gensize,public] */;
94
95 struct ENUM_SERVICE_STATUSA {
96         const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
97         const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
98         struct SERVICE_STATUS status;
99 }/* [gensize,public] */;
100
101 /* bitmap svcctl_ServerType */
102 #define SV_TYPE_WORKSTATION ( 0x00000001 )
103 #define SV_TYPE_SERVER ( 0x00000002 )
104 #define SV_TYPE_SQLSERVER ( 0x00000004 )
105 #define SV_TYPE_DOMAIN_CTRL ( 0x00000008 )
106 #define SV_TYPE_DOMAIN_BAKCTRL ( 0x00000010 )
107 #define SV_TYPE_TIME_SOURCE ( 0x00000020 )
108 #define SV_TYPE_AFP ( 0x00000040 )
109 #define SV_TYPE_NOVELL ( 0x00000080 )
110 #define SV_TYPE_DOMAIN_MEMBER ( 0x00000100 )
111 #define SV_TYPE_PRINTQ_SERVER ( 0x00000200 )
112 #define SV_TYPE_DIALIN_SERVER ( 0x00000400 )
113 #define SV_TYPE_SERVER_UNIX ( 0x00000800 )
114 #define SV_TYPE_NT ( 0x00001000 )
115 #define SV_TYPE_WFW ( 0x00002000 )
116 #define SV_TYPE_SERVER_MFPN ( 0x00004000 )
117 #define SV_TYPE_SERVER_NT ( 0x00008000 )
118 #define SV_TYPE_POTENTIAL_BROWSER ( 0x00010000 )
119 #define SV_TYPE_BACKUP_BROWSER ( 0x00020000 )
120 #define SV_TYPE_MASTER_BROWSER ( 0x00040000 )
121 #define SV_TYPE_DOMAIN_MASTER ( 0x00080000 )
122 #define SV_TYPE_SERVER_OSF ( 0x00100000 )
123 #define SV_TYPE_SERVER_VMS ( 0x00200000 )
124 #define SV_TYPE_WIN95_PLUS ( 0x00400000 )
125 #define SV_TYPE_DFS_SERVER ( 0x00800000 )
126 #define SV_TYPE_ALTERNATE_XPORT ( 0x20000000 )
127 #define SV_TYPE_LOCAL_LIST_ONLY ( 0x40000000 )
128 #define SV_TYPE_DOMAIN_ENUM ( 0x80000000 )
129
130 enum SERVICE_CONTROL
131 #ifndef USE_UINT_ENUMS
132  {
133         SVCCTL_CONTROL_STOP=0x00000001,
134         SVCCTL_CONTROL_PAUSE=0x00000002,
135         SVCCTL_CONTROL_CONTINUE=0x00000003,
136         SVCCTL_CONTROL_INTERROGATE=0x00000004,
137         SVCCTL_CONTROL_SHUTDOWN=0x00000005
138 }
139 #else
140  { __donnot_use_enum_SERVICE_CONTROL=0x7FFFFFFF}
141 #define SVCCTL_CONTROL_STOP ( 0x00000001 )
142 #define SVCCTL_CONTROL_PAUSE ( 0x00000002 )
143 #define SVCCTL_CONTROL_CONTINUE ( 0x00000003 )
144 #define SVCCTL_CONTROL_INTERROGATE ( 0x00000004 )
145 #define SVCCTL_CONTROL_SHUTDOWN ( 0x00000005 )
146 #endif
147 ;
148
149 enum svcctl_ErrorControl
150 #ifndef USE_UINT_ENUMS
151  {
152         SVCCTL_SVC_ERROR_IGNORE=0x00000000,
153         SVCCTL_SVC_ERROR_NORMAL=0x00000001,
154         SVCCTL_SVC_ERROR_CRITICAL=0x00000002,
155         SVCCTL_SVC_ERROR_SEVERE=0x00000003
156 }
157 #else
158  { __donnot_use_enum_svcctl_ErrorControl=0x7FFFFFFF}
159 #define SVCCTL_SVC_ERROR_IGNORE ( 0x00000000 )
160 #define SVCCTL_SVC_ERROR_NORMAL ( 0x00000001 )
161 #define SVCCTL_SVC_ERROR_CRITICAL ( 0x00000002 )
162 #define SVCCTL_SVC_ERROR_SEVERE ( 0x00000003 )
163 #endif
164 ;
165
166 enum svcctl_StartType
167 #ifndef USE_UINT_ENUMS
168  {
169         SVCCTL_BOOT_START=0x00000000,
170         SVCCTL_SYSTEM_START=0x00000001,
171         SVCCTL_AUTO_START=0x00000002,
172         SVCCTL_DEMAND_START=0x00000003,
173         SVCCTL_DISABLED=0x00000004
174 }
175 #else
176  { __donnot_use_enum_svcctl_StartType=0x7FFFFFFF}
177 #define SVCCTL_BOOT_START ( 0x00000000 )
178 #define SVCCTL_SYSTEM_START ( 0x00000001 )
179 #define SVCCTL_AUTO_START ( 0x00000002 )
180 #define SVCCTL_DEMAND_START ( 0x00000003 )
181 #define SVCCTL_DISABLED ( 0x00000004 )
182 #endif
183 ;
184
185 enum svcctl_ServiceState
186 #ifndef USE_UINT_ENUMS
187  {
188         SERVICE_STATE_ACTIVE=0x00000001,
189         SERVICE_STATE_INACTIVE=0x00000002,
190         SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE)
191 }
192 #else
193  { __donnot_use_enum_svcctl_ServiceState=0x7FFFFFFF}
194 #define SERVICE_STATE_ACTIVE ( 0x00000001 )
195 #define SERVICE_STATE_INACTIVE ( 0x00000002 )
196 #define SERVICE_STATE_ALL ( (SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE) )
197 #endif
198 ;
199
200 /* bitmap svcctl_MgrAccessMask */
201 #define SC_RIGHT_MGR_CONNECT ( 0x0001 )
202 #define SC_RIGHT_MGR_CREATE_SERVICE ( 0x0002 )
203 #define SC_RIGHT_MGR_ENUMERATE_SERVICE ( 0x0004 )
204 #define SC_RIGHT_MGR_LOCK ( 0x0008 )
205 #define SC_RIGHT_MGR_QUERY_LOCK_STATUS ( 0x0010 )
206 #define SC_RIGHT_MGR_MODIFY_BOOT_CONFIG ( 0x0020 )
207
208 /* bitmap svcctl_ServiceAccessMask */
209 #define SC_RIGHT_SVC_QUERY_CONFIG ( 0x0001 )
210 #define SC_RIGHT_SVC_CHANGE_CONFIG ( 0x0002 )
211 #define SC_RIGHT_SVC_QUERY_STATUS ( 0x0004 )
212 #define SC_RIGHT_SVC_ENUMERATE_DEPENDENTS ( 0x0008 )
213 #define SC_RIGHT_SVC_START ( 0x0010 )
214 #define SC_RIGHT_SVC_STOP ( 0x0020 )
215 #define SC_RIGHT_SVC_PAUSE_CONTINUE ( 0x0040 )
216 #define SC_RIGHT_SVC_INTERROGATE ( 0x0080 )
217 #define SC_RIGHT_SVC_USER_DEFINED_CONTROL ( 0x0100 )
218
219 struct QUERY_SERVICE_CONFIG {
220         uint32_t service_type;
221         enum svcctl_StartType start_type;
222         enum svcctl_ErrorControl error_control;
223         const char *executablepath;/* [unique,range(0,8192),charset(UTF16)] */
224         const char *loadordergroup;/* [unique,range(0,8192),charset(UTF16)] */
225         uint32_t tag_id;
226         const char *dependencies;/* [unique,range(0,8192),charset(UTF16)] */
227         const char *startname;/* [unique,range(0,8192),charset(UTF16)] */
228         const char *displayname;/* [unique,range(0,8192),charset(UTF16)] */
229 }/* [gensize,public] */;
230
231 struct svcctl_ArgumentString {
232         const char *string;/* [unique,range(0,SC_MAX_ARGUMENT_LENGTH),charset(UTF16)] */
233 };
234
235 enum svcctl_ConfigLevel
236 #ifndef USE_UINT_ENUMS
237  {
238         SERVICE_CONFIG_DESCRIPTION=0x00000001,
239         SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002
240 }
241 #else
242  { __donnot_use_enum_svcctl_ConfigLevel=0x7FFFFFFF}
243 #define SERVICE_CONFIG_DESCRIPTION ( 0x00000001 )
244 #define SERVICE_CONFIG_FAILURE_ACTIONS ( 0x00000002 )
245 #endif
246 ;
247
248 struct SERVICE_DESCRIPTION {
249         const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
250 }/* [gensize,public] */;
251
252 enum SC_ACTION_TYPE
253 #ifndef USE_UINT_ENUMS
254  {
255         SC_ACTION_NONE=0,
256         SC_ACTION_RESTART=1,
257         SC_ACTION_REBOOT=2,
258         SC_ACTION_RUN_COMMAND=3
259 }
260 #else
261  { __donnot_use_enum_SC_ACTION_TYPE=0x7FFFFFFF}
262 #define SC_ACTION_NONE ( 0 )
263 #define SC_ACTION_RESTART ( 1 )
264 #define SC_ACTION_REBOOT ( 2 )
265 #define SC_ACTION_RUN_COMMAND ( 3 )
266 #endif
267 ;
268
269 struct SC_ACTION {
270         enum SC_ACTION_TYPE type;
271         uint32_t delay;
272 };
273
274 struct SERVICE_FAILURE_ACTIONS {
275         uint32_t reset_period;
276         const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
277         const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
278         uint32_t num_actions;/* [range(0,1024)] */
279         struct SC_ACTION *actions;/* [relative,size_is(num_actions)] */
280 }/* [gensize,public] */;
281
282 enum svcctl_StatusLevel
283 #ifndef USE_UINT_ENUMS
284  {
285         SVC_STATUS_PROCESS_INFO=0x00000000
286 }
287 #else
288  { __donnot_use_enum_svcctl_StatusLevel=0x7FFFFFFF}
289 #define SVC_STATUS_PROCESS_INFO ( 0x00000000 )
290 #endif
291 ;
292
293
294 struct svcctl_CloseServiceHandle {
295         struct {
296                 struct policy_handle *handle;/* [ref] */
297         } in;
298
299         struct {
300                 struct policy_handle *handle;/* [ref] */
301                 WERROR result;
302         } out;
303
304 };
305
306
307 struct svcctl_ControlService {
308         struct {
309                 struct policy_handle *handle;/* [ref] */
310                 enum SERVICE_CONTROL control;
311         } in;
312
313         struct {
314                 struct SERVICE_STATUS *service_status;/* [ref] */
315                 WERROR result;
316         } out;
317
318 };
319
320
321 struct svcctl_DeleteService {
322         struct {
323                 struct policy_handle *handle;/* [ref] */
324         } in;
325
326         struct {
327                 WERROR result;
328         } out;
329
330 };
331
332
333 struct svcctl_LockServiceDatabase {
334         struct {
335                 struct policy_handle *handle;/* [ref] */
336         } in;
337
338         struct {
339                 struct policy_handle *lock;/* [ref] */
340                 WERROR result;
341         } out;
342
343 };
344
345
346 struct svcctl_QueryServiceObjectSecurity {
347         struct {
348                 struct policy_handle *handle;/* [ref] */
349                 uint32_t security_flags;
350                 uint32_t offered;/* [range(0,0x40000)] */
351         } in;
352
353         struct {
354                 uint8_t *buffer;/* [ref,size_is(offered)] */
355                 uint32_t *needed;/* [ref,range(0,0x40000)] */
356                 WERROR result;
357         } out;
358
359 };
360
361
362 struct svcctl_SetServiceObjectSecurity {
363         struct {
364                 struct policy_handle *handle;/* [ref] */
365                 uint32_t security_flags;
366                 uint8_t *buffer;/* [ref,size_is(offered)] */
367                 uint32_t offered;
368         } in;
369
370         struct {
371                 WERROR result;
372         } out;
373
374 };
375
376
377 struct svcctl_QueryServiceStatus {
378         struct {
379                 struct policy_handle *handle;/* [ref] */
380         } in;
381
382         struct {
383                 struct SERVICE_STATUS *service_status;/* [ref] */
384                 WERROR result;
385         } out;
386
387 };
388
389
390 struct svcctl_SetServiceStatus {
391         struct {
392                 WERROR result;
393         } out;
394
395 };
396
397
398 struct svcctl_UnlockServiceDatabase {
399         struct {
400                 struct policy_handle *lock;/* [ref] */
401         } in;
402
403         struct {
404                 struct policy_handle *lock;/* [ref] */
405                 WERROR result;
406         } out;
407
408 };
409
410
411 struct svcctl_NotifyBootConfigStatus {
412         struct {
413                 WERROR result;
414         } out;
415
416 };
417
418
419 struct svcctl_SCSetServiceBitsW {
420         struct {
421                 struct policy_handle *handle;/* [ref] */
422                 uint32_t bits;
423                 uint32_t bitson;
424                 uint32_t immediate;
425         } in;
426
427         struct {
428                 WERROR result;
429         } out;
430
431 };
432
433
434 struct svcctl_ChangeServiceConfigW {
435         struct {
436                 struct policy_handle *handle;/* [ref] */
437                 uint32_t type;
438                 enum svcctl_StartType start_type;
439                 enum svcctl_ErrorControl error_control;
440                 const char *binary_path;/* [unique,charset(UTF16)] */
441                 const char *load_order_group;/* [unique,charset(UTF16)] */
442                 const char *dependencies;/* [unique,charset(UTF16)] */
443                 const char *service_start_name;/* [unique,charset(UTF16)] */
444                 const char *password;/* [unique,charset(UTF16)] */
445                 const char *display_name;/* [unique,charset(UTF16)] */
446         } in;
447
448         struct {
449                 uint32_t *tag_id;/* [ref] */
450                 WERROR result;
451         } out;
452
453 };
454
455
456 struct svcctl_CreateServiceW {
457         struct {
458                 struct policy_handle *scmanager_handle;/* [ref] */
459                 const char *ServiceName;/* [charset(UTF16)] */
460                 const char *DisplayName;/* [unique,charset(UTF16)] */
461                 uint32_t desired_access;
462                 uint32_t type;
463                 enum svcctl_StartType start_type;
464                 enum svcctl_ErrorControl error_control;
465                 const char *binary_path;/* [charset(UTF16)] */
466                 const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
467                 uint8_t *dependencies;/* [unique,size_is(dependencies_size)] */
468                 uint32_t dependencies_size;
469                 const char *service_start_name;/* [unique,charset(UTF16)] */
470                 uint8_t *password;/* [unique,size_is(password_size)] */
471                 uint32_t password_size;
472                 uint32_t *TagId;/* [unique] */
473         } in;
474
475         struct {
476                 struct policy_handle *handle;/* [ref] */
477                 uint32_t *TagId;/* [unique] */
478                 WERROR result;
479         } out;
480
481 };
482
483
484 struct svcctl_EnumDependentServicesW {
485         struct {
486                 struct policy_handle *service;/* [ref] */
487                 enum svcctl_ServiceState state;
488                 uint32_t offered;/* [range(0,0x40000)] */
489         } in;
490
491         struct {
492                 uint8_t *service_status;/* [ref,size_is(offered)] */
493                 uint32_t *needed;/* [ref,range(0,0x40000)] */
494                 uint32_t *services_returned;/* [ref,range(0,0x40000)] */
495                 WERROR result;
496         } out;
497
498 };
499
500
501 struct svcctl_EnumServicesStatusW {
502         struct {
503                 struct policy_handle *handle;/* [ref] */
504                 uint32_t type;
505                 enum svcctl_ServiceState state;
506                 uint32_t offered;/* [range(0,0x40000)] */
507                 uint32_t *resume_handle;/* [unique] */
508         } in;
509
510         struct {
511                 uint8_t *service;/* [ref,size_is(offered)] */
512                 uint32_t *needed;/* [ref,range(0,0x40000)] */
513                 uint32_t *services_returned;/* [ref,range(0,0x40000)] */
514                 uint32_t *resume_handle;/* [unique] */
515                 WERROR result;
516         } out;
517
518 };
519
520
521 struct svcctl_OpenSCManagerW {
522         struct {
523                 const char *MachineName;/* [unique,charset(UTF16)] */
524                 const char *DatabaseName;/* [unique,charset(UTF16)] */
525                 uint32_t access_mask;
526         } in;
527
528         struct {
529                 struct policy_handle *handle;/* [ref] */
530                 WERROR result;
531         } out;
532
533 };
534
535
536 struct svcctl_OpenServiceW {
537         struct {
538                 struct policy_handle *scmanager_handle;/* [ref] */
539                 const char *ServiceName;/* [charset(UTF16)] */
540                 uint32_t access_mask;
541         } in;
542
543         struct {
544                 struct policy_handle *handle;/* [ref] */
545                 WERROR result;
546         } out;
547
548 };
549
550
551 struct svcctl_QueryServiceConfigW {
552         struct {
553                 struct policy_handle *handle;/* [ref] */
554                 uint32_t offered;/* [range(0,8192)] */
555         } in;
556
557         struct {
558                 struct QUERY_SERVICE_CONFIG *query;/* [ref] */
559                 uint32_t *needed;/* [ref,range(0,8192)] */
560                 WERROR result;
561         } out;
562
563 };
564
565
566 struct svcctl_QueryServiceLockStatusW {
567         struct {
568                 struct policy_handle *handle;/* [ref] */
569                 uint32_t offered;
570         } in;
571
572         struct {
573                 struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
574                 uint32_t *needed;/* [ref] */
575                 WERROR result;
576         } out;
577
578 };
579
580
581 struct svcctl_StartServiceW {
582         struct {
583                 struct policy_handle *handle;/* [ref] */
584                 uint32_t NumArgs;/* [range(0,SC_MAX_ARGUMENTS)] */
585                 struct svcctl_ArgumentString *Arguments;/* [unique,size_is(NumArgs)] */
586         } in;
587
588         struct {
589                 WERROR result;
590         } out;
591
592 };
593
594
595 struct svcctl_GetServiceDisplayNameW {
596         struct {
597                 struct policy_handle *handle;/* [ref] */
598                 const char *service_name;/* [unique,charset(UTF16)] */
599                 uint32_t *display_name_length;/* [unique] */
600         } in;
601
602         struct {
603                 const char **display_name;/* [ref,charset(UTF16)] */
604                 uint32_t *display_name_length;/* [unique] */
605                 WERROR result;
606         } out;
607
608 };
609
610
611 struct svcctl_GetServiceKeyNameW {
612         struct {
613                 struct policy_handle *handle;/* [ref] */
614                 const char *service_name;/* [unique,charset(UTF16)] */
615                 uint32_t *display_name_length;/* [unique] */
616         } in;
617
618         struct {
619                 const char **key_name;/* [ref,charset(UTF16)] */
620                 uint32_t *display_name_length;/* [unique] */
621                 WERROR result;
622         } out;
623
624 };
625
626
627 struct svcctl_SCSetServiceBitsA {
628         struct {
629                 struct policy_handle *handle;/* [ref] */
630                 uint32_t bits;
631                 uint32_t bitson;
632                 uint32_t immediate;
633         } in;
634
635         struct {
636                 WERROR result;
637         } out;
638
639 };
640
641
642 struct svcctl_ChangeServiceConfigA {
643         struct {
644                 struct policy_handle *handle;/* [ref] */
645                 uint32_t type;
646                 enum svcctl_StartType start_type;
647                 enum svcctl_ErrorControl error_control;
648                 const char *binary_path;/* [unique,charset(UTF16)] */
649                 const char *load_order_group;/* [unique,charset(UTF16)] */
650                 const char *dependencies;/* [unique,charset(UTF16)] */
651                 const char *service_start_name;/* [unique,charset(UTF16)] */
652                 const char *password;/* [unique,charset(UTF16)] */
653                 const char *display_name;/* [unique,charset(UTF16)] */
654         } in;
655
656         struct {
657                 uint32_t *tag_id;/* [ref] */
658                 WERROR result;
659         } out;
660
661 };
662
663
664 struct svcctl_CreateServiceA {
665         struct {
666                 struct policy_handle *handle;/* [ref] */
667                 const char *ServiceName;/* [unique,charset(UTF16)] */
668                 const char *DisplayName;/* [unique,charset(UTF16)] */
669                 uint32_t desired_access;
670                 uint32_t type;
671                 enum svcctl_StartType start_type;
672                 enum svcctl_ErrorControl error_control;
673                 const char *binary_path;/* [unique,charset(UTF16)] */
674                 const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
675                 const char *dependencies;/* [unique,charset(UTF16)] */
676                 const char *service_start_name;/* [unique,charset(UTF16)] */
677                 const char *password;/* [unique,charset(UTF16)] */
678         } in;
679
680         struct {
681                 uint32_t *TagId;/* [unique] */
682                 WERROR result;
683         } out;
684
685 };
686
687
688 struct svcctl_EnumDependentServicesA {
689         struct {
690                 struct policy_handle *service;/* [ref] */
691                 enum svcctl_ServiceState state;
692                 uint32_t offered;
693         } in;
694
695         struct {
696                 struct ENUM_SERVICE_STATUSA *service_status;/* [unique] */
697                 uint32_t *needed;/* [ref] */
698                 uint32_t *services_returned;/* [ref] */
699                 WERROR result;
700         } out;
701
702 };
703
704
705 struct svcctl_EnumServicesStatusA {
706         struct {
707                 struct policy_handle *handle;/* [ref] */
708                 uint32_t type;
709                 enum svcctl_ServiceState state;
710                 uint32_t offered;
711                 uint32_t *resume_handle;/* [unique] */
712         } in;
713
714         struct {
715                 uint8_t *service;/* [size_is(offered)] */
716                 uint32_t *needed;/* [ref] */
717                 uint32_t *services_returned;/* [ref] */
718                 uint32_t *resume_handle;/* [unique] */
719                 WERROR result;
720         } out;
721
722 };
723
724
725 struct svcctl_OpenSCManagerA {
726         struct {
727                 const char *MachineName;/* [unique,charset(UTF16)] */
728                 const char *DatabaseName;/* [unique,charset(UTF16)] */
729                 uint32_t access_mask;
730         } in;
731
732         struct {
733                 struct policy_handle *handle;/* [ref] */
734                 WERROR result;
735         } out;
736
737 };
738
739
740 struct svcctl_OpenServiceA {
741         struct {
742                 struct policy_handle *scmanager_handle;/* [ref] */
743                 const char *ServiceName;/* [unique,charset(UTF16)] */
744                 uint32_t access_mask;
745         } in;
746
747         struct {
748                 WERROR result;
749         } out;
750
751 };
752
753
754 struct svcctl_QueryServiceConfigA {
755         struct {
756                 struct policy_handle *handle;/* [ref] */
757                 uint32_t offered;
758         } in;
759
760         struct {
761                 uint8_t *query;
762                 uint32_t *needed;/* [ref] */
763                 WERROR result;
764         } out;
765
766 };
767
768
769 struct svcctl_QueryServiceLockStatusA {
770         struct {
771                 struct policy_handle *handle;/* [ref] */
772                 uint32_t offered;
773         } in;
774
775         struct {
776                 struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
777                 uint32_t *needed;/* [ref] */
778                 WERROR result;
779         } out;
780
781 };
782
783
784 struct svcctl_StartServiceA {
785         struct {
786                 struct policy_handle *handle;/* [ref] */
787                 uint32_t NumArgs;
788                 const char *Arguments;/* [unique,charset(UTF16)] */
789         } in;
790
791         struct {
792                 WERROR result;
793         } out;
794
795 };
796
797
798 struct svcctl_GetServiceDisplayNameA {
799         struct {
800                 struct policy_handle *handle;/* [ref] */
801                 const char *service_name;/* [unique,charset(UTF16)] */
802                 uint32_t *display_name_length;/* [unique] */
803         } in;
804
805         struct {
806                 const char **display_name;/* [ref,charset(UTF16)] */
807                 uint32_t *display_name_length;/* [unique] */
808                 WERROR result;
809         } out;
810
811 };
812
813
814 struct svcctl_GetServiceKeyNameA {
815         struct {
816                 struct policy_handle *handle;/* [ref] */
817                 const char *service_name;/* [unique,charset(UTF16)] */
818                 uint32_t *display_name_length;/* [unique] */
819         } in;
820
821         struct {
822                 const char **key_name;/* [ref,charset(UTF16)] */
823                 uint32_t *display_name_length;/* [unique] */
824                 WERROR result;
825         } out;
826
827 };
828
829
830 struct svcctl_GetCurrentGroupeStateW {
831         struct {
832                 WERROR result;
833         } out;
834
835 };
836
837
838 struct svcctl_EnumServiceGroupW {
839         struct {
840                 WERROR result;
841         } out;
842
843 };
844
845
846 struct svcctl_ChangeServiceConfig2A {
847         struct {
848                 struct policy_handle *handle;/* [ref] */
849                 uint32_t info_level;
850                 uint8_t *info;/* [unique] */
851         } in;
852
853         struct {
854                 WERROR result;
855         } out;
856
857 };
858
859
860 struct svcctl_ChangeServiceConfig2W {
861         struct {
862                 struct policy_handle *handle;/* [ref] */
863                 uint32_t info_level;
864                 uint8_t *info;/* [unique] */
865         } in;
866
867         struct {
868                 WERROR result;
869         } out;
870
871 };
872
873
874 struct svcctl_QueryServiceConfig2A {
875         struct {
876                 struct policy_handle *handle;/* [ref] */
877                 enum svcctl_ConfigLevel info_level;
878                 uint32_t offered;
879         } in;
880
881         struct {
882                 uint8_t *buffer;
883                 uint32_t *needed;/* [ref] */
884                 WERROR result;
885         } out;
886
887 };
888
889
890 struct svcctl_QueryServiceConfig2W {
891         struct {
892                 struct policy_handle *handle;/* [ref] */
893                 enum svcctl_ConfigLevel info_level;
894                 uint32_t offered;/* [range(0,8192)] */
895         } in;
896
897         struct {
898                 uint8_t *buffer;/* [ref,size_is(offered)] */
899                 uint32_t *needed;/* [ref,range(0,8192)] */
900                 WERROR result;
901         } out;
902
903 };
904
905
906 struct svcctl_QueryServiceStatusEx {
907         struct {
908                 struct policy_handle *handle;/* [ref] */
909                 enum svcctl_StatusLevel info_level;
910                 uint32_t offered;/* [range(0,8192)] */
911         } in;
912
913         struct {
914                 uint8_t *buffer;/* [ref,size_is(offered)] */
915                 uint32_t *needed;/* [ref,range(0,8192)] */
916                 WERROR result;
917         } out;
918
919 };
920
921
922 struct EnumServicesStatusExA {
923         struct {
924                 struct policy_handle *scmanager;/* [ref] */
925                 uint32_t info_level;
926                 uint32_t type;
927                 enum svcctl_ServiceState state;
928                 uint32_t offered;
929                 uint32_t *resume_handle;/* [unique] */
930         } in;
931
932         struct {
933                 uint8_t *services;
934                 uint32_t *needed;/* [ref] */
935                 uint32_t *service_returned;/* [ref] */
936                 const char **group_name;/* [ref,charset(UTF16)] */
937                 uint32_t *resume_handle;/* [unique] */
938                 WERROR result;
939         } out;
940
941 };
942
943
944 struct EnumServicesStatusExW {
945         struct {
946                 struct policy_handle *scmanager;/* [ref] */
947                 uint32_t info_level;
948                 uint32_t type;
949                 enum svcctl_ServiceState state;
950                 uint32_t offered;/* [range(0,0x40000)] */
951                 const char *group_name;/* [unique,charset(UTF16)] */
952                 uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
953         } in;
954
955         struct {
956                 uint8_t *services;/* [ref,size_is(offered)] */
957                 uint32_t *needed;/* [ref,range(0,0x40000)] */
958                 uint32_t *service_returned;/* [ref,range(0,0x40000)] */
959                 uint32_t *resume_handle;/* [unique,range(0,0x40000)] */
960                 WERROR result;
961         } out;
962
963 };
964
965
966 struct svcctl_SCSendTSMessage {
967         struct {
968                 WERROR result;
969         } out;
970
971 };
972
973 #endif /* _HEADER_svcctl */