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}
82 /* bitmap svcctl_MgrAccessMask */
83 #define SC_RIGHT_MGR_CONNECT ( 0x0001 )
84 #define SC_RIGHT_MGR_CREATE_SERVICE ( 0x0002 )
85 #define SC_RIGHT_MGR_ENUMERATE_SERVICE ( 0x0004 )
86 #define SC_RIGHT_MGR_LOCK ( 0x0008 )
87 #define SC_RIGHT_MGR_QUERY_LOCK_STATUS ( 0x0010 )
88 #define SC_RIGHT_MGR_MODIFY_BOOT_CONFIG ( 0x0020 )
90 /* bitmap svcctl_ServiceAccessMask */
91 #define SC_RIGHT_SVC_QUERY_CONFIG ( 0x0001 )
92 #define SC_RIGHT_SVC_CHANGE_CONFIG ( 0x0002 )
93 #define SC_RIGHT_SVC_QUERY_STATUS ( 0x0004 )
94 #define SC_RIGHT_SVC_ENUMERATE_DEPENDENTS ( 0x0008 )
95 #define SC_RIGHT_SVC_START ( 0x0010 )
96 #define SC_RIGHT_SVC_STOP ( 0x0020 )
97 #define SC_RIGHT_SVC_PAUSE_CONTINUE ( 0x0040 )
98 #define SC_RIGHT_SVC_INTERROGATE ( 0x0080 )
99 #define SC_RIGHT_SVC_USER_DEFINED_CONTROL ( 0x0100 )
101 struct QUERY_SERVICE_CONFIG
{
102 uint32_t service_type
;
104 uint32_t error_control
;
105 const char *executablepath
;/* [unique,range(0,8192),charset(UTF16)] */
106 const char *loadordergroup
;/* [unique,range(0,8192),charset(UTF16)] */
108 const char *dependencies
;/* [unique,range(0,8192),charset(UTF16)] */
109 const char *startname
;/* [unique,range(0,8192),charset(UTF16)] */
110 const char *displayname
;/* [unique,range(0,8192),charset(UTF16)] */
111 }/* [gensize,public] */;
114 struct svcctl_CloseServiceHandle
{
116 struct policy_handle
*handle
;/* [ref] */
120 struct policy_handle
*handle
;/* [ref] */
127 struct svcctl_ControlService
{
129 struct policy_handle
*handle
;/* [ref] */
134 struct SERVICE_STATUS
*service_status
;/* [ref] */
141 struct svcctl_DeleteService
{
143 struct policy_handle
*handle
;/* [ref] */
153 struct svcctl_LockServiceDatabase
{
155 struct policy_handle
*handle
;/* [ref] */
159 struct policy_handle
*lock
;/* [ref] */
166 struct svcctl_QueryServiceObjectSecurity
{
168 struct policy_handle
*handle
;/* [ref] */
169 uint32_t security_flags
;
170 uint32_t buffer_size
;/* [range(0,0x40000)] */
174 uint8_t *buffer
;/* [ref,size_is(buffer_size)] */
175 uint32_t *needed
;/* [ref,range(0,0x40000)] */
182 struct svcctl_SetServiceObjectSecurity
{
184 struct policy_handle
*handle
;/* [ref] */
185 uint32_t security_flags
;
186 uint8_t *buffer
;/* [ref,size_is(buffer_size)] */
187 uint32_t buffer_size
;
197 struct svcctl_QueryServiceStatus
{
199 struct policy_handle
*handle
;/* [ref] */
203 struct SERVICE_STATUS
*service_status
;/* [ref] */
210 struct svcctl_SetServiceStatus
{
218 struct svcctl_UnlockServiceDatabase
{
220 struct policy_handle
*lock
;/* [ref] */
224 struct policy_handle
*lock
;/* [ref] */
231 struct svcctl_NotifyBootConfigStatus
{
239 struct svcctl_SCSetServiceBitsW
{
241 struct policy_handle
*handle
;/* [ref] */
254 struct svcctl_ChangeServiceConfigW
{
256 struct policy_handle
*handle
;/* [ref] */
260 const char *binary_path
;/* [unique,charset(UTF16)] */
261 const char *load_order_group
;/* [unique,charset(UTF16)] */
262 const char *dependencies
;/* [unique,charset(UTF16)] */
263 const char *service_start_name
;/* [unique,charset(UTF16)] */
264 const char *password
;/* [unique,charset(UTF16)] */
265 const char *display_name
;/* [unique,charset(UTF16)] */
269 uint32_t *tag_id
;/* [ref] */
276 struct svcctl_CreateServiceW
{
278 struct policy_handle
*scmanager_handle
;/* [ref] */
279 const char *ServiceName
;/* [charset(UTF16)] */
280 const char *DisplayName
;/* [unique,charset(UTF16)] */
281 uint32_t desired_access
;
284 uint32_t error_control
;
285 const char *binary_path
;/* [charset(UTF16)] */
286 const char *LoadOrderGroupKey
;/* [unique,charset(UTF16)] */
287 uint8_t *dependencies
;/* [unique,size_is(dependencies_size)] */
288 uint32_t dependencies_size
;
289 const char *service_start_name
;/* [unique,charset(UTF16)] */
290 uint8_t *password
;/* [unique,size_is(password_size)] */
291 uint32_t password_size
;
292 uint32_t *TagId
;/* [unique] */
296 struct policy_handle
*handle
;/* [ref] */
297 uint32_t *TagId
;/* [unique] */
304 struct svcctl_EnumDependentServicesW
{
306 struct policy_handle
*service
;/* [ref] */
308 uint32_t buf_size
;/* [range(0,0x40000)] */
312 uint8_t *service_status
;/* [ref,size_is(buf_size)] */
313 uint32_t *bytes_needed
;/* [ref,range(0,0x40000)] */
314 uint32_t *services_returned
;/* [ref,range(0,0x40000)] */
321 struct svcctl_EnumServicesStatusW
{
323 struct policy_handle
*handle
;/* [ref] */
327 uint32_t *resume_handle
;/* [unique] */
331 uint8_t *service
;/* [size_is(buf_size)] */
332 uint32_t *bytes_needed
;/* [ref] */
333 uint32_t *services_returned
;/* [ref] */
334 uint32_t *resume_handle
;/* [unique] */
341 struct svcctl_OpenSCManagerW
{
343 const char *MachineName
;/* [unique,charset(UTF16)] */
344 const char *DatabaseName
;/* [unique,charset(UTF16)] */
345 uint32_t access_mask
;
349 struct policy_handle
*handle
;/* [ref] */
356 struct svcctl_OpenServiceW
{
358 struct policy_handle
*scmanager_handle
;/* [ref] */
359 const char *ServiceName
;/* [charset(UTF16)] */
360 uint32_t access_mask
;
364 struct policy_handle
*handle
;/* [ref] */
371 struct svcctl_QueryServiceConfigW
{
373 struct policy_handle
*handle
;/* [ref] */
374 uint32_t buf_size
;/* [range(0,8192)] */
378 struct QUERY_SERVICE_CONFIG
*query
;/* [ref] */
379 uint32_t *bytes_needed
;/* [ref,range(0,8192)] */
386 struct svcctl_QueryServiceLockStatusW
{
388 struct policy_handle
*handle
;/* [ref] */
393 struct SERVICE_LOCK_STATUS
*lock_status
;/* [ref] */
394 uint32_t *required_buf_size
;/* [ref] */
401 struct svcctl_StartServiceW
{
403 struct policy_handle
*handle
;/* [ref] */
405 const char *Arguments
;/* [unique,charset(UTF16)] */
415 struct svcctl_GetServiceDisplayNameW
{
417 struct policy_handle
*handle
;/* [ref] */
418 const char *service_name
;/* [unique,charset(UTF16)] */
419 uint32_t *display_name_length
;/* [unique] */
423 const char **display_name
;/* [ref,charset(UTF16)] */
424 uint32_t *display_name_length
;/* [unique] */
431 struct svcctl_GetServiceKeyNameW
{
433 struct policy_handle
*handle
;/* [ref] */
434 const char *service_name
;/* [unique,charset(UTF16)] */
435 uint32_t *display_name_length
;/* [unique] */
439 const char **key_name
;/* [ref,charset(UTF16)] */
440 uint32_t *display_name_length
;/* [unique] */
447 struct svcctl_SCSetServiceBitsA
{
449 struct policy_handle
*handle
;/* [ref] */
462 struct svcctl_ChangeServiceConfigA
{
464 struct policy_handle
*handle
;/* [ref] */
468 const char *binary_path
;/* [unique,charset(UTF16)] */
469 const char *load_order_group
;/* [unique,charset(UTF16)] */
470 const char *dependencies
;/* [unique,charset(UTF16)] */
471 const char *service_start_name
;/* [unique,charset(UTF16)] */
472 const char *password
;/* [unique,charset(UTF16)] */
473 const char *display_name
;/* [unique,charset(UTF16)] */
477 uint32_t *tag_id
;/* [ref] */
484 struct svcctl_CreateServiceA
{
486 struct policy_handle
*handle
;/* [ref] */
487 const char *ServiceName
;/* [unique,charset(UTF16)] */
488 const char *DisplayName
;/* [unique,charset(UTF16)] */
489 uint32_t desired_access
;
492 uint32_t error_control
;
493 const char *binary_path
;/* [unique,charset(UTF16)] */
494 const char *LoadOrderGroupKey
;/* [unique,charset(UTF16)] */
495 const char *dependencies
;/* [unique,charset(UTF16)] */
496 const char *service_start_name
;/* [unique,charset(UTF16)] */
497 const char *password
;/* [unique,charset(UTF16)] */
501 uint32_t *TagId
;/* [unique] */
508 struct svcctl_EnumDependentServicesA
{
510 struct policy_handle
*service
;/* [ref] */
516 struct ENUM_SERVICE_STATUS
*service_status
;/* [unique] */
517 uint32_t *bytes_needed
;/* [ref] */
518 uint32_t *services_returned
;/* [ref] */
525 struct svcctl_EnumServicesStatusA
{
527 struct policy_handle
*handle
;/* [ref] */
531 uint32_t *resume_handle
;/* [unique] */
535 uint8_t *service
;/* [size_is(buf_size)] */
536 uint32_t *bytes_needed
;/* [ref] */
537 uint32_t *services_returned
;/* [ref] */
538 uint32_t *resume_handle
;/* [unique] */
545 struct svcctl_OpenSCManagerA
{
547 const char *MachineName
;/* [unique,charset(UTF16)] */
548 const char *DatabaseName
;/* [unique,charset(UTF16)] */
549 uint32_t access_mask
;
553 struct policy_handle
*handle
;/* [ref] */
560 struct svcctl_OpenServiceA
{
562 struct policy_handle
*scmanager_handle
;/* [ref] */
563 const char *ServiceName
;/* [unique,charset(UTF16)] */
564 uint32_t access_mask
;
574 struct svcctl_QueryServiceConfigA
{
576 struct policy_handle
*handle
;/* [ref] */
582 uint32_t *bytes_needed
;/* [ref] */
589 struct svcctl_QueryServiceLockStatusA
{
591 struct policy_handle
*handle
;/* [ref] */
596 struct SERVICE_LOCK_STATUS
*lock_status
;/* [ref] */
597 uint32_t *required_buf_size
;/* [ref] */
604 struct svcctl_StartServiceA
{
606 struct policy_handle
*handle
;/* [ref] */
608 const char *Arguments
;/* [unique,charset(UTF16)] */
618 struct svcctl_GetServiceDisplayNameA
{
620 struct policy_handle
*handle
;/* [ref] */
621 const char *service_name
;/* [unique,charset(UTF16)] */
622 uint32_t *display_name_length
;/* [unique] */
626 const char **display_name
;/* [ref,charset(UTF16)] */
627 uint32_t *display_name_length
;/* [unique] */
634 struct svcctl_GetServiceKeyNameA
{
636 struct policy_handle
*handle
;/* [ref] */
637 const char *service_name
;/* [unique,charset(UTF16)] */
638 uint32_t *display_name_length
;/* [unique] */
642 const char **key_name
;/* [ref,charset(UTF16)] */
643 uint32_t *display_name_length
;/* [unique] */
650 struct svcctl_GetCurrentGroupeStateW
{
658 struct svcctl_EnumServiceGroupW
{
666 struct svcctl_ChangeServiceConfig2A
{
668 struct policy_handle
*handle
;/* [ref] */
670 uint8_t *info
;/* [unique] */
680 struct svcctl_ChangeServiceConfig2W
{
682 struct policy_handle
*handle
;/* [ref] */
684 uint8_t *info
;/* [unique] */
694 struct svcctl_QueryServiceConfig2A
{
696 struct policy_handle
*handle
;/* [ref] */
703 uint32_t *bytes_needed
;/* [ref] */
710 struct svcctl_QueryServiceConfig2W
{
712 struct policy_handle
*handle
;/* [ref] */
719 uint32_t *bytes_needed
;/* [ref] */
726 struct svcctl_QueryServiceStatusEx
{
728 struct policy_handle
*handle
;/* [ref] */
735 uint32_t *bytes_needed
;/* [ref] */
742 struct EnumServicesStatusExA
{
744 struct policy_handle
*scmanager
;/* [ref] */
749 uint32_t *resume_handle
;/* [unique] */
754 uint32_t *bytes_needed
;/* [ref] */
755 uint32_t *service_returned
;/* [ref] */
756 const char **group_name
;/* [ref,charset(UTF16)] */
757 uint32_t *resume_handle
;/* [unique] */
764 struct EnumServicesStatusExW
{
766 struct policy_handle
*scmanager
;/* [ref] */
771 uint32_t *resume_handle
;/* [unique] */
776 uint32_t *bytes_needed
;/* [ref] */
777 uint32_t *service_returned
;/* [ref] */
778 const char **group_name
;/* [ref,charset(UTF16)] */
779 uint32_t *resume_handle
;/* [unique] */
786 struct svcctl_SCSendTSMessage
{
793 #endif /* _HEADER_svcctl */