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