1 /* 2 * Please do not edit this file. 3 * It was generated using ndrgen. 4 */ 5 6 #include <strings.h> 7 #include <smbsrv/ndr.h> 8 #include <smbsrv/ndl/svcctl.ndl> 9 10 extern struct ndr_typeinfo ndt__char; 11 extern struct ndr_typeinfo ndt_s_char; 12 extern struct ndr_typeinfo ndt__uchar; 13 extern struct ndr_typeinfo ndt_s_uchar; 14 extern struct ndr_typeinfo ndt__wchar; 15 extern struct ndr_typeinfo ndt_s_wchar; 16 extern struct ndr_typeinfo ndt__short; 17 extern struct ndr_typeinfo ndt_s_short; 18 extern struct ndr_typeinfo ndt__ushort; 19 extern struct ndr_typeinfo ndt_s_ushort; 20 extern struct ndr_typeinfo ndt__long; 21 extern struct ndr_typeinfo ndt_s_long; 22 extern struct ndr_typeinfo ndt__ulong; 23 extern struct ndr_typeinfo ndt_s_ulong; 24 25 26 27 int ndr__svcctl_handle (struct ndr_reference *encl_ref); 28 struct ndr_typeinfo ndt__svcctl_handle = { 29 1, /* NDR version */ 30 3, /* alignment */ 31 NDR_F_STRUCT, /* flags */ 32 ndr__svcctl_handle, /* ndr_func */ 33 20, /* pdu_size_fixed_part */ 34 0, /* pdu_size_variable_part */ 35 20, /* c_size_fixed_part */ 36 0, /* c_size_variable_part */ 37 }; 38 39 40 /* 41 * */ 42 int 43 ndr__svcctl_handle (struct ndr_reference *encl_ref) 44 { 45 struct svcctl_handle *val = (struct svcctl_handle *) encl_ref->datum; 46 struct ndr_reference myref; 47 48 (void) bzero(&myref, sizeof (myref)); 49 myref.enclosing = encl_ref; 50 myref.stream = encl_ref->stream; 51 52 /* do all basic elements first */ 53 NDR_MEMBER (_ulong, data1, 0UL); 54 NDR_MEMBER (_ulong, data2, 4UL); 55 56 /* do all constructed elements w/o pointers */ 57 NDR_MEMBER_ARR_WITH_DIMENSION (_ushort, data3, 8UL, 58 2); 59 NDR_MEMBER_ARR_WITH_DIMENSION (_uchar, data4, 12UL, 60 8); 61 62 /* do members with pointers in order */ 63 64 return 1; 65 } 66 67 68 69 int ndr__svcctl_value (struct ndr_reference *encl_ref); 70 struct ndr_typeinfo ndt__svcctl_value = { 71 1, /* NDR version */ 72 3, /* alignment */ 73 NDR_F_CONFORMANT|NDR_F_STRUCT, /* flags */ 74 ndr__svcctl_value, /* ndr_func */ 75 8, /* pdu_size_fixed_part */ 76 1, /* pdu_size_variable_part */ 77 8, /* c_size_fixed_part */ 78 1, /* c_size_variable_part */ 79 }; 80 81 82 /* 83 * */ 84 int 85 ndr__svcctl_value (struct ndr_reference *encl_ref) 86 { 87 struct svcctl_value *val = (struct svcctl_value *) encl_ref->datum; 88 struct ndr_reference myref; 89 90 (void) bzero(&myref, sizeof (myref)); 91 myref.enclosing = encl_ref; 92 myref.stream = encl_ref->stream; 93 94 /* do all basic elements first */ 95 NDR_MEMBER (_ulong, vc_first_is, 0UL); 96 NDR_MEMBER (_ulong, vc_length_is, 4UL); 97 98 /* do all constructed elements w/o pointers */ 99 NDR_MEMBER_ARR_WITH_SIZE_IS (_uchar, value, 8UL, 100 val->vc_length_is); 101 102 /* do members with pointers in order */ 103 104 return 1; 105 } 106 107 108 109 int ndr__svc_status (struct ndr_reference *encl_ref); 110 struct ndr_typeinfo ndt__svc_status = { 111 1, /* NDR version */ 112 3, /* alignment */ 113 NDR_F_STRUCT, /* flags */ 114 ndr__svc_status, /* ndr_func */ 115 28, /* pdu_size_fixed_part */ 116 0, /* pdu_size_variable_part */ 117 28, /* c_size_fixed_part */ 118 0, /* c_size_variable_part */ 119 }; 120 121 122 /* 123 * */ 124 int 125 ndr__svc_status (struct ndr_reference *encl_ref) 126 { 127 struct svc_status *val = (struct svc_status *) encl_ref->datum; 128 struct ndr_reference myref; 129 130 (void) bzero(&myref, sizeof (myref)); 131 myref.enclosing = encl_ref; 132 myref.stream = encl_ref->stream; 133 134 /* do all basic elements first */ 135 NDR_MEMBER (_ulong, service_type, 0UL); 136 NDR_MEMBER (_ulong, cur_state, 4UL); 137 NDR_MEMBER (_ulong, ctrl_accepted, 8UL); 138 NDR_MEMBER (_ulong, w32_exitcode, 12UL); 139 NDR_MEMBER (_ulong, svc_specified_exitcode, 16UL); 140 NDR_MEMBER (_ulong, check_point, 20UL); 141 NDR_MEMBER (_ulong, wait_hint, 24UL); 142 143 /* do all constructed elements w/o pointers */ 144 145 /* do members with pointers in order */ 146 147 return 1; 148 } 149 150 151 152 int ndr__svc_enum_status (struct ndr_reference *encl_ref); 153 struct ndr_typeinfo ndt__svc_enum_status = { 154 1, /* NDR version */ 155 3, /* alignment */ 156 NDR_F_STRUCT, /* flags */ 157 ndr__svc_enum_status, /* ndr_func */ 158 36, /* pdu_size_fixed_part */ 159 0, /* pdu_size_variable_part */ 160 36, /* c_size_fixed_part */ 161 0, /* c_size_variable_part */ 162 }; 163 164 165 /* 166 * */ 167 int 168 ndr__svc_enum_status (struct ndr_reference *encl_ref) 169 { 170 struct svc_enum_status *val = (struct svc_enum_status *) encl_ref->datum; 171 struct ndr_reference myref; 172 173 (void) bzero(&myref, sizeof (myref)); 174 myref.enclosing = encl_ref; 175 myref.stream = encl_ref->stream; 176 177 /* do all basic elements first */ 178 NDR_MEMBER (_ulong, svc_name, 0UL); 179 NDR_MEMBER (_ulong, display_name, 4UL); 180 181 /* do all constructed elements w/o pointers */ 182 NDR_MEMBER (_svc_status, svc_status, 8UL); 183 184 /* do members with pointers in order */ 185 186 return 1; 187 } 188 189 190 191 int ndr__svc_config (struct ndr_reference *encl_ref); 192 struct ndr_typeinfo ndt__svc_config = { 193 1, /* NDR version */ 194 3, /* alignment */ 195 NDR_F_STRUCT, /* flags */ 196 ndr__svc_config, /* ndr_func */ 197 36, /* pdu_size_fixed_part */ 198 0, /* pdu_size_variable_part */ 199 36, /* c_size_fixed_part */ 200 0, /* c_size_variable_part */ 201 }; 202 203 204 /* 205 * */ 206 int 207 ndr__svc_config (struct ndr_reference *encl_ref) 208 { 209 struct svc_config *val = (struct svc_config *) encl_ref->datum; 210 struct ndr_reference myref; 211 212 (void) bzero(&myref, sizeof (myref)); 213 myref.enclosing = encl_ref; 214 myref.stream = encl_ref->stream; 215 216 /* do all basic elements first */ 217 NDR_MEMBER (_ulong, service_type, 0UL); 218 NDR_MEMBER (_ulong, start_type, 4UL); 219 NDR_MEMBER (_ulong, error_control, 8UL); 220 NDR_MEMBER (_ulong, tag_id, 20UL); 221 222 /* do all constructed elements w/o pointers */ 223 224 /* do members with pointers in order */ 225 NDR_MEMBER_PTR (s_wchar, binary_pathname, 12UL); 226 NDR_MEMBER_PTR (s_wchar, loadorder_group, 16UL); 227 NDR_MEMBER_PTR (s_wchar, dependencies, 24UL); 228 NDR_MEMBER_PTR (s_wchar, service_startname, 28UL); 229 NDR_MEMBER_PTR (s_wchar, display_name, 32UL); 230 231 return 1; 232 } 233 234 235 236 int ndr__svc_failure_actions (struct ndr_reference *encl_ref); 237 struct ndr_typeinfo ndt__svc_failure_actions = { 238 1, /* NDR version */ 239 3, /* alignment */ 240 NDR_F_STRUCT, /* flags */ 241 ndr__svc_failure_actions, /* ndr_func */ 242 20, /* pdu_size_fixed_part */ 243 0, /* pdu_size_variable_part */ 244 20, /* c_size_fixed_part */ 245 0, /* c_size_variable_part */ 246 }; 247 248 249 /* 250 * */ 251 int 252 ndr__svc_failure_actions (struct ndr_reference *encl_ref) 253 { 254 struct svc_failure_actions *val = (struct svc_failure_actions *) encl_ref->datum; 255 struct ndr_reference myref; 256 257 (void) bzero(&myref, sizeof (myref)); 258 myref.enclosing = encl_ref; 259 myref.stream = encl_ref->stream; 260 261 /* do all basic elements first */ 262 NDR_MEMBER (_ulong, reset_period, 0UL); 263 NDR_MEMBER (_ulong, rebootmsg_offset, 4UL); 264 NDR_MEMBER (_ulong, command_offset, 8UL); 265 NDR_MEMBER (_ulong, actions, 12UL); 266 NDR_MEMBER (_ulong, actions_offset, 16UL); 267 268 /* do all constructed elements w/o pointers */ 269 270 /* do members with pointers in order */ 271 272 return 1; 273 } 274 275 276 277 int ndr__svc_description (struct ndr_reference *encl_ref); 278 struct ndr_typeinfo ndt__svc_description = { 279 1, /* NDR version */ 280 3, /* alignment */ 281 NDR_F_STRUCT, /* flags */ 282 ndr__svc_description, /* ndr_func */ 283 4, /* pdu_size_fixed_part */ 284 0, /* pdu_size_variable_part */ 285 4, /* c_size_fixed_part */ 286 0, /* c_size_variable_part */ 287 }; 288 289 290 /* 291 * */ 292 int 293 ndr__svc_description (struct ndr_reference *encl_ref) 294 { 295 struct svc_description *val = (struct svc_description *) encl_ref->datum; 296 struct ndr_reference myref; 297 298 (void) bzero(&myref, sizeof (myref)); 299 myref.enclosing = encl_ref; 300 myref.stream = encl_ref->stream; 301 302 /* do all basic elements first */ 303 NDR_MEMBER (_ulong, desc, 0UL); 304 305 /* do all constructed elements w/o pointers */ 306 307 /* do members with pointers in order */ 308 309 return 1; 310 } 311 312 313 314 int ndr__svc_delayed_auto_start (struct ndr_reference *encl_ref); 315 struct ndr_typeinfo ndt__svc_delayed_auto_start = { 316 1, /* NDR version */ 317 3, /* alignment */ 318 NDR_F_STRUCT, /* flags */ 319 ndr__svc_delayed_auto_start, /* ndr_func */ 320 4, /* pdu_size_fixed_part */ 321 0, /* pdu_size_variable_part */ 322 4, /* c_size_fixed_part */ 323 0, /* c_size_variable_part */ 324 }; 325 326 327 /* 328 * */ 329 int 330 ndr__svc_delayed_auto_start (struct ndr_reference *encl_ref) 331 { 332 struct svc_delayed_auto_start *val = (struct svc_delayed_auto_start *) encl_ref->datum; 333 struct ndr_reference myref; 334 335 (void) bzero(&myref, sizeof (myref)); 336 myref.enclosing = encl_ref; 337 myref.stream = encl_ref->stream; 338 339 /* do all basic elements first */ 340 NDR_MEMBER (_ulong, dstart, 0UL); 341 342 /* do all constructed elements w/o pointers */ 343 344 /* do members with pointers in order */ 345 346 return 1; 347 } 348 349 350 351 int ndr__svc_config_failure_action (struct ndr_reference *encl_ref); 352 struct ndr_typeinfo ndt__svc_config_failure_action = { 353 1, /* NDR version */ 354 3, /* alignment */ 355 NDR_F_STRUCT, /* flags */ 356 ndr__svc_config_failure_action, /* ndr_func */ 357 4, /* pdu_size_fixed_part */ 358 0, /* pdu_size_variable_part */ 359 4, /* c_size_fixed_part */ 360 0, /* c_size_variable_part */ 361 }; 362 363 364 /* 365 * */ 366 int 367 ndr__svc_config_failure_action (struct ndr_reference *encl_ref) 368 { 369 struct svc_config_failure_action *val = (struct svc_config_failure_action *) encl_ref->datum; 370 struct ndr_reference myref; 371 372 (void) bzero(&myref, sizeof (myref)); 373 myref.enclosing = encl_ref; 374 myref.stream = encl_ref->stream; 375 376 /* do all basic elements first */ 377 NDR_MEMBER (_ulong, cfa, 0UL); 378 379 /* do all constructed elements w/o pointers */ 380 381 /* do members with pointers in order */ 382 383 return 1; 384 } 385 386 387 388 int ndr__svcctl_Close (struct ndr_reference *encl_ref); 389 struct ndr_typeinfo ndt__svcctl_Close = { 390 1, /* NDR version */ 391 3, /* alignment */ 392 NDR_F_OPERATION, /* flags */ 393 ndr__svcctl_Close, /* ndr_func */ 394 44, /* pdu_size_fixed_part */ 395 0, /* pdu_size_variable_part */ 396 44, /* c_size_fixed_part */ 397 0, /* c_size_variable_part */ 398 }; 399 400 401 /* 402 * [operation(0)] 403 */ 404 int 405 ndr__svcctl_Close (struct ndr_reference *encl_ref) 406 { 407 struct svcctl_Close *val = (struct svcctl_Close *) encl_ref->datum; 408 struct ndr_reference myref; 409 410 (void) bzero(&myref, sizeof (myref)); 411 myref.enclosing = encl_ref; 412 myref.stream = encl_ref->stream; 413 414 /* do all members in order */ 415 if (NDR_DIR_IS_IN) { 416 NDR_TOPMOST_MEMBER (_svcctl_handle, handle); 417 } 418 if (NDR_DIR_IS_OUT) { 419 NDR_TOPMOST_MEMBER (_svcctl_handle, result_handle); 420 } 421 if (NDR_DIR_IS_OUT) { 422 NDR_TOPMOST_MEMBER (_ulong, status); 423 } 424 425 return 1; 426 } 427 428 429 430 int ndr__svcctl_ControlService (struct ndr_reference *encl_ref); 431 struct ndr_typeinfo ndt__svcctl_ControlService = { 432 1, /* NDR version */ 433 3, /* alignment */ 434 NDR_F_OPERATION, /* flags */ 435 ndr__svcctl_ControlService, /* ndr_func */ 436 56, /* pdu_size_fixed_part */ 437 0, /* pdu_size_variable_part */ 438 56, /* c_size_fixed_part */ 439 0, /* c_size_variable_part */ 440 }; 441 442 443 /* 444 * [operation(1)] 445 */ 446 int 447 ndr__svcctl_ControlService (struct ndr_reference *encl_ref) 448 { 449 struct svcctl_ControlService *val = (struct svcctl_ControlService *) encl_ref->datum; 450 struct ndr_reference myref; 451 452 (void) bzero(&myref, sizeof (myref)); 453 myref.enclosing = encl_ref; 454 myref.stream = encl_ref->stream; 455 456 /* do all members in order */ 457 if (NDR_DIR_IS_IN) { 458 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 459 } 460 if (NDR_DIR_IS_IN) { 461 NDR_TOPMOST_MEMBER (_ulong, control); 462 } 463 if (NDR_DIR_IS_OUT) { 464 NDR_TOPMOST_MEMBER (_svc_status, service_status); 465 } 466 if (NDR_DIR_IS_OUT) { 467 NDR_TOPMOST_MEMBER (_ulong, status); 468 } 469 470 return 1; 471 } 472 473 474 475 int ndr__svcctl_DeleteService (struct ndr_reference *encl_ref); 476 struct ndr_typeinfo ndt__svcctl_DeleteService = { 477 1, /* NDR version */ 478 3, /* alignment */ 479 NDR_F_OPERATION, /* flags */ 480 ndr__svcctl_DeleteService, /* ndr_func */ 481 24, /* pdu_size_fixed_part */ 482 0, /* pdu_size_variable_part */ 483 24, /* c_size_fixed_part */ 484 0, /* c_size_variable_part */ 485 }; 486 487 488 /* 489 * [operation(2)] 490 */ 491 int 492 ndr__svcctl_DeleteService (struct ndr_reference *encl_ref) 493 { 494 struct svcctl_DeleteService *val = (struct svcctl_DeleteService *) encl_ref->datum; 495 struct ndr_reference myref; 496 497 (void) bzero(&myref, sizeof (myref)); 498 myref.enclosing = encl_ref; 499 myref.stream = encl_ref->stream; 500 501 /* do all members in order */ 502 if (NDR_DIR_IS_IN) { 503 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 504 } 505 if (NDR_DIR_IS_OUT) { 506 NDR_TOPMOST_MEMBER (_ulong, status); 507 } 508 509 return 1; 510 } 511 512 513 514 int ndr__svcctl_QueryServiceSecurity (struct ndr_reference *encl_ref); 515 struct ndr_typeinfo ndt__svcctl_QueryServiceSecurity = { 516 1, /* NDR version */ 517 3, /* alignment */ 518 NDR_F_OPERATION, /* flags */ 519 ndr__svcctl_QueryServiceSecurity, /* ndr_func */ 520 40, /* pdu_size_fixed_part */ 521 0, /* pdu_size_variable_part */ 522 40, /* c_size_fixed_part */ 523 0, /* c_size_variable_part */ 524 }; 525 526 527 /* 528 * [operation(4)] 529 */ 530 int 531 ndr__svcctl_QueryServiceSecurity (struct ndr_reference *encl_ref) 532 { 533 struct svcctl_QueryServiceSecurity *val = (struct svcctl_QueryServiceSecurity *) encl_ref->datum; 534 struct ndr_reference myref; 535 536 (void) bzero(&myref, sizeof (myref)); 537 myref.enclosing = encl_ref; 538 myref.stream = encl_ref->stream; 539 540 /* do all members in order */ 541 if (NDR_DIR_IS_IN) { 542 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 543 } 544 if (NDR_DIR_IS_IN) { 545 NDR_TOPMOST_MEMBER (_ulong, security_info); 546 } 547 if (NDR_DIR_IS_IN) { 548 NDR_TOPMOST_MEMBER (_ulong, buf_size); 549 } 550 if (NDR_DIR_IS_OUT) { 551 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, buffer, 552 val->buf_size); 553 } 554 if (NDR_DIR_IS_OUT) { 555 NDR_TOPMOST_MEMBER (_ulong, bytes_needed); 556 } 557 if (NDR_DIR_IS_OUT) { 558 NDR_TOPMOST_MEMBER (_ulong, status); 559 } 560 561 return 1; 562 } 563 564 565 566 int ndr__svcctl_SetServiceSecurity (struct ndr_reference *encl_ref); 567 struct ndr_typeinfo ndt__svcctl_SetServiceSecurity = { 568 1, /* NDR version */ 569 3, /* alignment */ 570 NDR_F_OPERATION, /* flags */ 571 ndr__svcctl_SetServiceSecurity, /* ndr_func */ 572 36, /* pdu_size_fixed_part */ 573 0, /* pdu_size_variable_part */ 574 36, /* c_size_fixed_part */ 575 0, /* c_size_variable_part */ 576 }; 577 578 579 /* 580 * [operation(5)] 581 */ 582 int 583 ndr__svcctl_SetServiceSecurity (struct ndr_reference *encl_ref) 584 { 585 struct svcctl_SetServiceSecurity *val = (struct svcctl_SetServiceSecurity *) encl_ref->datum; 586 struct ndr_reference myref; 587 588 (void) bzero(&myref, sizeof (myref)); 589 myref.enclosing = encl_ref; 590 myref.stream = encl_ref->stream; 591 592 /* do all members in order */ 593 if (NDR_DIR_IS_IN) { 594 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 595 } 596 if (NDR_DIR_IS_IN) { 597 NDR_TOPMOST_MEMBER (_ulong, security_info); 598 } 599 if (NDR_DIR_IS_IN) { 600 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, buffer, 601 val->buf_size); 602 } 603 if (NDR_DIR_IS_IN) { 604 NDR_TOPMOST_MEMBER (_ulong, buf_size); 605 } 606 if (NDR_DIR_IS_OUT) { 607 NDR_TOPMOST_MEMBER (_ulong, status); 608 } 609 610 return 1; 611 } 612 613 614 615 int ndr__svcctl_OpenManager (struct ndr_reference *encl_ref); 616 struct ndr_typeinfo ndt__svcctl_OpenManager = { 617 1, /* NDR version */ 618 3, /* alignment */ 619 NDR_F_OPERATION, /* flags */ 620 ndr__svcctl_OpenManager, /* ndr_func */ 621 36, /* pdu_size_fixed_part */ 622 0, /* pdu_size_variable_part */ 623 36, /* c_size_fixed_part */ 624 0, /* c_size_variable_part */ 625 }; 626 627 628 /* 629 * [operation(15)] 630 */ 631 int 632 ndr__svcctl_OpenManager (struct ndr_reference *encl_ref) 633 { 634 struct svcctl_OpenManager *val = (struct svcctl_OpenManager *) encl_ref->datum; 635 struct ndr_reference myref; 636 637 (void) bzero(&myref, sizeof (myref)); 638 myref.enclosing = encl_ref; 639 myref.stream = encl_ref->stream; 640 641 /* do all members in order */ 642 if (NDR_DIR_IS_IN) { 643 NDR_TOPMOST_MEMBER_PTR (s_wchar, machine_name); 644 } 645 if (NDR_DIR_IS_IN) { 646 NDR_TOPMOST_MEMBER_PTR (s_wchar, database_name); 647 } 648 if (NDR_DIR_IS_IN) { 649 NDR_TOPMOST_MEMBER (_ulong, desired_access); 650 } 651 if (NDR_DIR_IS_OUT) { 652 NDR_TOPMOST_MEMBER (_svcctl_handle, handle); 653 } 654 if (NDR_DIR_IS_OUT) { 655 NDR_TOPMOST_MEMBER (_ulong, status); 656 } 657 658 return 1; 659 } 660 661 662 663 int ndr__svcctl_OpenService (struct ndr_reference *encl_ref); 664 struct ndr_typeinfo ndt__svcctl_OpenService = { 665 1, /* NDR version */ 666 3, /* alignment */ 667 NDR_F_OPERATION, /* flags */ 668 ndr__svcctl_OpenService, /* ndr_func */ 669 52, /* pdu_size_fixed_part */ 670 0, /* pdu_size_variable_part */ 671 52, /* c_size_fixed_part */ 672 0, /* c_size_variable_part */ 673 }; 674 675 676 /* 677 * [operation(16)] 678 */ 679 int 680 ndr__svcctl_OpenService (struct ndr_reference *encl_ref) 681 { 682 struct svcctl_OpenService *val = (struct svcctl_OpenService *) encl_ref->datum; 683 struct ndr_reference myref; 684 685 (void) bzero(&myref, sizeof (myref)); 686 myref.enclosing = encl_ref; 687 myref.stream = encl_ref->stream; 688 689 /* do all members in order */ 690 if (NDR_DIR_IS_IN) { 691 NDR_TOPMOST_MEMBER (_svcctl_handle, manager_handle); 692 } 693 if (NDR_DIR_IS_IN) { 694 NDR_TOPMOST_MEMBER_REF (s_wchar, service_name); 695 } 696 if (NDR_DIR_IS_IN) { 697 NDR_TOPMOST_MEMBER (_ulong, desired_access); 698 } 699 if (NDR_DIR_IS_OUT) { 700 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 701 } 702 if (NDR_DIR_IS_OUT) { 703 NDR_TOPMOST_MEMBER (_ulong, status); 704 } 705 706 return 1; 707 } 708 709 710 711 int ndr__svcctl_QueryServiceStatus (struct ndr_reference *encl_ref); 712 struct ndr_typeinfo ndt__svcctl_QueryServiceStatus = { 713 1, /* NDR version */ 714 3, /* alignment */ 715 NDR_F_OPERATION, /* flags */ 716 ndr__svcctl_QueryServiceStatus, /* ndr_func */ 717 52, /* pdu_size_fixed_part */ 718 0, /* pdu_size_variable_part */ 719 52, /* c_size_fixed_part */ 720 0, /* c_size_variable_part */ 721 }; 722 723 724 /* 725 * [operation(6)] 726 */ 727 int 728 ndr__svcctl_QueryServiceStatus (struct ndr_reference *encl_ref) 729 { 730 struct svcctl_QueryServiceStatus *val = (struct svcctl_QueryServiceStatus *) encl_ref->datum; 731 struct ndr_reference myref; 732 733 (void) bzero(&myref, sizeof (myref)); 734 myref.enclosing = encl_ref; 735 myref.stream = encl_ref->stream; 736 737 /* do all members in order */ 738 if (NDR_DIR_IS_IN) { 739 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 740 } 741 if (NDR_DIR_IS_OUT) { 742 NDR_TOPMOST_MEMBER (_svc_status, service_status); 743 } 744 if (NDR_DIR_IS_OUT) { 745 NDR_TOPMOST_MEMBER (_ulong, status); 746 } 747 748 return 1; 749 } 750 751 752 753 int ndr__svcctl_EnumDependentServices (struct ndr_reference *encl_ref); 754 struct ndr_typeinfo ndt__svcctl_EnumDependentServices = { 755 1, /* NDR version */ 756 3, /* alignment */ 757 NDR_F_OPERATION, /* flags */ 758 ndr__svcctl_EnumDependentServices, /* ndr_func */ 759 44, /* pdu_size_fixed_part */ 760 0, /* pdu_size_variable_part */ 761 44, /* c_size_fixed_part */ 762 0, /* c_size_variable_part */ 763 }; 764 765 766 /* 767 * [operation(13)] 768 */ 769 int 770 ndr__svcctl_EnumDependentServices (struct ndr_reference *encl_ref) 771 { 772 struct svcctl_EnumDependentServices *val = (struct svcctl_EnumDependentServices *) encl_ref->datum; 773 struct ndr_reference myref; 774 775 (void) bzero(&myref, sizeof (myref)); 776 myref.enclosing = encl_ref; 777 myref.stream = encl_ref->stream; 778 779 /* do all members in order */ 780 if (NDR_DIR_IS_IN) { 781 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 782 } 783 if (NDR_DIR_IS_IN) { 784 NDR_TOPMOST_MEMBER (_ulong, svc_state); 785 } 786 if (NDR_DIR_IS_IN) { 787 NDR_TOPMOST_MEMBER (_ulong, buf_size); 788 } 789 if (NDR_DIR_IS_OUT) { 790 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, services, 791 val->buf_size); 792 } 793 if (NDR_DIR_IS_OUT) { 794 NDR_TOPMOST_MEMBER (_ulong, bytes_needed); 795 } 796 if (NDR_DIR_IS_OUT) { 797 NDR_TOPMOST_MEMBER (_ulong, svc_num); 798 } 799 if (NDR_DIR_IS_OUT) { 800 NDR_TOPMOST_MEMBER (_ulong, status); 801 } 802 803 return 1; 804 } 805 806 807 808 int ndr__svcctl_EnumServicesStatus (struct ndr_reference *encl_ref); 809 struct ndr_typeinfo ndt__svcctl_EnumServicesStatus = { 810 1, /* NDR version */ 811 3, /* alignment */ 812 NDR_F_OPERATION, /* flags */ 813 ndr__svcctl_EnumServicesStatus, /* ndr_func */ 814 52, /* pdu_size_fixed_part */ 815 0, /* pdu_size_variable_part */ 816 52, /* c_size_fixed_part */ 817 0, /* c_size_variable_part */ 818 }; 819 820 821 /* 822 * [operation(14)] 823 */ 824 int 825 ndr__svcctl_EnumServicesStatus (struct ndr_reference *encl_ref) 826 { 827 struct svcctl_EnumServicesStatus *val = (struct svcctl_EnumServicesStatus *) encl_ref->datum; 828 struct ndr_reference myref; 829 830 (void) bzero(&myref, sizeof (myref)); 831 myref.enclosing = encl_ref; 832 myref.stream = encl_ref->stream; 833 834 /* do all members in order */ 835 if (NDR_DIR_IS_IN) { 836 NDR_TOPMOST_MEMBER (_svcctl_handle, manager_handle); 837 } 838 if (NDR_DIR_IS_IN) { 839 NDR_TOPMOST_MEMBER (_ulong, svc_type); 840 } 841 if (NDR_DIR_IS_IN) { 842 NDR_TOPMOST_MEMBER (_ulong, svc_state); 843 } 844 if (NDR_DIR_IS_IN) { 845 NDR_TOPMOST_MEMBER (_ulong, buf_size); 846 } 847 if (NDR_DIR_IS_OUT) { 848 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, services, 849 val->buf_size); 850 } 851 if (NDR_DIR_IS_OUT) { 852 NDR_TOPMOST_MEMBER (_ulong, bytes_needed); 853 } 854 if (NDR_DIR_IS_OUT) { 855 NDR_TOPMOST_MEMBER (_ulong, svc_num); 856 } 857 NDR_TOPMOST_MEMBER_PTR (_ulong, resume_handle); 858 if (NDR_DIR_IS_OUT) { 859 NDR_TOPMOST_MEMBER (_ulong, status); 860 } 861 862 return 1; 863 } 864 865 866 867 int ndr__svcctl_QueryServiceConfig (struct ndr_reference *encl_ref); 868 struct ndr_typeinfo ndt__svcctl_QueryServiceConfig = { 869 1, /* NDR version */ 870 3, /* alignment */ 871 NDR_F_OPERATION, /* flags */ 872 ndr__svcctl_QueryServiceConfig, /* ndr_func */ 873 68, /* pdu_size_fixed_part */ 874 0, /* pdu_size_variable_part */ 875 68, /* c_size_fixed_part */ 876 0, /* c_size_variable_part */ 877 }; 878 879 880 /* 881 * [operation(17)] 882 */ 883 int 884 ndr__svcctl_QueryServiceConfig (struct ndr_reference *encl_ref) 885 { 886 struct svcctl_QueryServiceConfig *val = (struct svcctl_QueryServiceConfig *) encl_ref->datum; 887 struct ndr_reference myref; 888 889 (void) bzero(&myref, sizeof (myref)); 890 myref.enclosing = encl_ref; 891 myref.stream = encl_ref->stream; 892 893 /* do all members in order */ 894 if (NDR_DIR_IS_IN) { 895 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 896 } 897 if (NDR_DIR_IS_IN) { 898 NDR_TOPMOST_MEMBER (_ulong, buf_size); 899 } 900 if (NDR_DIR_IS_OUT) { 901 NDR_TOPMOST_MEMBER (_svc_config, service_cfg); 902 } 903 if (NDR_DIR_IS_OUT) { 904 NDR_TOPMOST_MEMBER (_ulong, cfg_bytes); 905 } 906 if (NDR_DIR_IS_OUT) { 907 NDR_TOPMOST_MEMBER (_ulong, status); 908 } 909 910 return 1; 911 } 912 913 914 915 int ndr__svcctl_StartService (struct ndr_reference *encl_ref); 916 struct ndr_typeinfo ndt__svcctl_StartService = { 917 1, /* NDR version */ 918 3, /* alignment */ 919 NDR_F_OPERATION, /* flags */ 920 ndr__svcctl_StartService, /* ndr_func */ 921 32, /* pdu_size_fixed_part */ 922 0, /* pdu_size_variable_part */ 923 32, /* c_size_fixed_part */ 924 0, /* c_size_variable_part */ 925 }; 926 927 928 /* 929 * [operation(19)] 930 */ 931 int 932 ndr__svcctl_StartService (struct ndr_reference *encl_ref) 933 { 934 struct svcctl_StartService *val = (struct svcctl_StartService *) encl_ref->datum; 935 struct ndr_reference myref; 936 937 (void) bzero(&myref, sizeof (myref)); 938 myref.enclosing = encl_ref; 939 myref.stream = encl_ref->stream; 940 941 /* do all members in order */ 942 if (NDR_DIR_IS_IN) { 943 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 944 } 945 if (NDR_DIR_IS_IN) { 946 NDR_TOPMOST_MEMBER (_ulong, argc); 947 } 948 if (NDR_DIR_IS_IN) { 949 NDR_TOPMOST_MEMBER (_ulong, argv); 950 } 951 if (NDR_DIR_IS_OUT) { 952 NDR_TOPMOST_MEMBER (_ulong, status); 953 } 954 955 return 1; 956 } 957 958 959 960 int ndr__svcctl_GetServiceDisplayNameW (struct ndr_reference *encl_ref); 961 struct ndr_typeinfo ndt__svcctl_GetServiceDisplayNameW = { 962 1, /* NDR version */ 963 3, /* alignment */ 964 NDR_F_OPERATION, /* flags */ 965 ndr__svcctl_GetServiceDisplayNameW, /* ndr_func */ 966 36, /* pdu_size_fixed_part */ 967 0, /* pdu_size_variable_part */ 968 36, /* c_size_fixed_part */ 969 0, /* c_size_variable_part */ 970 }; 971 972 973 /* 974 * [operation(20)] 975 */ 976 int 977 ndr__svcctl_GetServiceDisplayNameW (struct ndr_reference *encl_ref) 978 { 979 struct svcctl_GetServiceDisplayNameW *val = (struct svcctl_GetServiceDisplayNameW *) encl_ref->datum; 980 struct ndr_reference myref; 981 982 (void) bzero(&myref, sizeof (myref)); 983 myref.enclosing = encl_ref; 984 myref.stream = encl_ref->stream; 985 986 /* do all members in order */ 987 if (NDR_DIR_IS_IN) { 988 NDR_TOPMOST_MEMBER (_svcctl_handle, manager_handle); 989 } 990 if (NDR_DIR_IS_IN) { 991 NDR_TOPMOST_MEMBER_REF (s_wchar, service_name); 992 } 993 if (NDR_DIR_IS_OUT) { 994 NDR_TOPMOST_MEMBER_REF (s_wchar, display_name); 995 } 996 NDR_TOPMOST_MEMBER (_ulong, buf_size); 997 if (NDR_DIR_IS_OUT) { 998 NDR_TOPMOST_MEMBER (_ulong, status); 999 } 1000 1001 return 1; 1002 } 1003 1004 1005 1006 int ndr__svcctl_GetServiceKeyNameW (struct ndr_reference *encl_ref); 1007 struct ndr_typeinfo ndt__svcctl_GetServiceKeyNameW = { 1008 1, /* NDR version */ 1009 3, /* alignment */ 1010 NDR_F_OPERATION, /* flags */ 1011 ndr__svcctl_GetServiceKeyNameW, /* ndr_func */ 1012 36, /* pdu_size_fixed_part */ 1013 0, /* pdu_size_variable_part */ 1014 36, /* c_size_fixed_part */ 1015 0, /* c_size_variable_part */ 1016 }; 1017 1018 1019 /* 1020 * [operation(21)] 1021 */ 1022 int 1023 ndr__svcctl_GetServiceKeyNameW (struct ndr_reference *encl_ref) 1024 { 1025 struct svcctl_GetServiceKeyNameW *val = (struct svcctl_GetServiceKeyNameW *) encl_ref->datum; 1026 struct ndr_reference myref; 1027 1028 (void) bzero(&myref, sizeof (myref)); 1029 myref.enclosing = encl_ref; 1030 myref.stream = encl_ref->stream; 1031 1032 /* do all members in order */ 1033 if (NDR_DIR_IS_IN) { 1034 NDR_TOPMOST_MEMBER (_svcctl_handle, manager_handle); 1035 } 1036 if (NDR_DIR_IS_IN) { 1037 NDR_TOPMOST_MEMBER_REF (s_wchar, service_name); 1038 } 1039 if (NDR_DIR_IS_OUT) { 1040 NDR_TOPMOST_MEMBER_REF (s_wchar, key_name); 1041 } 1042 NDR_TOPMOST_MEMBER (_ulong, buf_size); 1043 if (NDR_DIR_IS_OUT) { 1044 NDR_TOPMOST_MEMBER (_ulong, status); 1045 } 1046 1047 return 1; 1048 } 1049 1050 1051 1052 int ndr__svcctl_OpenSCManagerA (struct ndr_reference *encl_ref); 1053 struct ndr_typeinfo ndt__svcctl_OpenSCManagerA = { 1054 1, /* NDR version */ 1055 3, /* alignment */ 1056 NDR_F_OPERATION, /* flags */ 1057 ndr__svcctl_OpenSCManagerA, /* ndr_func */ 1058 36, /* pdu_size_fixed_part */ 1059 0, /* pdu_size_variable_part */ 1060 36, /* c_size_fixed_part */ 1061 0, /* c_size_variable_part */ 1062 }; 1063 1064 1065 /* 1066 * [operation(27)] 1067 */ 1068 int 1069 ndr__svcctl_OpenSCManagerA (struct ndr_reference *encl_ref) 1070 { 1071 struct svcctl_OpenSCManagerA *val = (struct svcctl_OpenSCManagerA *) encl_ref->datum; 1072 struct ndr_reference myref; 1073 1074 (void) bzero(&myref, sizeof (myref)); 1075 myref.enclosing = encl_ref; 1076 myref.stream = encl_ref->stream; 1077 1078 /* do all members in order */ 1079 if (NDR_DIR_IS_IN) { 1080 NDR_TOPMOST_MEMBER_PTR (_svcctl_value, machine_name); 1081 } 1082 if (NDR_DIR_IS_IN) { 1083 NDR_TOPMOST_MEMBER_PTR (_svcctl_value, database_name); 1084 } 1085 if (NDR_DIR_IS_IN) { 1086 NDR_TOPMOST_MEMBER (_ulong, desired_access); 1087 } 1088 if (NDR_DIR_IS_OUT) { 1089 NDR_TOPMOST_MEMBER (_svcctl_handle, handle); 1090 } 1091 if (NDR_DIR_IS_OUT) { 1092 NDR_TOPMOST_MEMBER (_ulong, status); 1093 } 1094 1095 return 1; 1096 } 1097 1098 1099 1100 int ndr__svcctl_OpenServiceA (struct ndr_reference *encl_ref); 1101 struct ndr_typeinfo ndt__svcctl_OpenServiceA = { 1102 1, /* NDR version */ 1103 3, /* alignment */ 1104 NDR_F_OPERATION, /* flags */ 1105 ndr__svcctl_OpenServiceA, /* ndr_func */ 1106 52, /* pdu_size_fixed_part */ 1107 0, /* pdu_size_variable_part */ 1108 52, /* c_size_fixed_part */ 1109 0, /* c_size_variable_part */ 1110 }; 1111 1112 1113 /* 1114 * [operation(28)] 1115 */ 1116 int 1117 ndr__svcctl_OpenServiceA (struct ndr_reference *encl_ref) 1118 { 1119 struct svcctl_OpenServiceA *val = (struct svcctl_OpenServiceA *) encl_ref->datum; 1120 struct ndr_reference myref; 1121 1122 (void) bzero(&myref, sizeof (myref)); 1123 myref.enclosing = encl_ref; 1124 myref.stream = encl_ref->stream; 1125 1126 /* do all members in order */ 1127 if (NDR_DIR_IS_IN) { 1128 NDR_TOPMOST_MEMBER (_svcctl_handle, manager_handle); 1129 } 1130 if (NDR_DIR_IS_IN) { 1131 NDR_TOPMOST_MEMBER_REF (_svcctl_value, service_name); 1132 } 1133 if (NDR_DIR_IS_IN) { 1134 NDR_TOPMOST_MEMBER (_ulong, desired_access); 1135 } 1136 if (NDR_DIR_IS_OUT) { 1137 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 1138 } 1139 if (NDR_DIR_IS_OUT) { 1140 NDR_TOPMOST_MEMBER (_ulong, status); 1141 } 1142 1143 return 1; 1144 } 1145 1146 1147 1148 int ndr__svcctl_EnumServicesStatusA (struct ndr_reference *encl_ref); 1149 struct ndr_typeinfo ndt__svcctl_EnumServicesStatusA = { 1150 1, /* NDR version */ 1151 3, /* alignment */ 1152 NDR_F_OPERATION, /* flags */ 1153 ndr__svcctl_EnumServicesStatusA, /* ndr_func */ 1154 52, /* pdu_size_fixed_part */ 1155 0, /* pdu_size_variable_part */ 1156 52, /* c_size_fixed_part */ 1157 0, /* c_size_variable_part */ 1158 }; 1159 1160 1161 /* 1162 * [operation(26)] 1163 */ 1164 int 1165 ndr__svcctl_EnumServicesStatusA (struct ndr_reference *encl_ref) 1166 { 1167 struct svcctl_EnumServicesStatusA *val = (struct svcctl_EnumServicesStatusA *) encl_ref->datum; 1168 struct ndr_reference myref; 1169 1170 (void) bzero(&myref, sizeof (myref)); 1171 myref.enclosing = encl_ref; 1172 myref.stream = encl_ref->stream; 1173 1174 /* do all members in order */ 1175 if (NDR_DIR_IS_IN) { 1176 NDR_TOPMOST_MEMBER (_svcctl_handle, manager_handle); 1177 } 1178 if (NDR_DIR_IS_IN) { 1179 NDR_TOPMOST_MEMBER (_ulong, svc_type); 1180 } 1181 if (NDR_DIR_IS_IN) { 1182 NDR_TOPMOST_MEMBER (_ulong, svc_state); 1183 } 1184 if (NDR_DIR_IS_IN) { 1185 NDR_TOPMOST_MEMBER (_ulong, buf_size); 1186 } 1187 if (NDR_DIR_IS_OUT) { 1188 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, services, 1189 val->buf_size); 1190 } 1191 if (NDR_DIR_IS_OUT) { 1192 NDR_TOPMOST_MEMBER (_ulong, bytes_needed); 1193 } 1194 if (NDR_DIR_IS_OUT) { 1195 NDR_TOPMOST_MEMBER (_ulong, svc_num); 1196 } 1197 NDR_TOPMOST_MEMBER_PTR (_ulong, resume_handle); 1198 if (NDR_DIR_IS_OUT) { 1199 NDR_TOPMOST_MEMBER (_ulong, status); 1200 } 1201 1202 return 1; 1203 } 1204 1205 1206 1207 int ndr__svcctl_QueryServiceConfig2W (struct ndr_reference *encl_ref); 1208 struct ndr_typeinfo ndt__svcctl_QueryServiceConfig2W = { 1209 1, /* NDR version */ 1210 3, /* alignment */ 1211 NDR_F_OPERATION, /* flags */ 1212 ndr__svcctl_QueryServiceConfig2W, /* ndr_func */ 1213 40, /* pdu_size_fixed_part */ 1214 0, /* pdu_size_variable_part */ 1215 40, /* c_size_fixed_part */ 1216 0, /* c_size_variable_part */ 1217 }; 1218 1219 1220 /* 1221 * [operation(39)] 1222 */ 1223 int 1224 ndr__svcctl_QueryServiceConfig2W (struct ndr_reference *encl_ref) 1225 { 1226 struct svcctl_QueryServiceConfig2W *val = (struct svcctl_QueryServiceConfig2W *) encl_ref->datum; 1227 struct ndr_reference myref; 1228 1229 (void) bzero(&myref, sizeof (myref)); 1230 myref.enclosing = encl_ref; 1231 myref.stream = encl_ref->stream; 1232 1233 /* do all members in order */ 1234 if (NDR_DIR_IS_IN) { 1235 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 1236 } 1237 if (NDR_DIR_IS_IN) { 1238 NDR_TOPMOST_MEMBER (_ulong, info_level); 1239 } 1240 if (NDR_DIR_IS_IN) { 1241 NDR_TOPMOST_MEMBER (_ulong, buf_size); 1242 } 1243 if (NDR_DIR_IS_OUT) { 1244 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, buffer, 1245 val->buf_size); 1246 } 1247 if (NDR_DIR_IS_OUT) { 1248 NDR_TOPMOST_MEMBER (_ulong, bytes_needed); 1249 } 1250 if (NDR_DIR_IS_OUT) { 1251 NDR_TOPMOST_MEMBER (_ulong, status); 1252 } 1253 1254 return 1; 1255 } 1256 1257 1258 1259 int ndr__svc_status_ex (struct ndr_reference *encl_ref); 1260 struct ndr_typeinfo ndt__svc_status_ex = { 1261 1, /* NDR version */ 1262 3, /* alignment */ 1263 NDR_F_STRUCT, /* flags */ 1264 ndr__svc_status_ex, /* ndr_func */ 1265 36, /* pdu_size_fixed_part */ 1266 0, /* pdu_size_variable_part */ 1267 36, /* c_size_fixed_part */ 1268 0, /* c_size_variable_part */ 1269 }; 1270 1271 1272 /* 1273 * */ 1274 int 1275 ndr__svc_status_ex (struct ndr_reference *encl_ref) 1276 { 1277 struct svc_status_ex *val = (struct svc_status_ex *) encl_ref->datum; 1278 struct ndr_reference myref; 1279 1280 (void) bzero(&myref, sizeof (myref)); 1281 myref.enclosing = encl_ref; 1282 myref.stream = encl_ref->stream; 1283 1284 /* do all basic elements first */ 1285 NDR_MEMBER (_ulong, service_type, 0UL); 1286 NDR_MEMBER (_ulong, cur_state, 4UL); 1287 NDR_MEMBER (_ulong, ctrl_accepted, 8UL); 1288 NDR_MEMBER (_ulong, w32_exitcode, 12UL); 1289 NDR_MEMBER (_ulong, svc_specified_exitcode, 16UL); 1290 NDR_MEMBER (_ulong, check_point, 20UL); 1291 NDR_MEMBER (_ulong, wait_hint, 24UL); 1292 NDR_MEMBER (_ulong, process_id, 28UL); 1293 NDR_MEMBER (_ulong, service_flags, 32UL); 1294 1295 /* do all constructed elements w/o pointers */ 1296 1297 /* do members with pointers in order */ 1298 1299 return 1; 1300 } 1301 1302 1303 1304 int ndr__svcctl_QueryServiceStatusEx (struct ndr_reference *encl_ref); 1305 struct ndr_typeinfo ndt__svcctl_QueryServiceStatusEx = { 1306 1, /* NDR version */ 1307 3, /* alignment */ 1308 NDR_F_OPERATION, /* flags */ 1309 ndr__svcctl_QueryServiceStatusEx, /* ndr_func */ 1310 40, /* pdu_size_fixed_part */ 1311 0, /* pdu_size_variable_part */ 1312 40, /* c_size_fixed_part */ 1313 0, /* c_size_variable_part */ 1314 }; 1315 1316 1317 /* 1318 * [operation(40)] 1319 */ 1320 int 1321 ndr__svcctl_QueryServiceStatusEx (struct ndr_reference *encl_ref) 1322 { 1323 struct svcctl_QueryServiceStatusEx *val = (struct svcctl_QueryServiceStatusEx *) encl_ref->datum; 1324 struct ndr_reference myref; 1325 1326 (void) bzero(&myref, sizeof (myref)); 1327 myref.enclosing = encl_ref; 1328 myref.stream = encl_ref->stream; 1329 1330 /* do all members in order */ 1331 if (NDR_DIR_IS_IN) { 1332 NDR_TOPMOST_MEMBER (_svcctl_handle, service_handle); 1333 } 1334 if (NDR_DIR_IS_IN) { 1335 NDR_TOPMOST_MEMBER (_ulong, info_level); 1336 } 1337 if (NDR_DIR_IS_IN) { 1338 NDR_TOPMOST_MEMBER (_ulong, buf_size); 1339 } 1340 if (NDR_DIR_IS_OUT) { 1341 NDR_TOPMOST_MEMBER_REF_WITH_SIZE_IS (_uchar, buffer, 1342 val->buf_size); 1343 } 1344 if (NDR_DIR_IS_OUT) { 1345 NDR_TOPMOST_MEMBER (_ulong, bytes_needed); 1346 } 1347 if (NDR_DIR_IS_OUT) { 1348 NDR_TOPMOST_MEMBER (_ulong, status); 1349 } 1350 1351 return 1; 1352 } 1353 1354 1355 1356 int ndr__svcctl_interface (struct ndr_reference *encl_ref); 1357 struct ndr_typeinfo ndt__svcctl_interface = { 1358 1, /* NDR version */ 1359 3, /* alignment */ 1360 NDR_F_INTERFACE, /* flags */ 1361 ndr__svcctl_interface, /* ndr_func */ 1362 68, /* pdu_size_fixed_part */ 1363 0, /* pdu_size_variable_part */ 1364 68, /* c_size_fixed_part */ 1365 0, /* c_size_variable_part */ 1366 }; 1367 1368 1369 /* 1370 * [interface(0)] 1371 */ 1372 int 1373 ndr__svcctl_interface (struct ndr_reference *encl_ref) 1374 { 1375 union svcctl_interface *val = (union svcctl_interface *) encl_ref->datum; 1376 struct ndr_reference myref; 1377 1378 (void) bzero(&myref, sizeof (myref)); 1379 myref.enclosing = encl_ref; 1380 myref.stream = encl_ref->stream; 1381 1382 switch (encl_ref->switch_is) { 1383 case 0: 1384 NDR_PARAMS_MEMBER (_svcctl_Close, SvcClose); 1385 break; 1386 1387 case 1: 1388 NDR_PARAMS_MEMBER (_svcctl_ControlService, SvcControlService); 1389 break; 1390 1391 case 2: 1392 NDR_PARAMS_MEMBER (_svcctl_DeleteService, SvcDeleteService); 1393 break; 1394 1395 case 4: 1396 NDR_PARAMS_MEMBER (_svcctl_QueryServiceSecurity, SvcQueryServiceSecurity); 1397 break; 1398 1399 case 5: 1400 NDR_PARAMS_MEMBER (_svcctl_SetServiceSecurity, SvcSetServiceSecurity); 1401 break; 1402 1403 case 15: 1404 NDR_PARAMS_MEMBER (_svcctl_OpenManager, SvcOpenManager); 1405 break; 1406 1407 case 16: 1408 NDR_PARAMS_MEMBER (_svcctl_OpenService, SvcOpenService); 1409 break; 1410 1411 case 6: 1412 NDR_PARAMS_MEMBER (_svcctl_QueryServiceStatus, SvcQueryServiceStatus); 1413 break; 1414 1415 case 13: 1416 NDR_PARAMS_MEMBER (_svcctl_EnumDependentServices, Svc_EnumDependentServices); 1417 break; 1418 1419 case 14: 1420 NDR_PARAMS_MEMBER (_svcctl_EnumServicesStatus, SvcEnumServicesStatus); 1421 break; 1422 1423 case 17: 1424 NDR_PARAMS_MEMBER (_svcctl_QueryServiceConfig, SvcQueryServiceConfig); 1425 break; 1426 1427 case 19: 1428 NDR_PARAMS_MEMBER (_svcctl_StartService, SvcStartService); 1429 break; 1430 1431 case 20: 1432 NDR_PARAMS_MEMBER (_svcctl_GetServiceDisplayNameW, SvcGetServiceDisplayNameW); 1433 break; 1434 1435 case 21: 1436 NDR_PARAMS_MEMBER (_svcctl_GetServiceKeyNameW, SvcGetServiceKeyNameW); 1437 break; 1438 1439 case 27: 1440 NDR_PARAMS_MEMBER (_svcctl_OpenSCManagerA, SvcOpenSCManagerA); 1441 break; 1442 1443 case 28: 1444 NDR_PARAMS_MEMBER (_svcctl_OpenServiceA, SvcOpenServiceA); 1445 break; 1446 1447 case 26: 1448 NDR_PARAMS_MEMBER (_svcctl_EnumServicesStatusA, SvcEnumServicesStatusA); 1449 break; 1450 1451 case 39: 1452 NDR_PARAMS_MEMBER (_svcctl_QueryServiceConfig2W, SvcQueryServiceConfig2W); 1453 break; 1454 1455 case 40: 1456 NDR_PARAMS_MEMBER (_svcctl_QueryServiceStatusEx, SvcQueryServiceStatusEx); 1457 break; 1458 1459 default: 1460 NDR_SET_ERROR(encl_ref, NDR_ERR_SWITCH_VALUE_INVALID); 1461 return 0; 1462 break; 1463 } 1464 1465 1466 return 1; 1467 } 1468