1 /* header auto-generated by pidl */
6 #define SERVICE_TYPE_KERNEL_DRIVER ( 0x01 )
7 #define SERVICE_TYPE_FS_DRIVER ( 0x02 )
8 #define SERVICE_TYPE_ADAPTER ( 0x04 )
9 #define SERVICE_TYPE_RECOGNIZER_DRIVER ( 0x08 )
10 #define SERVICE_TYPE_DRIVER ( SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER )
11 #define SERVICE_TYPE_WIN32_OWN_PROCESS ( 0x10 )
12 #define SERVICE_TYPE_WIN32_SHARE_PROCESS ( 0x20 )
13 #define SERVICE_TYPE_WIN32 ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS )
14 #define SERVICE_STATE_ACTIVE ( 0x01 )
15 #define SERVICE_STATE_INACTIVE ( 0x02 )
16 #define SERVICE_STATE_ALL ( 0x03 )
17 #define SV_TYPE_ALL ( 0xFFFFFFFF )
18 struct SERVICE_LOCK_STATUS
{
20 const char *lock_owner
;/* [unique,charset(UTF16)] */
21 uint32_t lock_duration
;
24 struct SERVICE_STATUS
{
27 uint32_t controls_accepted
;
28 uint32_t win32_exit_code
;
29 uint32_t service_exit_code
;
34 struct ENUM_SERVICE_STATUS
{
35 const char * service_name
;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
36 const char * display_name
;/* [relative,flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
37 struct SERVICE_STATUS status
;
40 /* bitmap svcctl_ServerType */
41 #define SV_TYPE_WORKSTATION ( 0x00000001 )
42 #define SV_TYPE_SERVER ( 0x00000002 )
43 #define SV_TYPE_SQLSERVER ( 0x00000004 )
44 #define SV_TYPE_DOMAIN_CTRL ( 0x00000008 )
45 #define SV_TYPE_DOMAIN_BAKCTRL ( 0x00000010 )
46 #define SV_TYPE_TIME_SOURCE ( 0x00000020 )
47 #define SV_TYPE_AFP ( 0x00000040 )
48 #define SV_TYPE_NOVELL ( 0x00000080 )
49 #define SV_TYPE_DOMAIN_MEMBER ( 0x00000100 )
50 #define SV_TYPE_PRINTQ_SERVER ( 0x00000200 )
51 #define SV_TYPE_DIALIN_SERVER ( 0x00000400 )
52 #define SV_TYPE_SERVER_UNIX ( 0x00000800 )
53 #define SV_TYPE_NT ( 0x00001000 )
54 #define SV_TYPE_WFW ( 0x00002000 )
55 #define SV_TYPE_SERVER_MFPN ( 0x00004000 )
56 #define SV_TYPE_SERVER_NT ( 0x00008000 )
57 #define SV_TYPE_POTENTIAL_BROWSER ( 0x00010000 )
58 #define SV_TYPE_BACKUP_BROWSER ( 0x00020000 )
59 #define SV_TYPE_MASTER_BROWSER ( 0x00040000 )
60 #define SV_TYPE_DOMAIN_MASTER ( 0x00080000 )
61 #define SV_TYPE_SERVER_OSF ( 0x00100000 )
62 #define SV_TYPE_SERVER_VMS ( 0x00200000 )
63 #define SV_TYPE_WIN95_PLUS ( 0x00400000 )
64 #define SV_TYPE_DFS_SERVER ( 0x00800000 )
65 #define SV_TYPE_ALTERNATE_XPORT ( 0x20000000 )
66 #define SV_TYPE_LOCAL_LIST_ONLY ( 0x40000000 )
67 #define SV_TYPE_DOMAIN_ENUM ( 0x80000000 )
69 enum SERVICE_CONTROL
{
74 struct svcctl_CloseServiceHandle
{
76 struct policy_handle
*handle
;/* [ref] */
80 struct policy_handle
*handle
;/* [ref] */
87 struct svcctl_ControlService
{
89 struct policy_handle
*handle
;/* [ref] */
94 struct SERVICE_STATUS
*status
;/* [ref] */
101 struct svcctl_DeleteService
{
103 struct policy_handle
*handle
;/* [ref] */
113 struct svcctl_LockServiceDatabase
{
115 struct policy_handle
*handle
;/* [ref] */
119 struct policy_handle
*lock
;/* [ref] */
126 struct svcctl_QueryServiceObjectSecurity
{
134 struct svcctl_SetServiceObjectSecurity
{
142 struct svcctl_QueryServiceStatus
{
144 struct policy_handle
*handle
;/* [ref] */
148 struct SERVICE_STATUS
*status
;/* [ref] */
155 struct svcctl_SetServiceStatus
{
163 struct svcctl_UnlockServiceDatabase
{
165 struct policy_handle
*lock
;/* [ref] */
169 struct policy_handle
*lock
;/* [ref] */
176 struct svcctl_NotifyBootConfigStatus
{
184 struct svcctl_SCSetServiceBitsW
{
186 struct policy_handle
*handle
;/* [ref] */
199 struct svcctl_ChangeServiceConfigW
{
201 struct policy_handle
*handle
;/* [ref] */
205 const char *binary_path
;/* [unique,charset(UTF16)] */
206 const char *load_order_group
;/* [unique,charset(UTF16)] */
207 const char *dependencies
;/* [unique,charset(UTF16)] */
208 const char *service_start_name
;/* [unique,charset(UTF16)] */
209 const char *password
;/* [unique,charset(UTF16)] */
210 const char *display_name
;/* [unique,charset(UTF16)] */
214 uint32_t *tag_id
;/* [ref] */
221 struct svcctl_CreateServiceW
{
223 struct policy_handle
*scmanager_handle
;/* [ref] */
224 const char *ServiceName
;/* [charset(UTF16)] */
225 const char *DisplayName
;/* [unique,charset(UTF16)] */
226 uint32_t desired_access
;
229 uint32_t error_control
;
230 const char *binary_path
;/* [charset(UTF16)] */
231 const char *LoadOrderGroupKey
;/* [unique,charset(UTF16)] */
232 uint32_t *TagId
;/* [unique] */
233 uint8_t *dependencies
;/* [unique,size_is(dependencies_size)] */
234 uint32_t dependencies_size
;
235 const char *service_start_name
;/* [unique,charset(UTF16)] */
236 uint8_t *password
;/* [unique,size_is(password_size)] */
237 uint32_t password_size
;
241 uint32_t *TagId
;/* [unique] */
242 struct policy_handle
*handle
;/* [ref] */
249 struct svcctl_EnumDependentServicesW
{
251 struct policy_handle
*service
;/* [ref] */
257 struct ENUM_SERVICE_STATUS
*status
;/* [unique] */
258 uint32_t *bytes_needed
;/* [ref] */
259 uint32_t *services_returned
;/* [ref] */
266 struct svcctl_EnumServicesStatusW
{
268 struct policy_handle
*handle
;/* [ref] */
272 uint32_t *resume_handle
;/* [unique] */
276 uint8_t *service
;/* [size_is(buf_size)] */
277 uint32_t *bytes_needed
;/* [ref] */
278 uint32_t *services_returned
;/* [ref] */
279 uint32_t *resume_handle
;/* [unique] */
286 struct svcctl_OpenSCManagerW
{
288 const char *MachineName
;/* [unique,charset(UTF16)] */
289 const char *DatabaseName
;/* [unique,charset(UTF16)] */
290 uint32_t access_mask
;
294 struct policy_handle
*handle
;/* [ref] */
301 struct svcctl_OpenServiceW
{
303 struct policy_handle
*scmanager_handle
;/* [ref] */
304 const char *ServiceName
;/* [charset(UTF16)] */
305 uint32_t access_mask
;
309 struct policy_handle
*handle
;/* [ref] */
316 struct svcctl_QueryServiceConfigW
{
318 struct policy_handle
*handle
;/* [ref] */
324 uint32_t *bytes_needed
;/* [ref] */
331 struct svcctl_QueryServiceLockStatusW
{
333 struct policy_handle
*handle
;/* [ref] */
338 struct SERVICE_LOCK_STATUS
*status
;/* [ref] */
339 uint32_t *required_buf_size
;/* [ref] */
346 struct svcctl_StartServiceW
{
348 struct policy_handle
*handle
;/* [ref] */
350 const char *Arguments
;/* [unique,charset(UTF16),length_is(NumArgs)] */
360 struct svcctl_GetServiceDisplayNameW
{
362 struct policy_handle
*handle
;/* [ref] */
363 const char *service_name
;/* [unique,charset(UTF16)] */
364 uint32_t *display_name_length
;/* [unique] */
368 const char **display_name
;/* [ref,charset(UTF16)] */
369 uint32_t *display_name_length
;/* [unique] */
376 struct svcctl_GetServiceKeyNameW
{
378 struct policy_handle
*handle
;/* [ref] */
379 const char *service_name
;/* [unique,charset(UTF16)] */
380 uint32_t *display_name_length
;/* [unique] */
384 const char **key_name
;/* [ref,charset(UTF16)] */
385 uint32_t *display_name_length
;/* [unique] */
392 struct svcctl_SCSetServiceBitsA
{
394 struct policy_handle
*handle
;/* [ref] */
407 struct svcctl_ChangeServiceConfigA
{
409 struct policy_handle
*handle
;/* [ref] */
413 const char *binary_path
;/* [unique,charset(UTF16)] */
414 const char *load_order_group
;/* [unique,charset(UTF16)] */
415 const char *dependencies
;/* [unique,charset(UTF16)] */
416 const char *service_start_name
;/* [unique,charset(UTF16)] */
417 const char *password
;/* [unique,charset(UTF16)] */
418 const char *display_name
;/* [unique,charset(UTF16)] */
422 uint32_t *tag_id
;/* [ref] */
429 struct svcctl_CreateServiceA
{
431 struct policy_handle
*handle
;/* [ref] */
432 const char *ServiceName
;/* [unique,charset(UTF16)] */
433 const char *DisplayName
;/* [unique,charset(UTF16)] */
434 uint32_t desired_access
;
437 uint32_t error_control
;
438 const char *binary_path
;/* [unique,charset(UTF16)] */
439 const char *LoadOrderGroupKey
;/* [unique,charset(UTF16)] */
440 const char *dependencies
;/* [unique,charset(UTF16)] */
441 const char *service_start_name
;/* [unique,charset(UTF16)] */
442 const char *password
;/* [unique,charset(UTF16)] */
446 uint32_t *TagId
;/* [unique] */
453 struct svcctl_EnumDependentServicesA
{
455 struct policy_handle
*service
;/* [ref] */
461 struct ENUM_SERVICE_STATUS
*status
;/* [unique] */
462 uint32_t *bytes_needed
;/* [ref] */
463 uint32_t *services_returned
;/* [ref] */
470 struct svcctl_EnumServicesStatusA
{
472 struct policy_handle
*handle
;/* [ref] */
476 uint32_t *resume_handle
;/* [unique] */
480 uint8_t *service
;/* [size_is(buf_size)] */
481 uint32_t *bytes_needed
;/* [ref] */
482 uint32_t *services_returned
;/* [ref] */
483 uint32_t *resume_handle
;/* [unique] */
490 struct svcctl_OpenSCManagerA
{
492 const char *MachineName
;/* [unique,charset(UTF16)] */
493 const char *DatabaseName
;/* [unique,charset(UTF16)] */
494 uint32_t access_mask
;
498 struct policy_handle
*handle
;/* [ref] */
505 struct svcctl_OpenServiceA
{
507 struct policy_handle
*scmanager_handle
;/* [ref] */
508 const char *ServiceName
;/* [unique,charset(UTF16)] */
509 uint32_t access_mask
;
519 struct svcctl_QueryServiceConfigA
{
521 struct policy_handle
*handle
;/* [ref] */
527 uint32_t *bytes_needed
;/* [ref] */
534 struct svcctl_QueryServiceLockStatusA
{
536 struct policy_handle
*handle
;/* [ref] */
541 struct SERVICE_LOCK_STATUS
*status
;/* [ref] */
542 uint32_t *required_buf_size
;/* [ref] */
549 struct svcctl_StartServiceA
{
551 struct policy_handle
*handle
;/* [ref] */
553 const char *Arguments
;/* [unique,charset(UTF16),length_is(NumArgs)] */
563 struct svcctl_GetServiceDisplayNameA
{
565 struct policy_handle
*handle
;/* [ref] */
566 const char *service_name
;/* [unique,charset(UTF16)] */
567 uint32_t *display_name_length
;/* [unique] */
571 const char **display_name
;/* [ref,charset(UTF16)] */
572 uint32_t *display_name_length
;/* [unique] */
579 struct svcctl_GetServiceKeyNameA
{
581 struct policy_handle
*handle
;/* [ref] */
582 const char *service_name
;/* [unique,charset(UTF16)] */
583 uint32_t *display_name_length
;/* [unique] */
587 const char **key_name
;/* [ref,charset(UTF16)] */
588 uint32_t *display_name_length
;/* [unique] */
595 struct svcctl_GetCurrentGroupeStateW
{
603 struct svcctl_EnumServiceGroupW
{
611 struct svcctl_ChangeServiceConfig2A
{
613 struct policy_handle
*handle
;/* [ref] */
615 uint8_t *info
;/* [unique] */
625 struct svcctl_ChangeServiceConfig2W
{
627 struct policy_handle
*handle
;/* [ref] */
629 uint8_t *info
;/* [unique] */
639 struct svcctl_QueryServiceConfig2A
{
641 struct policy_handle
*handle
;/* [ref] */
648 uint32_t *bytes_needed
;/* [ref] */
655 struct svcctl_QueryServiceConfig2W
{
657 struct policy_handle
*handle
;/* [ref] */
664 uint32_t *bytes_needed
;/* [ref] */
671 struct svcctl_QueryServiceStatusEx
{
673 struct policy_handle
*handle
;/* [ref] */
680 uint32_t *bytes_needed
;/* [ref] */
687 struct EnumServicesStatusExA
{
689 struct policy_handle
*scmanager
;/* [ref] */
694 uint32_t *resume_handle
;/* [unique] */
699 uint32_t *bytes_needed
;/* [ref] */
700 uint32_t *service_returned
;/* [ref] */
701 uint32_t *resume_handle
;/* [unique] */
702 const char **group_name
;/* [ref,charset(UTF16)] */
709 struct EnumServicesStatusExW
{
711 struct policy_handle
*scmanager
;/* [ref] */
716 uint32_t *resume_handle
;/* [unique] */
721 uint32_t *bytes_needed
;/* [ref] */
722 uint32_t *service_returned
;/* [ref] */
723 uint32_t *resume_handle
;/* [unique] */
724 const char **group_name
;/* [ref,charset(UTF16)] */
731 struct svcctl_SCSendTSMessage
{
738 #endif /* _HEADER_svcctl */