1 /* header auto-generated by pidl */
8 #define SERVICE_TYPE_KERNEL_DRIVER ( 0x01 )
9 #define SERVICE_TYPE_FS_DRIVER ( 0x02 )
10 #define SERVICE_TYPE_ADAPTER ( 0x04 )
11 #define SERVICE_TYPE_RECOGNIZER_DRIVER ( 0x08 )
12 #define SERVICE_TYPE_DRIVER ( SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER )
13 #define SERVICE_TYPE_WIN32_OWN_PROCESS ( 0x10 )
14 #define SERVICE_TYPE_WIN32_SHARE_PROCESS ( 0x20 )
15 #define SERVICE_TYPE_WIN32 ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS )
16 #define SERVICE_STATE_ACTIVE ( 0x01 )
17 #define SERVICE_STATE_INACTIVE ( 0x02 )
18 #define SERVICE_STATE_ALL ( 0x03 )
19 #define SV_TYPE_ALL ( 0xFFFFFFFF )
20 struct SERVICE_LOCK_STATUS {
22 const char *lock_owner;/* [unique,charset(UTF16)] */
23 uint32_t lock_duration;
26 struct SERVICE_STATUS {
29 uint32_t controls_accepted;
30 WERROR win32_exit_code;
31 uint32_t service_exit_code;
36 struct ENUM_SERVICE_STATUS {
37 const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
38 const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
39 struct SERVICE_STATUS status;
42 /* bitmap svcctl_ServerType */
43 #define SV_TYPE_WORKSTATION ( 0x00000001 )
44 #define SV_TYPE_SERVER ( 0x00000002 )
45 #define SV_TYPE_SQLSERVER ( 0x00000004 )
46 #define SV_TYPE_DOMAIN_CTRL ( 0x00000008 )
47 #define SV_TYPE_DOMAIN_BAKCTRL ( 0x00000010 )
48 #define SV_TYPE_TIME_SOURCE ( 0x00000020 )
49 #define SV_TYPE_AFP ( 0x00000040 )
50 #define SV_TYPE_NOVELL ( 0x00000080 )
51 #define SV_TYPE_DOMAIN_MEMBER ( 0x00000100 )
52 #define SV_TYPE_PRINTQ_SERVER ( 0x00000200 )
53 #define SV_TYPE_DIALIN_SERVER ( 0x00000400 )
54 #define SV_TYPE_SERVER_UNIX ( 0x00000800 )
55 #define SV_TYPE_NT ( 0x00001000 )
56 #define SV_TYPE_WFW ( 0x00002000 )
57 #define SV_TYPE_SERVER_MFPN ( 0x00004000 )
58 #define SV_TYPE_SERVER_NT ( 0x00008000 )
59 #define SV_TYPE_POTENTIAL_BROWSER ( 0x00010000 )
60 #define SV_TYPE_BACKUP_BROWSER ( 0x00020000 )
61 #define SV_TYPE_MASTER_BROWSER ( 0x00040000 )
62 #define SV_TYPE_DOMAIN_MASTER ( 0x00080000 )
63 #define SV_TYPE_SERVER_OSF ( 0x00100000 )
64 #define SV_TYPE_SERVER_VMS ( 0x00200000 )
65 #define SV_TYPE_WIN95_PLUS ( 0x00400000 )
66 #define SV_TYPE_DFS_SERVER ( 0x00800000 )
67 #define SV_TYPE_ALTERNATE_XPORT ( 0x20000000 )
68 #define SV_TYPE_LOCAL_LIST_ONLY ( 0x40000000 )
69 #define SV_TYPE_DOMAIN_ENUM ( 0x80000000 )
72 #ifndef USE_UINT_ENUMS
77 { __donnot_use_enum_SERVICE_CONTROL=0x7FFFFFFF}
83 struct svcctl_CloseServiceHandle {
85 struct policy_handle *handle;/* [ref] */
89 struct policy_handle *handle;/* [ref] */
96 struct svcctl_ControlService {
98 struct policy_handle *handle;/* [ref] */
103 struct SERVICE_STATUS *service_status;/* [ref] */
110 struct svcctl_DeleteService {
112 struct policy_handle *handle;/* [ref] */
122 struct svcctl_LockServiceDatabase {
124 struct policy_handle *handle;/* [ref] */
128 struct policy_handle *lock;/* [ref] */
135 struct svcctl_QueryServiceObjectSecurity {
137 struct policy_handle *handle;/* [ref] */
138 uint32_t security_flags;
139 uint32_t buffer_size;/* [range(0,0x40000)] */
143 uint8_t *buffer;/* [ref,size_is(buffer_size)] */
144 uint32_t *needed;/* [ref,range(0,0x40000)] */
151 struct svcctl_SetServiceObjectSecurity {
153 struct policy_handle *handle;/* [ref] */
154 uint32_t security_flags;
155 uint8_t *buffer;/* [ref,size_is(buffer_size)] */
156 uint32_t buffer_size;
166 struct svcctl_QueryServiceStatus {
168 struct policy_handle *handle;/* [ref] */
172 struct SERVICE_STATUS *service_status;/* [ref] */
179 struct svcctl_SetServiceStatus {
187 struct svcctl_UnlockServiceDatabase {
189 struct policy_handle *lock;/* [ref] */
193 struct policy_handle *lock;/* [ref] */
200 struct svcctl_NotifyBootConfigStatus {
208 struct svcctl_SCSetServiceBitsW {
210 struct policy_handle *handle;/* [ref] */
223 struct svcctl_ChangeServiceConfigW {
225 struct policy_handle *handle;/* [ref] */
229 const char *binary_path;/* [unique,charset(UTF16)] */
230 const char *load_order_group;/* [unique,charset(UTF16)] */
231 const char *dependencies;/* [unique,charset(UTF16)] */
232 const char *service_start_name;/* [unique,charset(UTF16)] */
233 const char *password;/* [unique,charset(UTF16)] */
234 const char *display_name;/* [unique,charset(UTF16)] */
238 uint32_t *tag_id;/* [ref] */
245 struct svcctl_CreateServiceW {
247 struct policy_handle *scmanager_handle;/* [ref] */
248 const char *ServiceName;/* [charset(UTF16)] */
249 const char *DisplayName;/* [unique,charset(UTF16)] */
250 uint32_t desired_access;
253 uint32_t error_control;
254 const char *binary_path;/* [charset(UTF16)] */
255 const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
256 uint8_t *dependencies;/* [unique,size_is(dependencies_size)] */
257 uint32_t dependencies_size;
258 const char *service_start_name;/* [unique,charset(UTF16)] */
259 uint8_t *password;/* [unique,size_is(password_size)] */
260 uint32_t password_size;
261 uint32_t *TagId;/* [unique] */
265 struct policy_handle *handle;/* [ref] */
266 uint32_t *TagId;/* [unique] */
273 struct svcctl_EnumDependentServicesW {
275 struct policy_handle *service;/* [ref] */
277 uint32_t buf_size;/* [range(0,0x40000)] */
281 uint8_t *service_status;/* [ref,size_is(buf_size)] */
282 uint32_t *bytes_needed;/* [ref,range(0,0x40000)] */
283 uint32_t *services_returned;/* [ref,range(0,0x40000)] */
290 struct svcctl_EnumServicesStatusW {
292 struct policy_handle *handle;/* [ref] */
296 uint32_t *resume_handle;/* [unique] */
300 uint8_t *service;/* [size_is(buf_size)] */
301 uint32_t *bytes_needed;/* [ref] */
302 uint32_t *services_returned;/* [ref] */
303 uint32_t *resume_handle;/* [unique] */
310 struct svcctl_OpenSCManagerW {
312 const char *MachineName;/* [unique,charset(UTF16)] */
313 const char *DatabaseName;/* [unique,charset(UTF16)] */
314 uint32_t access_mask;
318 struct policy_handle *handle;/* [ref] */
325 struct svcctl_OpenServiceW {
327 struct policy_handle *scmanager_handle;/* [ref] */
328 const char *ServiceName;/* [charset(UTF16)] */
329 uint32_t access_mask;
333 struct policy_handle *handle;/* [ref] */
340 struct svcctl_QueryServiceConfigW {
342 struct policy_handle *handle;/* [ref] */
348 uint32_t *bytes_needed;/* [ref] */
355 struct svcctl_QueryServiceLockStatusW {
357 struct policy_handle *handle;/* [ref] */
362 struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
363 uint32_t *required_buf_size;/* [ref] */
370 struct svcctl_StartServiceW {
372 struct policy_handle *handle;/* [ref] */
374 const char *Arguments;/* [unique,charset(UTF16)] */
384 struct svcctl_GetServiceDisplayNameW {
386 struct policy_handle *handle;/* [ref] */
387 const char *service_name;/* [unique,charset(UTF16)] */
388 uint32_t *display_name_length;/* [unique] */
392 const char **display_name;/* [ref,charset(UTF16)] */
393 uint32_t *display_name_length;/* [unique] */
400 struct svcctl_GetServiceKeyNameW {
402 struct policy_handle *handle;/* [ref] */
403 const char *service_name;/* [unique,charset(UTF16)] */
404 uint32_t *display_name_length;/* [unique] */
408 const char **key_name;/* [ref,charset(UTF16)] */
409 uint32_t *display_name_length;/* [unique] */
416 struct svcctl_SCSetServiceBitsA {
418 struct policy_handle *handle;/* [ref] */
431 struct svcctl_ChangeServiceConfigA {
433 struct policy_handle *handle;/* [ref] */
437 const char *binary_path;/* [unique,charset(UTF16)] */
438 const char *load_order_group;/* [unique,charset(UTF16)] */
439 const char *dependencies;/* [unique,charset(UTF16)] */
440 const char *service_start_name;/* [unique,charset(UTF16)] */
441 const char *password;/* [unique,charset(UTF16)] */
442 const char *display_name;/* [unique,charset(UTF16)] */
446 uint32_t *tag_id;/* [ref] */
453 struct svcctl_CreateServiceA {
455 struct policy_handle *handle;/* [ref] */
456 const char *ServiceName;/* [unique,charset(UTF16)] */
457 const char *DisplayName;/* [unique,charset(UTF16)] */
458 uint32_t desired_access;
461 uint32_t error_control;
462 const char *binary_path;/* [unique,charset(UTF16)] */
463 const char *LoadOrderGroupKey;/* [unique,charset(UTF16)] */
464 const char *dependencies;/* [unique,charset(UTF16)] */
465 const char *service_start_name;/* [unique,charset(UTF16)] */
466 const char *password;/* [unique,charset(UTF16)] */
470 uint32_t *TagId;/* [unique] */
477 struct svcctl_EnumDependentServicesA {
479 struct policy_handle *service;/* [ref] */
485 struct ENUM_SERVICE_STATUS *service_status;/* [unique] */
486 uint32_t *bytes_needed;/* [ref] */
487 uint32_t *services_returned;/* [ref] */
494 struct svcctl_EnumServicesStatusA {
496 struct policy_handle *handle;/* [ref] */
500 uint32_t *resume_handle;/* [unique] */
504 uint8_t *service;/* [size_is(buf_size)] */
505 uint32_t *bytes_needed;/* [ref] */
506 uint32_t *services_returned;/* [ref] */
507 uint32_t *resume_handle;/* [unique] */
514 struct svcctl_OpenSCManagerA {
516 const char *MachineName;/* [unique,charset(UTF16)] */
517 const char *DatabaseName;/* [unique,charset(UTF16)] */
518 uint32_t access_mask;
522 struct policy_handle *handle;/* [ref] */
529 struct svcctl_OpenServiceA {
531 struct policy_handle *scmanager_handle;/* [ref] */
532 const char *ServiceName;/* [unique,charset(UTF16)] */
533 uint32_t access_mask;
543 struct svcctl_QueryServiceConfigA {
545 struct policy_handle *handle;/* [ref] */
551 uint32_t *bytes_needed;/* [ref] */
558 struct svcctl_QueryServiceLockStatusA {
560 struct policy_handle *handle;/* [ref] */
565 struct SERVICE_LOCK_STATUS *lock_status;/* [ref] */
566 uint32_t *required_buf_size;/* [ref] */
573 struct svcctl_StartServiceA {
575 struct policy_handle *handle;/* [ref] */
577 const char *Arguments;/* [unique,charset(UTF16)] */
587 struct svcctl_GetServiceDisplayNameA {
589 struct policy_handle *handle;/* [ref] */
590 const char *service_name;/* [unique,charset(UTF16)] */
591 uint32_t *display_name_length;/* [unique] */
595 const char **display_name;/* [ref,charset(UTF16)] */
596 uint32_t *display_name_length;/* [unique] */
603 struct svcctl_GetServiceKeyNameA {
605 struct policy_handle *handle;/* [ref] */
606 const char *service_name;/* [unique,charset(UTF16)] */
607 uint32_t *display_name_length;/* [unique] */
611 const char **key_name;/* [ref,charset(UTF16)] */
612 uint32_t *display_name_length;/* [unique] */
619 struct svcctl_GetCurrentGroupeStateW {
627 struct svcctl_EnumServiceGroupW {
635 struct svcctl_ChangeServiceConfig2A {
637 struct policy_handle *handle;/* [ref] */
639 uint8_t *info;/* [unique] */
649 struct svcctl_ChangeServiceConfig2W {
651 struct policy_handle *handle;/* [ref] */
653 uint8_t *info;/* [unique] */
663 struct svcctl_QueryServiceConfig2A {
665 struct policy_handle *handle;/* [ref] */
672 uint32_t *bytes_needed;/* [ref] */
679 struct svcctl_QueryServiceConfig2W {
681 struct policy_handle *handle;/* [ref] */
688 uint32_t *bytes_needed;/* [ref] */
695 struct svcctl_QueryServiceStatusEx {
697 struct policy_handle *handle;/* [ref] */
704 uint32_t *bytes_needed;/* [ref] */
711 struct EnumServicesStatusExA {
713 struct policy_handle *scmanager;/* [ref] */
718 uint32_t *resume_handle;/* [unique] */
723 uint32_t *bytes_needed;/* [ref] */
724 uint32_t *service_returned;/* [ref] */
725 const char **group_name;/* [ref,charset(UTF16)] */
726 uint32_t *resume_handle;/* [unique] */
733 struct EnumServicesStatusExW {
735 struct policy_handle *scmanager;/* [ref] */
740 uint32_t *resume_handle;/* [unique] */
745 uint32_t *bytes_needed;/* [ref] */
746 uint32_t *service_returned;/* [ref] */
747 const char **group_name;/* [ref,charset(UTF16)] */
748 uint32_t *resume_handle;/* [unique] */
755 struct svcctl_SCSendTSMessage {
762 #endif /* _HEADER_svcctl */