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 ) 33struct SERVICE_LOCK_STATUS { 34 uint32_t is_locked; 35 const char *lock_owner;/* [unique,charset(UTF16)] */ 36 uint32_t lock_duration; 37}; 38 39enum svcctl_ServiceStatus 40#ifndef USE_UINT_ENUMS 41 { 42 SVCCTL_STATE_UNKNOWN=(int)(0x00000000), 43 SVCCTL_STOPPED=(int)(0x00000001), 44 SVCCTL_START_PENDING=(int)(0x00000002), 45 SVCCTL_STOP_PENDING=(int)(0x00000003), 46 SVCCTL_RUNNING=(int)(0x00000004), 47 SVCCTL_CONTINUE_PENDING=(int)(0x00000005), 48 SVCCTL_PAUSE_PENDING=(int)(0x00000006), 49 SVCCTL_PAUSED=(int)(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 73struct 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 83struct SERVICE_STATUS_PROCESS { 84 struct SERVICE_STATUS status; 85 uint32_t process_id; 86 uint32_t service_flags; 87}/* [public] */; 88 89struct ENUM_SERVICE_STATUSW { 90 const char * service_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ 91 const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ 92 struct SERVICE_STATUS status; 93}/* [gensize,public] */; 94 95struct 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 130enum SERVICE_CONTROL 131#ifndef USE_UINT_ENUMS 132 { 133 SVCCTL_CONTROL_STOP=(int)(0x00000001), 134 SVCCTL_CONTROL_PAUSE=(int)(0x00000002), 135 SVCCTL_CONTROL_CONTINUE=(int)(0x00000003), 136 SVCCTL_CONTROL_INTERROGATE=(int)(0x00000004), 137 SVCCTL_CONTROL_SHUTDOWN=(int)(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 149enum svcctl_ErrorControl 150#ifndef USE_UINT_ENUMS 151 { 152 SVCCTL_SVC_ERROR_IGNORE=(int)(0x00000000), 153 SVCCTL_SVC_ERROR_NORMAL=(int)(0x00000001), 154 SVCCTL_SVC_ERROR_CRITICAL=(int)(0x00000002), 155 SVCCTL_SVC_ERROR_SEVERE=(int)(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 166enum svcctl_StartType 167#ifndef USE_UINT_ENUMS 168 { 169 SVCCTL_BOOT_START=(int)(0x00000000), 170 SVCCTL_SYSTEM_START=(int)(0x00000001), 171 SVCCTL_AUTO_START=(int)(0x00000002), 172 SVCCTL_DEMAND_START=(int)(0x00000003), 173 SVCCTL_DISABLED=(int)(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 185enum svcctl_ServiceState 186#ifndef USE_UINT_ENUMS 187 { 188 SERVICE_STATE_ACTIVE=(int)(0x00000001), 189 SERVICE_STATE_INACTIVE=(int)(0x00000002), 190 SERVICE_STATE_ALL=(int)((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 219struct 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 231struct svcctl_ArgumentString { 232 const char *string;/* [unique,range(0,SC_MAX_ARGUMENT_LENGTH),charset(UTF16)] */ 233}; 234 235enum svcctl_ConfigLevel 236#ifndef USE_UINT_ENUMS 237 { 238 SERVICE_CONFIG_DESCRIPTION=(int)(0x00000001), 239 SERVICE_CONFIG_FAILURE_ACTIONS=(int)(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 248struct SERVICE_DESCRIPTION { 249 const char * description;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ 250}/* [gensize,public] */; 251 252enum SC_ACTION_TYPE 253#ifndef USE_UINT_ENUMS 254 { 255 SC_ACTION_NONE=(int)(0), 256 SC_ACTION_RESTART=(int)(1), 257 SC_ACTION_REBOOT=(int)(2), 258 SC_ACTION_RUN_COMMAND=(int)(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 269struct SC_ACTION { 270 enum SC_ACTION_TYPE type; 271 uint32_t delay; 272}; 273 274struct SERVICE_FAILURE_ACTIONS { 275 uint32_t reset_period; 276 const char * rebootmsg;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ 277 const char * command;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] */ 278 uint32_t num_actions;/* [range(0,1024)] */ 279 struct SC_ACTION *actions;/* [relative,size_is(num_actions)] */ 280}/* [gensize,public] */; 281 282enum svcctl_StatusLevel 283#ifndef USE_UINT_ENUMS 284 { 285 SVC_STATUS_PROCESS_INFO=(int)(0x00000000) 286} 287#else 288 { __donnot_use_enum_svcctl_StatusLevel=0x7FFFFFFF} 289#define SVC_STATUS_PROCESS_INFO ( 0x00000000 ) 290#endif 291; 292 293 294struct 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 307struct 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 321struct svcctl_DeleteService { 322 struct { 323 struct policy_handle *handle;/* [ref] */ 324 } in; 325 326 struct { 327 WERROR result; 328 } out; 329 330}; 331 332 333struct 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 346struct 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 362struct 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 377struct 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 390struct svcctl_SetServiceStatus { 391 struct { 392 WERROR result; 393 } out; 394 395}; 396 397 398struct 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 411struct svcctl_NotifyBootConfigStatus { 412 struct { 413 WERROR result; 414 } out; 415 416}; 417 418 419struct 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 434struct 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 456struct 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 484struct 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 501struct 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 521struct 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 536struct 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 551struct 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 566struct 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 581struct 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 595struct 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 611struct 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 627struct 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 642struct 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 664struct 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 688struct 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 705struct 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 725struct 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 740struct 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 754struct 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 769struct 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 784struct 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 798struct 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 814struct 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 830struct svcctl_GetCurrentGroupeStateW { 831 struct { 832 WERROR result; 833 } out; 834 835}; 836 837 838struct svcctl_EnumServiceGroupW { 839 struct { 840 WERROR result; 841 } out; 842 843}; 844 845 846struct 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 860struct 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 874struct 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 890struct 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 906struct 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 922struct 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 944struct 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 966struct svcctl_SCSendTSMessage { 967 struct { 968 WERROR result; 969 } out; 970 971}; 972 973#endif /* _HEADER_svcctl */ 974