Re-run make idl.
[Samba.git] / source / librpc / gen_ndr / srv_ntsvcs.c
blobb51f9304148934f3e3193bc52efb9c70353221a8
1 /*
2 * Unix SMB/CIFS implementation.
3 * server auto-generated by pidl. DO NOT MODIFY!
4 */
6 #include "includes.h"
7 #include "librpc/gen_ndr/srv_ntsvcs.h"
9 static bool api_PNP_Disconnect(pipes_struct *p)
11 const struct ndr_interface_call *call;
12 struct ndr_pull *pull;
13 struct ndr_push *push;
14 enum ndr_err_code ndr_err;
15 DATA_BLOB blob;
16 struct PNP_Disconnect *r;
18 call = &ndr_table_ntsvcs.calls[NDR_PNP_DISCONNECT];
20 r = talloc(talloc_tos(), struct PNP_Disconnect);
21 if (r == NULL) {
22 return false;
25 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
26 talloc_free(r);
27 return false;
30 pull = ndr_pull_init_blob(&blob, r);
31 if (pull == NULL) {
32 talloc_free(r);
33 return false;
36 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
37 ndr_err = call->ndr_pull(pull, NDR_IN, r);
38 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
39 talloc_free(r);
40 return false;
43 if (DEBUGLEVEL >= 10) {
44 NDR_PRINT_IN_DEBUG(PNP_Disconnect, r);
47 r->out.result = _PNP_Disconnect(p, r);
49 if (p->rng_fault_state) {
50 talloc_free(r);
51 /* Return true here, srv_pipe_hnd.c will take care */
52 return true;
55 if (DEBUGLEVEL >= 10) {
56 NDR_PRINT_OUT_DEBUG(PNP_Disconnect, r);
59 push = ndr_push_init_ctx(r);
60 if (push == NULL) {
61 talloc_free(r);
62 return false;
65 ndr_err = call->ndr_push(push, NDR_OUT, r);
66 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
67 talloc_free(r);
68 return false;
71 blob = ndr_push_blob(push);
72 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
73 talloc_free(r);
74 return false;
77 talloc_free(r);
79 return true;
82 static bool api_PNP_Connect(pipes_struct *p)
84 const struct ndr_interface_call *call;
85 struct ndr_pull *pull;
86 struct ndr_push *push;
87 enum ndr_err_code ndr_err;
88 DATA_BLOB blob;
89 struct PNP_Connect *r;
91 call = &ndr_table_ntsvcs.calls[NDR_PNP_CONNECT];
93 r = talloc(talloc_tos(), struct PNP_Connect);
94 if (r == NULL) {
95 return false;
98 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
99 talloc_free(r);
100 return false;
103 pull = ndr_pull_init_blob(&blob, r);
104 if (pull == NULL) {
105 talloc_free(r);
106 return false;
109 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
110 ndr_err = call->ndr_pull(pull, NDR_IN, r);
111 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
112 talloc_free(r);
113 return false;
116 if (DEBUGLEVEL >= 10) {
117 NDR_PRINT_IN_DEBUG(PNP_Connect, r);
120 r->out.result = _PNP_Connect(p, r);
122 if (p->rng_fault_state) {
123 talloc_free(r);
124 /* Return true here, srv_pipe_hnd.c will take care */
125 return true;
128 if (DEBUGLEVEL >= 10) {
129 NDR_PRINT_OUT_DEBUG(PNP_Connect, r);
132 push = ndr_push_init_ctx(r);
133 if (push == NULL) {
134 talloc_free(r);
135 return false;
138 ndr_err = call->ndr_push(push, NDR_OUT, r);
139 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
140 talloc_free(r);
141 return false;
144 blob = ndr_push_blob(push);
145 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
146 talloc_free(r);
147 return false;
150 talloc_free(r);
152 return true;
155 static bool api_PNP_GetVersion(pipes_struct *p)
157 const struct ndr_interface_call *call;
158 struct ndr_pull *pull;
159 struct ndr_push *push;
160 enum ndr_err_code ndr_err;
161 DATA_BLOB blob;
162 struct PNP_GetVersion *r;
164 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETVERSION];
166 r = talloc(talloc_tos(), struct PNP_GetVersion);
167 if (r == NULL) {
168 return false;
171 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
172 talloc_free(r);
173 return false;
176 pull = ndr_pull_init_blob(&blob, r);
177 if (pull == NULL) {
178 talloc_free(r);
179 return false;
182 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
183 ndr_err = call->ndr_pull(pull, NDR_IN, r);
184 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
185 talloc_free(r);
186 return false;
189 if (DEBUGLEVEL >= 10) {
190 NDR_PRINT_IN_DEBUG(PNP_GetVersion, r);
193 ZERO_STRUCT(r->out);
194 r->out.version = talloc_zero(r, uint16_t);
195 if (r->out.version == NULL) {
196 talloc_free(r);
197 return false;
200 r->out.result = _PNP_GetVersion(p, r);
202 if (p->rng_fault_state) {
203 talloc_free(r);
204 /* Return true here, srv_pipe_hnd.c will take care */
205 return true;
208 if (DEBUGLEVEL >= 10) {
209 NDR_PRINT_OUT_DEBUG(PNP_GetVersion, r);
212 push = ndr_push_init_ctx(r);
213 if (push == NULL) {
214 talloc_free(r);
215 return false;
218 ndr_err = call->ndr_push(push, NDR_OUT, r);
219 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
220 talloc_free(r);
221 return false;
224 blob = ndr_push_blob(push);
225 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
226 talloc_free(r);
227 return false;
230 talloc_free(r);
232 return true;
235 static bool api_PNP_GetGlobalState(pipes_struct *p)
237 const struct ndr_interface_call *call;
238 struct ndr_pull *pull;
239 struct ndr_push *push;
240 enum ndr_err_code ndr_err;
241 DATA_BLOB blob;
242 struct PNP_GetGlobalState *r;
244 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETGLOBALSTATE];
246 r = talloc(talloc_tos(), struct PNP_GetGlobalState);
247 if (r == NULL) {
248 return false;
251 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
252 talloc_free(r);
253 return false;
256 pull = ndr_pull_init_blob(&blob, r);
257 if (pull == NULL) {
258 talloc_free(r);
259 return false;
262 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
263 ndr_err = call->ndr_pull(pull, NDR_IN, r);
264 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
265 talloc_free(r);
266 return false;
269 if (DEBUGLEVEL >= 10) {
270 NDR_PRINT_IN_DEBUG(PNP_GetGlobalState, r);
273 r->out.result = _PNP_GetGlobalState(p, r);
275 if (p->rng_fault_state) {
276 talloc_free(r);
277 /* Return true here, srv_pipe_hnd.c will take care */
278 return true;
281 if (DEBUGLEVEL >= 10) {
282 NDR_PRINT_OUT_DEBUG(PNP_GetGlobalState, r);
285 push = ndr_push_init_ctx(r);
286 if (push == NULL) {
287 talloc_free(r);
288 return false;
291 ndr_err = call->ndr_push(push, NDR_OUT, r);
292 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
293 talloc_free(r);
294 return false;
297 blob = ndr_push_blob(push);
298 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
299 talloc_free(r);
300 return false;
303 talloc_free(r);
305 return true;
308 static bool api_PNP_InitDetection(pipes_struct *p)
310 const struct ndr_interface_call *call;
311 struct ndr_pull *pull;
312 struct ndr_push *push;
313 enum ndr_err_code ndr_err;
314 DATA_BLOB blob;
315 struct PNP_InitDetection *r;
317 call = &ndr_table_ntsvcs.calls[NDR_PNP_INITDETECTION];
319 r = talloc(talloc_tos(), struct PNP_InitDetection);
320 if (r == NULL) {
321 return false;
324 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
325 talloc_free(r);
326 return false;
329 pull = ndr_pull_init_blob(&blob, r);
330 if (pull == NULL) {
331 talloc_free(r);
332 return false;
335 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
336 ndr_err = call->ndr_pull(pull, NDR_IN, r);
337 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
338 talloc_free(r);
339 return false;
342 if (DEBUGLEVEL >= 10) {
343 NDR_PRINT_IN_DEBUG(PNP_InitDetection, r);
346 r->out.result = _PNP_InitDetection(p, r);
348 if (p->rng_fault_state) {
349 talloc_free(r);
350 /* Return true here, srv_pipe_hnd.c will take care */
351 return true;
354 if (DEBUGLEVEL >= 10) {
355 NDR_PRINT_OUT_DEBUG(PNP_InitDetection, r);
358 push = ndr_push_init_ctx(r);
359 if (push == NULL) {
360 talloc_free(r);
361 return false;
364 ndr_err = call->ndr_push(push, NDR_OUT, r);
365 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
366 talloc_free(r);
367 return false;
370 blob = ndr_push_blob(push);
371 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
372 talloc_free(r);
373 return false;
376 talloc_free(r);
378 return true;
381 static bool api_PNP_ReportLogOn(pipes_struct *p)
383 const struct ndr_interface_call *call;
384 struct ndr_pull *pull;
385 struct ndr_push *push;
386 enum ndr_err_code ndr_err;
387 DATA_BLOB blob;
388 struct PNP_ReportLogOn *r;
390 call = &ndr_table_ntsvcs.calls[NDR_PNP_REPORTLOGON];
392 r = talloc(talloc_tos(), struct PNP_ReportLogOn);
393 if (r == NULL) {
394 return false;
397 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
398 talloc_free(r);
399 return false;
402 pull = ndr_pull_init_blob(&blob, r);
403 if (pull == NULL) {
404 talloc_free(r);
405 return false;
408 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
409 ndr_err = call->ndr_pull(pull, NDR_IN, r);
410 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
411 talloc_free(r);
412 return false;
415 if (DEBUGLEVEL >= 10) {
416 NDR_PRINT_IN_DEBUG(PNP_ReportLogOn, r);
419 r->out.result = _PNP_ReportLogOn(p, r);
421 if (p->rng_fault_state) {
422 talloc_free(r);
423 /* Return true here, srv_pipe_hnd.c will take care */
424 return true;
427 if (DEBUGLEVEL >= 10) {
428 NDR_PRINT_OUT_DEBUG(PNP_ReportLogOn, r);
431 push = ndr_push_init_ctx(r);
432 if (push == NULL) {
433 talloc_free(r);
434 return false;
437 ndr_err = call->ndr_push(push, NDR_OUT, r);
438 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
439 talloc_free(r);
440 return false;
443 blob = ndr_push_blob(push);
444 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
445 talloc_free(r);
446 return false;
449 talloc_free(r);
451 return true;
454 static bool api_PNP_ValidateDeviceInstance(pipes_struct *p)
456 const struct ndr_interface_call *call;
457 struct ndr_pull *pull;
458 struct ndr_push *push;
459 enum ndr_err_code ndr_err;
460 DATA_BLOB blob;
461 struct PNP_ValidateDeviceInstance *r;
463 call = &ndr_table_ntsvcs.calls[NDR_PNP_VALIDATEDEVICEINSTANCE];
465 r = talloc(talloc_tos(), struct PNP_ValidateDeviceInstance);
466 if (r == NULL) {
467 return false;
470 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
471 talloc_free(r);
472 return false;
475 pull = ndr_pull_init_blob(&blob, r);
476 if (pull == NULL) {
477 talloc_free(r);
478 return false;
481 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
482 ndr_err = call->ndr_pull(pull, NDR_IN, r);
483 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
484 talloc_free(r);
485 return false;
488 if (DEBUGLEVEL >= 10) {
489 NDR_PRINT_IN_DEBUG(PNP_ValidateDeviceInstance, r);
492 r->out.result = _PNP_ValidateDeviceInstance(p, r);
494 if (p->rng_fault_state) {
495 talloc_free(r);
496 /* Return true here, srv_pipe_hnd.c will take care */
497 return true;
500 if (DEBUGLEVEL >= 10) {
501 NDR_PRINT_OUT_DEBUG(PNP_ValidateDeviceInstance, r);
504 push = ndr_push_init_ctx(r);
505 if (push == NULL) {
506 talloc_free(r);
507 return false;
510 ndr_err = call->ndr_push(push, NDR_OUT, r);
511 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
512 talloc_free(r);
513 return false;
516 blob = ndr_push_blob(push);
517 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
518 talloc_free(r);
519 return false;
522 talloc_free(r);
524 return true;
527 static bool api_PNP_GetRootDeviceInstance(pipes_struct *p)
529 const struct ndr_interface_call *call;
530 struct ndr_pull *pull;
531 struct ndr_push *push;
532 enum ndr_err_code ndr_err;
533 DATA_BLOB blob;
534 struct PNP_GetRootDeviceInstance *r;
536 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETROOTDEVICEINSTANCE];
538 r = talloc(talloc_tos(), struct PNP_GetRootDeviceInstance);
539 if (r == NULL) {
540 return false;
543 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
544 talloc_free(r);
545 return false;
548 pull = ndr_pull_init_blob(&blob, r);
549 if (pull == NULL) {
550 talloc_free(r);
551 return false;
554 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
555 ndr_err = call->ndr_pull(pull, NDR_IN, r);
556 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
557 talloc_free(r);
558 return false;
561 if (DEBUGLEVEL >= 10) {
562 NDR_PRINT_IN_DEBUG(PNP_GetRootDeviceInstance, r);
565 r->out.result = _PNP_GetRootDeviceInstance(p, r);
567 if (p->rng_fault_state) {
568 talloc_free(r);
569 /* Return true here, srv_pipe_hnd.c will take care */
570 return true;
573 if (DEBUGLEVEL >= 10) {
574 NDR_PRINT_OUT_DEBUG(PNP_GetRootDeviceInstance, r);
577 push = ndr_push_init_ctx(r);
578 if (push == NULL) {
579 talloc_free(r);
580 return false;
583 ndr_err = call->ndr_push(push, NDR_OUT, r);
584 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
585 talloc_free(r);
586 return false;
589 blob = ndr_push_blob(push);
590 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
591 talloc_free(r);
592 return false;
595 talloc_free(r);
597 return true;
600 static bool api_PNP_GetRelatedDeviceInstance(pipes_struct *p)
602 const struct ndr_interface_call *call;
603 struct ndr_pull *pull;
604 struct ndr_push *push;
605 enum ndr_err_code ndr_err;
606 DATA_BLOB blob;
607 struct PNP_GetRelatedDeviceInstance *r;
609 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETRELATEDDEVICEINSTANCE];
611 r = talloc(talloc_tos(), struct PNP_GetRelatedDeviceInstance);
612 if (r == NULL) {
613 return false;
616 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
617 talloc_free(r);
618 return false;
621 pull = ndr_pull_init_blob(&blob, r);
622 if (pull == NULL) {
623 talloc_free(r);
624 return false;
627 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
628 ndr_err = call->ndr_pull(pull, NDR_IN, r);
629 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
630 talloc_free(r);
631 return false;
634 if (DEBUGLEVEL >= 10) {
635 NDR_PRINT_IN_DEBUG(PNP_GetRelatedDeviceInstance, r);
638 r->out.result = _PNP_GetRelatedDeviceInstance(p, r);
640 if (p->rng_fault_state) {
641 talloc_free(r);
642 /* Return true here, srv_pipe_hnd.c will take care */
643 return true;
646 if (DEBUGLEVEL >= 10) {
647 NDR_PRINT_OUT_DEBUG(PNP_GetRelatedDeviceInstance, r);
650 push = ndr_push_init_ctx(r);
651 if (push == NULL) {
652 talloc_free(r);
653 return false;
656 ndr_err = call->ndr_push(push, NDR_OUT, r);
657 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
658 talloc_free(r);
659 return false;
662 blob = ndr_push_blob(push);
663 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
664 talloc_free(r);
665 return false;
668 talloc_free(r);
670 return true;
673 static bool api_PNP_EnumerateSubKeys(pipes_struct *p)
675 const struct ndr_interface_call *call;
676 struct ndr_pull *pull;
677 struct ndr_push *push;
678 enum ndr_err_code ndr_err;
679 DATA_BLOB blob;
680 struct PNP_EnumerateSubKeys *r;
682 call = &ndr_table_ntsvcs.calls[NDR_PNP_ENUMERATESUBKEYS];
684 r = talloc(talloc_tos(), struct PNP_EnumerateSubKeys);
685 if (r == NULL) {
686 return false;
689 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
690 talloc_free(r);
691 return false;
694 pull = ndr_pull_init_blob(&blob, r);
695 if (pull == NULL) {
696 talloc_free(r);
697 return false;
700 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
701 ndr_err = call->ndr_pull(pull, NDR_IN, r);
702 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
703 talloc_free(r);
704 return false;
707 if (DEBUGLEVEL >= 10) {
708 NDR_PRINT_IN_DEBUG(PNP_EnumerateSubKeys, r);
711 r->out.result = _PNP_EnumerateSubKeys(p, r);
713 if (p->rng_fault_state) {
714 talloc_free(r);
715 /* Return true here, srv_pipe_hnd.c will take care */
716 return true;
719 if (DEBUGLEVEL >= 10) {
720 NDR_PRINT_OUT_DEBUG(PNP_EnumerateSubKeys, r);
723 push = ndr_push_init_ctx(r);
724 if (push == NULL) {
725 talloc_free(r);
726 return false;
729 ndr_err = call->ndr_push(push, NDR_OUT, r);
730 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
731 talloc_free(r);
732 return false;
735 blob = ndr_push_blob(push);
736 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
737 talloc_free(r);
738 return false;
741 talloc_free(r);
743 return true;
746 static bool api_PNP_GetDeviceList(pipes_struct *p)
748 const struct ndr_interface_call *call;
749 struct ndr_pull *pull;
750 struct ndr_push *push;
751 enum ndr_err_code ndr_err;
752 DATA_BLOB blob;
753 struct PNP_GetDeviceList *r;
755 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETDEVICELIST];
757 r = talloc(talloc_tos(), struct PNP_GetDeviceList);
758 if (r == NULL) {
759 return false;
762 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
763 talloc_free(r);
764 return false;
767 pull = ndr_pull_init_blob(&blob, r);
768 if (pull == NULL) {
769 talloc_free(r);
770 return false;
773 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
774 ndr_err = call->ndr_pull(pull, NDR_IN, r);
775 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
776 talloc_free(r);
777 return false;
780 if (DEBUGLEVEL >= 10) {
781 NDR_PRINT_IN_DEBUG(PNP_GetDeviceList, r);
784 r->out.result = _PNP_GetDeviceList(p, r);
786 if (p->rng_fault_state) {
787 talloc_free(r);
788 /* Return true here, srv_pipe_hnd.c will take care */
789 return true;
792 if (DEBUGLEVEL >= 10) {
793 NDR_PRINT_OUT_DEBUG(PNP_GetDeviceList, r);
796 push = ndr_push_init_ctx(r);
797 if (push == NULL) {
798 talloc_free(r);
799 return false;
802 ndr_err = call->ndr_push(push, NDR_OUT, r);
803 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
804 talloc_free(r);
805 return false;
808 blob = ndr_push_blob(push);
809 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
810 talloc_free(r);
811 return false;
814 talloc_free(r);
816 return true;
819 static bool api_PNP_GetDeviceListSize(pipes_struct *p)
821 const struct ndr_interface_call *call;
822 struct ndr_pull *pull;
823 struct ndr_push *push;
824 enum ndr_err_code ndr_err;
825 DATA_BLOB blob;
826 struct PNP_GetDeviceListSize *r;
828 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETDEVICELISTSIZE];
830 r = talloc(talloc_tos(), struct PNP_GetDeviceListSize);
831 if (r == NULL) {
832 return false;
835 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
836 talloc_free(r);
837 return false;
840 pull = ndr_pull_init_blob(&blob, r);
841 if (pull == NULL) {
842 talloc_free(r);
843 return false;
846 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
847 ndr_err = call->ndr_pull(pull, NDR_IN, r);
848 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
849 talloc_free(r);
850 return false;
853 if (DEBUGLEVEL >= 10) {
854 NDR_PRINT_IN_DEBUG(PNP_GetDeviceListSize, r);
857 ZERO_STRUCT(r->out);
858 r->out.size = talloc_zero(r, uint32_t);
859 if (r->out.size == NULL) {
860 talloc_free(r);
861 return false;
864 r->out.result = _PNP_GetDeviceListSize(p, r);
866 if (p->rng_fault_state) {
867 talloc_free(r);
868 /* Return true here, srv_pipe_hnd.c will take care */
869 return true;
872 if (DEBUGLEVEL >= 10) {
873 NDR_PRINT_OUT_DEBUG(PNP_GetDeviceListSize, r);
876 push = ndr_push_init_ctx(r);
877 if (push == NULL) {
878 talloc_free(r);
879 return false;
882 ndr_err = call->ndr_push(push, NDR_OUT, r);
883 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
884 talloc_free(r);
885 return false;
888 blob = ndr_push_blob(push);
889 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
890 talloc_free(r);
891 return false;
894 talloc_free(r);
896 return true;
899 static bool api_PNP_GetDepth(pipes_struct *p)
901 const struct ndr_interface_call *call;
902 struct ndr_pull *pull;
903 struct ndr_push *push;
904 enum ndr_err_code ndr_err;
905 DATA_BLOB blob;
906 struct PNP_GetDepth *r;
908 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETDEPTH];
910 r = talloc(talloc_tos(), struct PNP_GetDepth);
911 if (r == NULL) {
912 return false;
915 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
916 talloc_free(r);
917 return false;
920 pull = ndr_pull_init_blob(&blob, r);
921 if (pull == NULL) {
922 talloc_free(r);
923 return false;
926 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
927 ndr_err = call->ndr_pull(pull, NDR_IN, r);
928 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
929 talloc_free(r);
930 return false;
933 if (DEBUGLEVEL >= 10) {
934 NDR_PRINT_IN_DEBUG(PNP_GetDepth, r);
937 r->out.result = _PNP_GetDepth(p, r);
939 if (p->rng_fault_state) {
940 talloc_free(r);
941 /* Return true here, srv_pipe_hnd.c will take care */
942 return true;
945 if (DEBUGLEVEL >= 10) {
946 NDR_PRINT_OUT_DEBUG(PNP_GetDepth, r);
949 push = ndr_push_init_ctx(r);
950 if (push == NULL) {
951 talloc_free(r);
952 return false;
955 ndr_err = call->ndr_push(push, NDR_OUT, r);
956 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
957 talloc_free(r);
958 return false;
961 blob = ndr_push_blob(push);
962 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
963 talloc_free(r);
964 return false;
967 talloc_free(r);
969 return true;
972 static bool api_PNP_GetDeviceRegProp(pipes_struct *p)
974 const struct ndr_interface_call *call;
975 struct ndr_pull *pull;
976 struct ndr_push *push;
977 enum ndr_err_code ndr_err;
978 DATA_BLOB blob;
979 struct PNP_GetDeviceRegProp *r;
981 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETDEVICEREGPROP];
983 r = talloc(talloc_tos(), struct PNP_GetDeviceRegProp);
984 if (r == NULL) {
985 return false;
988 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
989 talloc_free(r);
990 return false;
993 pull = ndr_pull_init_blob(&blob, r);
994 if (pull == NULL) {
995 talloc_free(r);
996 return false;
999 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1000 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1001 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1002 talloc_free(r);
1003 return false;
1006 if (DEBUGLEVEL >= 10) {
1007 NDR_PRINT_IN_DEBUG(PNP_GetDeviceRegProp, r);
1010 r->out.result = _PNP_GetDeviceRegProp(p, r);
1012 if (p->rng_fault_state) {
1013 talloc_free(r);
1014 /* Return true here, srv_pipe_hnd.c will take care */
1015 return true;
1018 if (DEBUGLEVEL >= 10) {
1019 NDR_PRINT_OUT_DEBUG(PNP_GetDeviceRegProp, r);
1022 push = ndr_push_init_ctx(r);
1023 if (push == NULL) {
1024 talloc_free(r);
1025 return false;
1028 ndr_err = call->ndr_push(push, NDR_OUT, r);
1029 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1030 talloc_free(r);
1031 return false;
1034 blob = ndr_push_blob(push);
1035 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1036 talloc_free(r);
1037 return false;
1040 talloc_free(r);
1042 return true;
1045 static bool api_PNP_SetDeviceRegProp(pipes_struct *p)
1047 const struct ndr_interface_call *call;
1048 struct ndr_pull *pull;
1049 struct ndr_push *push;
1050 enum ndr_err_code ndr_err;
1051 DATA_BLOB blob;
1052 struct PNP_SetDeviceRegProp *r;
1054 call = &ndr_table_ntsvcs.calls[NDR_PNP_SETDEVICEREGPROP];
1056 r = talloc(talloc_tos(), struct PNP_SetDeviceRegProp);
1057 if (r == NULL) {
1058 return false;
1061 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1062 talloc_free(r);
1063 return false;
1066 pull = ndr_pull_init_blob(&blob, r);
1067 if (pull == NULL) {
1068 talloc_free(r);
1069 return false;
1072 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1073 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1074 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1075 talloc_free(r);
1076 return false;
1079 if (DEBUGLEVEL >= 10) {
1080 NDR_PRINT_IN_DEBUG(PNP_SetDeviceRegProp, r);
1083 r->out.result = _PNP_SetDeviceRegProp(p, r);
1085 if (p->rng_fault_state) {
1086 talloc_free(r);
1087 /* Return true here, srv_pipe_hnd.c will take care */
1088 return true;
1091 if (DEBUGLEVEL >= 10) {
1092 NDR_PRINT_OUT_DEBUG(PNP_SetDeviceRegProp, r);
1095 push = ndr_push_init_ctx(r);
1096 if (push == NULL) {
1097 talloc_free(r);
1098 return false;
1101 ndr_err = call->ndr_push(push, NDR_OUT, r);
1102 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1103 talloc_free(r);
1104 return false;
1107 blob = ndr_push_blob(push);
1108 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1109 talloc_free(r);
1110 return false;
1113 talloc_free(r);
1115 return true;
1118 static bool api_PNP_GetClassInstance(pipes_struct *p)
1120 const struct ndr_interface_call *call;
1121 struct ndr_pull *pull;
1122 struct ndr_push *push;
1123 enum ndr_err_code ndr_err;
1124 DATA_BLOB blob;
1125 struct PNP_GetClassInstance *r;
1127 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETCLASSINSTANCE];
1129 r = talloc(talloc_tos(), struct PNP_GetClassInstance);
1130 if (r == NULL) {
1131 return false;
1134 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1135 talloc_free(r);
1136 return false;
1139 pull = ndr_pull_init_blob(&blob, r);
1140 if (pull == NULL) {
1141 talloc_free(r);
1142 return false;
1145 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1146 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1147 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1148 talloc_free(r);
1149 return false;
1152 if (DEBUGLEVEL >= 10) {
1153 NDR_PRINT_IN_DEBUG(PNP_GetClassInstance, r);
1156 r->out.result = _PNP_GetClassInstance(p, r);
1158 if (p->rng_fault_state) {
1159 talloc_free(r);
1160 /* Return true here, srv_pipe_hnd.c will take care */
1161 return true;
1164 if (DEBUGLEVEL >= 10) {
1165 NDR_PRINT_OUT_DEBUG(PNP_GetClassInstance, r);
1168 push = ndr_push_init_ctx(r);
1169 if (push == NULL) {
1170 talloc_free(r);
1171 return false;
1174 ndr_err = call->ndr_push(push, NDR_OUT, r);
1175 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1176 talloc_free(r);
1177 return false;
1180 blob = ndr_push_blob(push);
1181 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1182 talloc_free(r);
1183 return false;
1186 talloc_free(r);
1188 return true;
1191 static bool api_PNP_CreateKey(pipes_struct *p)
1193 const struct ndr_interface_call *call;
1194 struct ndr_pull *pull;
1195 struct ndr_push *push;
1196 enum ndr_err_code ndr_err;
1197 DATA_BLOB blob;
1198 struct PNP_CreateKey *r;
1200 call = &ndr_table_ntsvcs.calls[NDR_PNP_CREATEKEY];
1202 r = talloc(talloc_tos(), struct PNP_CreateKey);
1203 if (r == NULL) {
1204 return false;
1207 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1208 talloc_free(r);
1209 return false;
1212 pull = ndr_pull_init_blob(&blob, r);
1213 if (pull == NULL) {
1214 talloc_free(r);
1215 return false;
1218 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1219 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1220 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1221 talloc_free(r);
1222 return false;
1225 if (DEBUGLEVEL >= 10) {
1226 NDR_PRINT_IN_DEBUG(PNP_CreateKey, r);
1229 r->out.result = _PNP_CreateKey(p, r);
1231 if (p->rng_fault_state) {
1232 talloc_free(r);
1233 /* Return true here, srv_pipe_hnd.c will take care */
1234 return true;
1237 if (DEBUGLEVEL >= 10) {
1238 NDR_PRINT_OUT_DEBUG(PNP_CreateKey, r);
1241 push = ndr_push_init_ctx(r);
1242 if (push == NULL) {
1243 talloc_free(r);
1244 return false;
1247 ndr_err = call->ndr_push(push, NDR_OUT, r);
1248 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1249 talloc_free(r);
1250 return false;
1253 blob = ndr_push_blob(push);
1254 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1255 talloc_free(r);
1256 return false;
1259 talloc_free(r);
1261 return true;
1264 static bool api_PNP_DeleteRegistryKey(pipes_struct *p)
1266 const struct ndr_interface_call *call;
1267 struct ndr_pull *pull;
1268 struct ndr_push *push;
1269 enum ndr_err_code ndr_err;
1270 DATA_BLOB blob;
1271 struct PNP_DeleteRegistryKey *r;
1273 call = &ndr_table_ntsvcs.calls[NDR_PNP_DELETEREGISTRYKEY];
1275 r = talloc(talloc_tos(), struct PNP_DeleteRegistryKey);
1276 if (r == NULL) {
1277 return false;
1280 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1281 talloc_free(r);
1282 return false;
1285 pull = ndr_pull_init_blob(&blob, r);
1286 if (pull == NULL) {
1287 talloc_free(r);
1288 return false;
1291 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1292 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1293 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1294 talloc_free(r);
1295 return false;
1298 if (DEBUGLEVEL >= 10) {
1299 NDR_PRINT_IN_DEBUG(PNP_DeleteRegistryKey, r);
1302 r->out.result = _PNP_DeleteRegistryKey(p, r);
1304 if (p->rng_fault_state) {
1305 talloc_free(r);
1306 /* Return true here, srv_pipe_hnd.c will take care */
1307 return true;
1310 if (DEBUGLEVEL >= 10) {
1311 NDR_PRINT_OUT_DEBUG(PNP_DeleteRegistryKey, r);
1314 push = ndr_push_init_ctx(r);
1315 if (push == NULL) {
1316 talloc_free(r);
1317 return false;
1320 ndr_err = call->ndr_push(push, NDR_OUT, r);
1321 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1322 talloc_free(r);
1323 return false;
1326 blob = ndr_push_blob(push);
1327 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1328 talloc_free(r);
1329 return false;
1332 talloc_free(r);
1334 return true;
1337 static bool api_PNP_GetClassCount(pipes_struct *p)
1339 const struct ndr_interface_call *call;
1340 struct ndr_pull *pull;
1341 struct ndr_push *push;
1342 enum ndr_err_code ndr_err;
1343 DATA_BLOB blob;
1344 struct PNP_GetClassCount *r;
1346 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETCLASSCOUNT];
1348 r = talloc(talloc_tos(), struct PNP_GetClassCount);
1349 if (r == NULL) {
1350 return false;
1353 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1354 talloc_free(r);
1355 return false;
1358 pull = ndr_pull_init_blob(&blob, r);
1359 if (pull == NULL) {
1360 talloc_free(r);
1361 return false;
1364 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1365 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1366 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1367 talloc_free(r);
1368 return false;
1371 if (DEBUGLEVEL >= 10) {
1372 NDR_PRINT_IN_DEBUG(PNP_GetClassCount, r);
1375 r->out.result = _PNP_GetClassCount(p, r);
1377 if (p->rng_fault_state) {
1378 talloc_free(r);
1379 /* Return true here, srv_pipe_hnd.c will take care */
1380 return true;
1383 if (DEBUGLEVEL >= 10) {
1384 NDR_PRINT_OUT_DEBUG(PNP_GetClassCount, r);
1387 push = ndr_push_init_ctx(r);
1388 if (push == NULL) {
1389 talloc_free(r);
1390 return false;
1393 ndr_err = call->ndr_push(push, NDR_OUT, r);
1394 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1395 talloc_free(r);
1396 return false;
1399 blob = ndr_push_blob(push);
1400 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1401 talloc_free(r);
1402 return false;
1405 talloc_free(r);
1407 return true;
1410 static bool api_PNP_GetClassName(pipes_struct *p)
1412 const struct ndr_interface_call *call;
1413 struct ndr_pull *pull;
1414 struct ndr_push *push;
1415 enum ndr_err_code ndr_err;
1416 DATA_BLOB blob;
1417 struct PNP_GetClassName *r;
1419 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETCLASSNAME];
1421 r = talloc(talloc_tos(), struct PNP_GetClassName);
1422 if (r == NULL) {
1423 return false;
1426 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1427 talloc_free(r);
1428 return false;
1431 pull = ndr_pull_init_blob(&blob, r);
1432 if (pull == NULL) {
1433 talloc_free(r);
1434 return false;
1437 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1438 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1439 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1440 talloc_free(r);
1441 return false;
1444 if (DEBUGLEVEL >= 10) {
1445 NDR_PRINT_IN_DEBUG(PNP_GetClassName, r);
1448 r->out.result = _PNP_GetClassName(p, r);
1450 if (p->rng_fault_state) {
1451 talloc_free(r);
1452 /* Return true here, srv_pipe_hnd.c will take care */
1453 return true;
1456 if (DEBUGLEVEL >= 10) {
1457 NDR_PRINT_OUT_DEBUG(PNP_GetClassName, r);
1460 push = ndr_push_init_ctx(r);
1461 if (push == NULL) {
1462 talloc_free(r);
1463 return false;
1466 ndr_err = call->ndr_push(push, NDR_OUT, r);
1467 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1468 talloc_free(r);
1469 return false;
1472 blob = ndr_push_blob(push);
1473 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1474 talloc_free(r);
1475 return false;
1478 talloc_free(r);
1480 return true;
1483 static bool api_PNP_DeleteClassKey(pipes_struct *p)
1485 const struct ndr_interface_call *call;
1486 struct ndr_pull *pull;
1487 struct ndr_push *push;
1488 enum ndr_err_code ndr_err;
1489 DATA_BLOB blob;
1490 struct PNP_DeleteClassKey *r;
1492 call = &ndr_table_ntsvcs.calls[NDR_PNP_DELETECLASSKEY];
1494 r = talloc(talloc_tos(), struct PNP_DeleteClassKey);
1495 if (r == NULL) {
1496 return false;
1499 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1500 talloc_free(r);
1501 return false;
1504 pull = ndr_pull_init_blob(&blob, r);
1505 if (pull == NULL) {
1506 talloc_free(r);
1507 return false;
1510 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1511 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1512 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1513 talloc_free(r);
1514 return false;
1517 if (DEBUGLEVEL >= 10) {
1518 NDR_PRINT_IN_DEBUG(PNP_DeleteClassKey, r);
1521 r->out.result = _PNP_DeleteClassKey(p, r);
1523 if (p->rng_fault_state) {
1524 talloc_free(r);
1525 /* Return true here, srv_pipe_hnd.c will take care */
1526 return true;
1529 if (DEBUGLEVEL >= 10) {
1530 NDR_PRINT_OUT_DEBUG(PNP_DeleteClassKey, r);
1533 push = ndr_push_init_ctx(r);
1534 if (push == NULL) {
1535 talloc_free(r);
1536 return false;
1539 ndr_err = call->ndr_push(push, NDR_OUT, r);
1540 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1541 talloc_free(r);
1542 return false;
1545 blob = ndr_push_blob(push);
1546 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1547 talloc_free(r);
1548 return false;
1551 talloc_free(r);
1553 return true;
1556 static bool api_PNP_GetInterfaceDeviceAlias(pipes_struct *p)
1558 const struct ndr_interface_call *call;
1559 struct ndr_pull *pull;
1560 struct ndr_push *push;
1561 enum ndr_err_code ndr_err;
1562 DATA_BLOB blob;
1563 struct PNP_GetInterfaceDeviceAlias *r;
1565 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETINTERFACEDEVICEALIAS];
1567 r = talloc(talloc_tos(), struct PNP_GetInterfaceDeviceAlias);
1568 if (r == NULL) {
1569 return false;
1572 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1573 talloc_free(r);
1574 return false;
1577 pull = ndr_pull_init_blob(&blob, r);
1578 if (pull == NULL) {
1579 talloc_free(r);
1580 return false;
1583 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1584 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1585 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1586 talloc_free(r);
1587 return false;
1590 if (DEBUGLEVEL >= 10) {
1591 NDR_PRINT_IN_DEBUG(PNP_GetInterfaceDeviceAlias, r);
1594 r->out.result = _PNP_GetInterfaceDeviceAlias(p, r);
1596 if (p->rng_fault_state) {
1597 talloc_free(r);
1598 /* Return true here, srv_pipe_hnd.c will take care */
1599 return true;
1602 if (DEBUGLEVEL >= 10) {
1603 NDR_PRINT_OUT_DEBUG(PNP_GetInterfaceDeviceAlias, r);
1606 push = ndr_push_init_ctx(r);
1607 if (push == NULL) {
1608 talloc_free(r);
1609 return false;
1612 ndr_err = call->ndr_push(push, NDR_OUT, r);
1613 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1614 talloc_free(r);
1615 return false;
1618 blob = ndr_push_blob(push);
1619 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1620 talloc_free(r);
1621 return false;
1624 talloc_free(r);
1626 return true;
1629 static bool api_PNP_GetInterfaceDeviceList(pipes_struct *p)
1631 const struct ndr_interface_call *call;
1632 struct ndr_pull *pull;
1633 struct ndr_push *push;
1634 enum ndr_err_code ndr_err;
1635 DATA_BLOB blob;
1636 struct PNP_GetInterfaceDeviceList *r;
1638 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETINTERFACEDEVICELIST];
1640 r = talloc(talloc_tos(), struct PNP_GetInterfaceDeviceList);
1641 if (r == NULL) {
1642 return false;
1645 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1646 talloc_free(r);
1647 return false;
1650 pull = ndr_pull_init_blob(&blob, r);
1651 if (pull == NULL) {
1652 talloc_free(r);
1653 return false;
1656 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1657 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1658 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1659 talloc_free(r);
1660 return false;
1663 if (DEBUGLEVEL >= 10) {
1664 NDR_PRINT_IN_DEBUG(PNP_GetInterfaceDeviceList, r);
1667 r->out.result = _PNP_GetInterfaceDeviceList(p, r);
1669 if (p->rng_fault_state) {
1670 talloc_free(r);
1671 /* Return true here, srv_pipe_hnd.c will take care */
1672 return true;
1675 if (DEBUGLEVEL >= 10) {
1676 NDR_PRINT_OUT_DEBUG(PNP_GetInterfaceDeviceList, r);
1679 push = ndr_push_init_ctx(r);
1680 if (push == NULL) {
1681 talloc_free(r);
1682 return false;
1685 ndr_err = call->ndr_push(push, NDR_OUT, r);
1686 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1687 talloc_free(r);
1688 return false;
1691 blob = ndr_push_blob(push);
1692 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1693 talloc_free(r);
1694 return false;
1697 talloc_free(r);
1699 return true;
1702 static bool api_PNP_GetInterfaceDeviceListSize(pipes_struct *p)
1704 const struct ndr_interface_call *call;
1705 struct ndr_pull *pull;
1706 struct ndr_push *push;
1707 enum ndr_err_code ndr_err;
1708 DATA_BLOB blob;
1709 struct PNP_GetInterfaceDeviceListSize *r;
1711 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETINTERFACEDEVICELISTSIZE];
1713 r = talloc(talloc_tos(), struct PNP_GetInterfaceDeviceListSize);
1714 if (r == NULL) {
1715 return false;
1718 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1719 talloc_free(r);
1720 return false;
1723 pull = ndr_pull_init_blob(&blob, r);
1724 if (pull == NULL) {
1725 talloc_free(r);
1726 return false;
1729 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1730 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1731 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1732 talloc_free(r);
1733 return false;
1736 if (DEBUGLEVEL >= 10) {
1737 NDR_PRINT_IN_DEBUG(PNP_GetInterfaceDeviceListSize, r);
1740 r->out.result = _PNP_GetInterfaceDeviceListSize(p, r);
1742 if (p->rng_fault_state) {
1743 talloc_free(r);
1744 /* Return true here, srv_pipe_hnd.c will take care */
1745 return true;
1748 if (DEBUGLEVEL >= 10) {
1749 NDR_PRINT_OUT_DEBUG(PNP_GetInterfaceDeviceListSize, r);
1752 push = ndr_push_init_ctx(r);
1753 if (push == NULL) {
1754 talloc_free(r);
1755 return false;
1758 ndr_err = call->ndr_push(push, NDR_OUT, r);
1759 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1760 talloc_free(r);
1761 return false;
1764 blob = ndr_push_blob(push);
1765 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1766 talloc_free(r);
1767 return false;
1770 talloc_free(r);
1772 return true;
1775 static bool api_PNP_RegisterDeviceClassAssociation(pipes_struct *p)
1777 const struct ndr_interface_call *call;
1778 struct ndr_pull *pull;
1779 struct ndr_push *push;
1780 enum ndr_err_code ndr_err;
1781 DATA_BLOB blob;
1782 struct PNP_RegisterDeviceClassAssociation *r;
1784 call = &ndr_table_ntsvcs.calls[NDR_PNP_REGISTERDEVICECLASSASSOCIATION];
1786 r = talloc(talloc_tos(), struct PNP_RegisterDeviceClassAssociation);
1787 if (r == NULL) {
1788 return false;
1791 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1792 talloc_free(r);
1793 return false;
1796 pull = ndr_pull_init_blob(&blob, r);
1797 if (pull == NULL) {
1798 talloc_free(r);
1799 return false;
1802 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1803 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1804 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1805 talloc_free(r);
1806 return false;
1809 if (DEBUGLEVEL >= 10) {
1810 NDR_PRINT_IN_DEBUG(PNP_RegisterDeviceClassAssociation, r);
1813 r->out.result = _PNP_RegisterDeviceClassAssociation(p, r);
1815 if (p->rng_fault_state) {
1816 talloc_free(r);
1817 /* Return true here, srv_pipe_hnd.c will take care */
1818 return true;
1821 if (DEBUGLEVEL >= 10) {
1822 NDR_PRINT_OUT_DEBUG(PNP_RegisterDeviceClassAssociation, r);
1825 push = ndr_push_init_ctx(r);
1826 if (push == NULL) {
1827 talloc_free(r);
1828 return false;
1831 ndr_err = call->ndr_push(push, NDR_OUT, r);
1832 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1833 talloc_free(r);
1834 return false;
1837 blob = ndr_push_blob(push);
1838 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1839 talloc_free(r);
1840 return false;
1843 talloc_free(r);
1845 return true;
1848 static bool api_PNP_UnregisterDeviceClassAssociation(pipes_struct *p)
1850 const struct ndr_interface_call *call;
1851 struct ndr_pull *pull;
1852 struct ndr_push *push;
1853 enum ndr_err_code ndr_err;
1854 DATA_BLOB blob;
1855 struct PNP_UnregisterDeviceClassAssociation *r;
1857 call = &ndr_table_ntsvcs.calls[NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION];
1859 r = talloc(talloc_tos(), struct PNP_UnregisterDeviceClassAssociation);
1860 if (r == NULL) {
1861 return false;
1864 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1865 talloc_free(r);
1866 return false;
1869 pull = ndr_pull_init_blob(&blob, r);
1870 if (pull == NULL) {
1871 talloc_free(r);
1872 return false;
1875 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1876 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1877 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1878 talloc_free(r);
1879 return false;
1882 if (DEBUGLEVEL >= 10) {
1883 NDR_PRINT_IN_DEBUG(PNP_UnregisterDeviceClassAssociation, r);
1886 r->out.result = _PNP_UnregisterDeviceClassAssociation(p, r);
1888 if (p->rng_fault_state) {
1889 talloc_free(r);
1890 /* Return true here, srv_pipe_hnd.c will take care */
1891 return true;
1894 if (DEBUGLEVEL >= 10) {
1895 NDR_PRINT_OUT_DEBUG(PNP_UnregisterDeviceClassAssociation, r);
1898 push = ndr_push_init_ctx(r);
1899 if (push == NULL) {
1900 talloc_free(r);
1901 return false;
1904 ndr_err = call->ndr_push(push, NDR_OUT, r);
1905 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1906 talloc_free(r);
1907 return false;
1910 blob = ndr_push_blob(push);
1911 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1912 talloc_free(r);
1913 return false;
1916 talloc_free(r);
1918 return true;
1921 static bool api_PNP_GetClassRegProp(pipes_struct *p)
1923 const struct ndr_interface_call *call;
1924 struct ndr_pull *pull;
1925 struct ndr_push *push;
1926 enum ndr_err_code ndr_err;
1927 DATA_BLOB blob;
1928 struct PNP_GetClassRegProp *r;
1930 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETCLASSREGPROP];
1932 r = talloc(talloc_tos(), struct PNP_GetClassRegProp);
1933 if (r == NULL) {
1934 return false;
1937 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
1938 talloc_free(r);
1939 return false;
1942 pull = ndr_pull_init_blob(&blob, r);
1943 if (pull == NULL) {
1944 talloc_free(r);
1945 return false;
1948 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1949 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1950 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1951 talloc_free(r);
1952 return false;
1955 if (DEBUGLEVEL >= 10) {
1956 NDR_PRINT_IN_DEBUG(PNP_GetClassRegProp, r);
1959 r->out.result = _PNP_GetClassRegProp(p, r);
1961 if (p->rng_fault_state) {
1962 talloc_free(r);
1963 /* Return true here, srv_pipe_hnd.c will take care */
1964 return true;
1967 if (DEBUGLEVEL >= 10) {
1968 NDR_PRINT_OUT_DEBUG(PNP_GetClassRegProp, r);
1971 push = ndr_push_init_ctx(r);
1972 if (push == NULL) {
1973 talloc_free(r);
1974 return false;
1977 ndr_err = call->ndr_push(push, NDR_OUT, r);
1978 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1979 talloc_free(r);
1980 return false;
1983 blob = ndr_push_blob(push);
1984 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
1985 talloc_free(r);
1986 return false;
1989 talloc_free(r);
1991 return true;
1994 static bool api_PNP_SetClassRegProp(pipes_struct *p)
1996 const struct ndr_interface_call *call;
1997 struct ndr_pull *pull;
1998 struct ndr_push *push;
1999 enum ndr_err_code ndr_err;
2000 DATA_BLOB blob;
2001 struct PNP_SetClassRegProp *r;
2003 call = &ndr_table_ntsvcs.calls[NDR_PNP_SETCLASSREGPROP];
2005 r = talloc(talloc_tos(), struct PNP_SetClassRegProp);
2006 if (r == NULL) {
2007 return false;
2010 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2011 talloc_free(r);
2012 return false;
2015 pull = ndr_pull_init_blob(&blob, r);
2016 if (pull == NULL) {
2017 talloc_free(r);
2018 return false;
2021 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2022 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2023 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2024 talloc_free(r);
2025 return false;
2028 if (DEBUGLEVEL >= 10) {
2029 NDR_PRINT_IN_DEBUG(PNP_SetClassRegProp, r);
2032 r->out.result = _PNP_SetClassRegProp(p, r);
2034 if (p->rng_fault_state) {
2035 talloc_free(r);
2036 /* Return true here, srv_pipe_hnd.c will take care */
2037 return true;
2040 if (DEBUGLEVEL >= 10) {
2041 NDR_PRINT_OUT_DEBUG(PNP_SetClassRegProp, r);
2044 push = ndr_push_init_ctx(r);
2045 if (push == NULL) {
2046 talloc_free(r);
2047 return false;
2050 ndr_err = call->ndr_push(push, NDR_OUT, r);
2051 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2052 talloc_free(r);
2053 return false;
2056 blob = ndr_push_blob(push);
2057 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2058 talloc_free(r);
2059 return false;
2062 talloc_free(r);
2064 return true;
2067 static bool api_PNP_CreateDevInst(pipes_struct *p)
2069 const struct ndr_interface_call *call;
2070 struct ndr_pull *pull;
2071 struct ndr_push *push;
2072 enum ndr_err_code ndr_err;
2073 DATA_BLOB blob;
2074 struct PNP_CreateDevInst *r;
2076 call = &ndr_table_ntsvcs.calls[NDR_PNP_CREATEDEVINST];
2078 r = talloc(talloc_tos(), struct PNP_CreateDevInst);
2079 if (r == NULL) {
2080 return false;
2083 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2084 talloc_free(r);
2085 return false;
2088 pull = ndr_pull_init_blob(&blob, r);
2089 if (pull == NULL) {
2090 talloc_free(r);
2091 return false;
2094 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2095 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2096 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2097 talloc_free(r);
2098 return false;
2101 if (DEBUGLEVEL >= 10) {
2102 NDR_PRINT_IN_DEBUG(PNP_CreateDevInst, r);
2105 r->out.result = _PNP_CreateDevInst(p, r);
2107 if (p->rng_fault_state) {
2108 talloc_free(r);
2109 /* Return true here, srv_pipe_hnd.c will take care */
2110 return true;
2113 if (DEBUGLEVEL >= 10) {
2114 NDR_PRINT_OUT_DEBUG(PNP_CreateDevInst, r);
2117 push = ndr_push_init_ctx(r);
2118 if (push == NULL) {
2119 talloc_free(r);
2120 return false;
2123 ndr_err = call->ndr_push(push, NDR_OUT, r);
2124 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2125 talloc_free(r);
2126 return false;
2129 blob = ndr_push_blob(push);
2130 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2131 talloc_free(r);
2132 return false;
2135 talloc_free(r);
2137 return true;
2140 static bool api_PNP_DeviceInstanceAction(pipes_struct *p)
2142 const struct ndr_interface_call *call;
2143 struct ndr_pull *pull;
2144 struct ndr_push *push;
2145 enum ndr_err_code ndr_err;
2146 DATA_BLOB blob;
2147 struct PNP_DeviceInstanceAction *r;
2149 call = &ndr_table_ntsvcs.calls[NDR_PNP_DEVICEINSTANCEACTION];
2151 r = talloc(talloc_tos(), struct PNP_DeviceInstanceAction);
2152 if (r == NULL) {
2153 return false;
2156 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2157 talloc_free(r);
2158 return false;
2161 pull = ndr_pull_init_blob(&blob, r);
2162 if (pull == NULL) {
2163 talloc_free(r);
2164 return false;
2167 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2168 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2169 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2170 talloc_free(r);
2171 return false;
2174 if (DEBUGLEVEL >= 10) {
2175 NDR_PRINT_IN_DEBUG(PNP_DeviceInstanceAction, r);
2178 r->out.result = _PNP_DeviceInstanceAction(p, r);
2180 if (p->rng_fault_state) {
2181 talloc_free(r);
2182 /* Return true here, srv_pipe_hnd.c will take care */
2183 return true;
2186 if (DEBUGLEVEL >= 10) {
2187 NDR_PRINT_OUT_DEBUG(PNP_DeviceInstanceAction, r);
2190 push = ndr_push_init_ctx(r);
2191 if (push == NULL) {
2192 talloc_free(r);
2193 return false;
2196 ndr_err = call->ndr_push(push, NDR_OUT, r);
2197 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2198 talloc_free(r);
2199 return false;
2202 blob = ndr_push_blob(push);
2203 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2204 talloc_free(r);
2205 return false;
2208 talloc_free(r);
2210 return true;
2213 static bool api_PNP_GetDeviceStatus(pipes_struct *p)
2215 const struct ndr_interface_call *call;
2216 struct ndr_pull *pull;
2217 struct ndr_push *push;
2218 enum ndr_err_code ndr_err;
2219 DATA_BLOB blob;
2220 struct PNP_GetDeviceStatus *r;
2222 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETDEVICESTATUS];
2224 r = talloc(talloc_tos(), struct PNP_GetDeviceStatus);
2225 if (r == NULL) {
2226 return false;
2229 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2230 talloc_free(r);
2231 return false;
2234 pull = ndr_pull_init_blob(&blob, r);
2235 if (pull == NULL) {
2236 talloc_free(r);
2237 return false;
2240 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2241 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2242 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2243 talloc_free(r);
2244 return false;
2247 if (DEBUGLEVEL >= 10) {
2248 NDR_PRINT_IN_DEBUG(PNP_GetDeviceStatus, r);
2251 r->out.result = _PNP_GetDeviceStatus(p, r);
2253 if (p->rng_fault_state) {
2254 talloc_free(r);
2255 /* Return true here, srv_pipe_hnd.c will take care */
2256 return true;
2259 if (DEBUGLEVEL >= 10) {
2260 NDR_PRINT_OUT_DEBUG(PNP_GetDeviceStatus, r);
2263 push = ndr_push_init_ctx(r);
2264 if (push == NULL) {
2265 talloc_free(r);
2266 return false;
2269 ndr_err = call->ndr_push(push, NDR_OUT, r);
2270 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2271 talloc_free(r);
2272 return false;
2275 blob = ndr_push_blob(push);
2276 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2277 talloc_free(r);
2278 return false;
2281 talloc_free(r);
2283 return true;
2286 static bool api_PNP_SetDeviceProblem(pipes_struct *p)
2288 const struct ndr_interface_call *call;
2289 struct ndr_pull *pull;
2290 struct ndr_push *push;
2291 enum ndr_err_code ndr_err;
2292 DATA_BLOB blob;
2293 struct PNP_SetDeviceProblem *r;
2295 call = &ndr_table_ntsvcs.calls[NDR_PNP_SETDEVICEPROBLEM];
2297 r = talloc(talloc_tos(), struct PNP_SetDeviceProblem);
2298 if (r == NULL) {
2299 return false;
2302 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2303 talloc_free(r);
2304 return false;
2307 pull = ndr_pull_init_blob(&blob, r);
2308 if (pull == NULL) {
2309 talloc_free(r);
2310 return false;
2313 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2314 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2315 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2316 talloc_free(r);
2317 return false;
2320 if (DEBUGLEVEL >= 10) {
2321 NDR_PRINT_IN_DEBUG(PNP_SetDeviceProblem, r);
2324 r->out.result = _PNP_SetDeviceProblem(p, r);
2326 if (p->rng_fault_state) {
2327 talloc_free(r);
2328 /* Return true here, srv_pipe_hnd.c will take care */
2329 return true;
2332 if (DEBUGLEVEL >= 10) {
2333 NDR_PRINT_OUT_DEBUG(PNP_SetDeviceProblem, r);
2336 push = ndr_push_init_ctx(r);
2337 if (push == NULL) {
2338 talloc_free(r);
2339 return false;
2342 ndr_err = call->ndr_push(push, NDR_OUT, r);
2343 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2344 talloc_free(r);
2345 return false;
2348 blob = ndr_push_blob(push);
2349 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2350 talloc_free(r);
2351 return false;
2354 talloc_free(r);
2356 return true;
2359 static bool api_PNP_DisableDevInst(pipes_struct *p)
2361 const struct ndr_interface_call *call;
2362 struct ndr_pull *pull;
2363 struct ndr_push *push;
2364 enum ndr_err_code ndr_err;
2365 DATA_BLOB blob;
2366 struct PNP_DisableDevInst *r;
2368 call = &ndr_table_ntsvcs.calls[NDR_PNP_DISABLEDEVINST];
2370 r = talloc(talloc_tos(), struct PNP_DisableDevInst);
2371 if (r == NULL) {
2372 return false;
2375 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2376 talloc_free(r);
2377 return false;
2380 pull = ndr_pull_init_blob(&blob, r);
2381 if (pull == NULL) {
2382 talloc_free(r);
2383 return false;
2386 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2387 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2388 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2389 talloc_free(r);
2390 return false;
2393 if (DEBUGLEVEL >= 10) {
2394 NDR_PRINT_IN_DEBUG(PNP_DisableDevInst, r);
2397 r->out.result = _PNP_DisableDevInst(p, r);
2399 if (p->rng_fault_state) {
2400 talloc_free(r);
2401 /* Return true here, srv_pipe_hnd.c will take care */
2402 return true;
2405 if (DEBUGLEVEL >= 10) {
2406 NDR_PRINT_OUT_DEBUG(PNP_DisableDevInst, r);
2409 push = ndr_push_init_ctx(r);
2410 if (push == NULL) {
2411 talloc_free(r);
2412 return false;
2415 ndr_err = call->ndr_push(push, NDR_OUT, r);
2416 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2417 talloc_free(r);
2418 return false;
2421 blob = ndr_push_blob(push);
2422 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2423 talloc_free(r);
2424 return false;
2427 talloc_free(r);
2429 return true;
2432 static bool api_PNP_UninstallDevInst(pipes_struct *p)
2434 const struct ndr_interface_call *call;
2435 struct ndr_pull *pull;
2436 struct ndr_push *push;
2437 enum ndr_err_code ndr_err;
2438 DATA_BLOB blob;
2439 struct PNP_UninstallDevInst *r;
2441 call = &ndr_table_ntsvcs.calls[NDR_PNP_UNINSTALLDEVINST];
2443 r = talloc(talloc_tos(), struct PNP_UninstallDevInst);
2444 if (r == NULL) {
2445 return false;
2448 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2449 talloc_free(r);
2450 return false;
2453 pull = ndr_pull_init_blob(&blob, r);
2454 if (pull == NULL) {
2455 talloc_free(r);
2456 return false;
2459 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2460 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2461 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2462 talloc_free(r);
2463 return false;
2466 if (DEBUGLEVEL >= 10) {
2467 NDR_PRINT_IN_DEBUG(PNP_UninstallDevInst, r);
2470 r->out.result = _PNP_UninstallDevInst(p, r);
2472 if (p->rng_fault_state) {
2473 talloc_free(r);
2474 /* Return true here, srv_pipe_hnd.c will take care */
2475 return true;
2478 if (DEBUGLEVEL >= 10) {
2479 NDR_PRINT_OUT_DEBUG(PNP_UninstallDevInst, r);
2482 push = ndr_push_init_ctx(r);
2483 if (push == NULL) {
2484 talloc_free(r);
2485 return false;
2488 ndr_err = call->ndr_push(push, NDR_OUT, r);
2489 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2490 talloc_free(r);
2491 return false;
2494 blob = ndr_push_blob(push);
2495 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2496 talloc_free(r);
2497 return false;
2500 talloc_free(r);
2502 return true;
2505 static bool api_PNP_AddID(pipes_struct *p)
2507 const struct ndr_interface_call *call;
2508 struct ndr_pull *pull;
2509 struct ndr_push *push;
2510 enum ndr_err_code ndr_err;
2511 DATA_BLOB blob;
2512 struct PNP_AddID *r;
2514 call = &ndr_table_ntsvcs.calls[NDR_PNP_ADDID];
2516 r = talloc(talloc_tos(), struct PNP_AddID);
2517 if (r == NULL) {
2518 return false;
2521 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2522 talloc_free(r);
2523 return false;
2526 pull = ndr_pull_init_blob(&blob, r);
2527 if (pull == NULL) {
2528 talloc_free(r);
2529 return false;
2532 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2533 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2534 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2535 talloc_free(r);
2536 return false;
2539 if (DEBUGLEVEL >= 10) {
2540 NDR_PRINT_IN_DEBUG(PNP_AddID, r);
2543 r->out.result = _PNP_AddID(p, r);
2545 if (p->rng_fault_state) {
2546 talloc_free(r);
2547 /* Return true here, srv_pipe_hnd.c will take care */
2548 return true;
2551 if (DEBUGLEVEL >= 10) {
2552 NDR_PRINT_OUT_DEBUG(PNP_AddID, r);
2555 push = ndr_push_init_ctx(r);
2556 if (push == NULL) {
2557 talloc_free(r);
2558 return false;
2561 ndr_err = call->ndr_push(push, NDR_OUT, r);
2562 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2563 talloc_free(r);
2564 return false;
2567 blob = ndr_push_blob(push);
2568 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2569 talloc_free(r);
2570 return false;
2573 talloc_free(r);
2575 return true;
2578 static bool api_PNP_RegisterDriver(pipes_struct *p)
2580 const struct ndr_interface_call *call;
2581 struct ndr_pull *pull;
2582 struct ndr_push *push;
2583 enum ndr_err_code ndr_err;
2584 DATA_BLOB blob;
2585 struct PNP_RegisterDriver *r;
2587 call = &ndr_table_ntsvcs.calls[NDR_PNP_REGISTERDRIVER];
2589 r = talloc(talloc_tos(), struct PNP_RegisterDriver);
2590 if (r == NULL) {
2591 return false;
2594 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2595 talloc_free(r);
2596 return false;
2599 pull = ndr_pull_init_blob(&blob, r);
2600 if (pull == NULL) {
2601 talloc_free(r);
2602 return false;
2605 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2606 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2607 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2608 talloc_free(r);
2609 return false;
2612 if (DEBUGLEVEL >= 10) {
2613 NDR_PRINT_IN_DEBUG(PNP_RegisterDriver, r);
2616 r->out.result = _PNP_RegisterDriver(p, r);
2618 if (p->rng_fault_state) {
2619 talloc_free(r);
2620 /* Return true here, srv_pipe_hnd.c will take care */
2621 return true;
2624 if (DEBUGLEVEL >= 10) {
2625 NDR_PRINT_OUT_DEBUG(PNP_RegisterDriver, r);
2628 push = ndr_push_init_ctx(r);
2629 if (push == NULL) {
2630 talloc_free(r);
2631 return false;
2634 ndr_err = call->ndr_push(push, NDR_OUT, r);
2635 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2636 talloc_free(r);
2637 return false;
2640 blob = ndr_push_blob(push);
2641 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2642 talloc_free(r);
2643 return false;
2646 talloc_free(r);
2648 return true;
2651 static bool api_PNP_QueryRemove(pipes_struct *p)
2653 const struct ndr_interface_call *call;
2654 struct ndr_pull *pull;
2655 struct ndr_push *push;
2656 enum ndr_err_code ndr_err;
2657 DATA_BLOB blob;
2658 struct PNP_QueryRemove *r;
2660 call = &ndr_table_ntsvcs.calls[NDR_PNP_QUERYREMOVE];
2662 r = talloc(talloc_tos(), struct PNP_QueryRemove);
2663 if (r == NULL) {
2664 return false;
2667 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2668 talloc_free(r);
2669 return false;
2672 pull = ndr_pull_init_blob(&blob, r);
2673 if (pull == NULL) {
2674 talloc_free(r);
2675 return false;
2678 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2679 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2680 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2681 talloc_free(r);
2682 return false;
2685 if (DEBUGLEVEL >= 10) {
2686 NDR_PRINT_IN_DEBUG(PNP_QueryRemove, r);
2689 r->out.result = _PNP_QueryRemove(p, r);
2691 if (p->rng_fault_state) {
2692 talloc_free(r);
2693 /* Return true here, srv_pipe_hnd.c will take care */
2694 return true;
2697 if (DEBUGLEVEL >= 10) {
2698 NDR_PRINT_OUT_DEBUG(PNP_QueryRemove, r);
2701 push = ndr_push_init_ctx(r);
2702 if (push == NULL) {
2703 talloc_free(r);
2704 return false;
2707 ndr_err = call->ndr_push(push, NDR_OUT, r);
2708 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2709 talloc_free(r);
2710 return false;
2713 blob = ndr_push_blob(push);
2714 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2715 talloc_free(r);
2716 return false;
2719 talloc_free(r);
2721 return true;
2724 static bool api_PNP_RequestDeviceEject(pipes_struct *p)
2726 const struct ndr_interface_call *call;
2727 struct ndr_pull *pull;
2728 struct ndr_push *push;
2729 enum ndr_err_code ndr_err;
2730 DATA_BLOB blob;
2731 struct PNP_RequestDeviceEject *r;
2733 call = &ndr_table_ntsvcs.calls[NDR_PNP_REQUESTDEVICEEJECT];
2735 r = talloc(talloc_tos(), struct PNP_RequestDeviceEject);
2736 if (r == NULL) {
2737 return false;
2740 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2741 talloc_free(r);
2742 return false;
2745 pull = ndr_pull_init_blob(&blob, r);
2746 if (pull == NULL) {
2747 talloc_free(r);
2748 return false;
2751 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2752 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2753 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2754 talloc_free(r);
2755 return false;
2758 if (DEBUGLEVEL >= 10) {
2759 NDR_PRINT_IN_DEBUG(PNP_RequestDeviceEject, r);
2762 r->out.result = _PNP_RequestDeviceEject(p, r);
2764 if (p->rng_fault_state) {
2765 talloc_free(r);
2766 /* Return true here, srv_pipe_hnd.c will take care */
2767 return true;
2770 if (DEBUGLEVEL >= 10) {
2771 NDR_PRINT_OUT_DEBUG(PNP_RequestDeviceEject, r);
2774 push = ndr_push_init_ctx(r);
2775 if (push == NULL) {
2776 talloc_free(r);
2777 return false;
2780 ndr_err = call->ndr_push(push, NDR_OUT, r);
2781 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2782 talloc_free(r);
2783 return false;
2786 blob = ndr_push_blob(push);
2787 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2788 talloc_free(r);
2789 return false;
2792 talloc_free(r);
2794 return true;
2797 static bool api_PNP_IsDockStationPresent(pipes_struct *p)
2799 const struct ndr_interface_call *call;
2800 struct ndr_pull *pull;
2801 struct ndr_push *push;
2802 enum ndr_err_code ndr_err;
2803 DATA_BLOB blob;
2804 struct PNP_IsDockStationPresent *r;
2806 call = &ndr_table_ntsvcs.calls[NDR_PNP_ISDOCKSTATIONPRESENT];
2808 r = talloc(talloc_tos(), struct PNP_IsDockStationPresent);
2809 if (r == NULL) {
2810 return false;
2813 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2814 talloc_free(r);
2815 return false;
2818 pull = ndr_pull_init_blob(&blob, r);
2819 if (pull == NULL) {
2820 talloc_free(r);
2821 return false;
2824 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2825 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2826 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2827 talloc_free(r);
2828 return false;
2831 if (DEBUGLEVEL >= 10) {
2832 NDR_PRINT_IN_DEBUG(PNP_IsDockStationPresent, r);
2835 r->out.result = _PNP_IsDockStationPresent(p, r);
2837 if (p->rng_fault_state) {
2838 talloc_free(r);
2839 /* Return true here, srv_pipe_hnd.c will take care */
2840 return true;
2843 if (DEBUGLEVEL >= 10) {
2844 NDR_PRINT_OUT_DEBUG(PNP_IsDockStationPresent, r);
2847 push = ndr_push_init_ctx(r);
2848 if (push == NULL) {
2849 talloc_free(r);
2850 return false;
2853 ndr_err = call->ndr_push(push, NDR_OUT, r);
2854 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2855 talloc_free(r);
2856 return false;
2859 blob = ndr_push_blob(push);
2860 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2861 talloc_free(r);
2862 return false;
2865 talloc_free(r);
2867 return true;
2870 static bool api_PNP_RequestEjectPC(pipes_struct *p)
2872 const struct ndr_interface_call *call;
2873 struct ndr_pull *pull;
2874 struct ndr_push *push;
2875 enum ndr_err_code ndr_err;
2876 DATA_BLOB blob;
2877 struct PNP_RequestEjectPC *r;
2879 call = &ndr_table_ntsvcs.calls[NDR_PNP_REQUESTEJECTPC];
2881 r = talloc(talloc_tos(), struct PNP_RequestEjectPC);
2882 if (r == NULL) {
2883 return false;
2886 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2887 talloc_free(r);
2888 return false;
2891 pull = ndr_pull_init_blob(&blob, r);
2892 if (pull == NULL) {
2893 talloc_free(r);
2894 return false;
2897 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2898 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2899 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2900 talloc_free(r);
2901 return false;
2904 if (DEBUGLEVEL >= 10) {
2905 NDR_PRINT_IN_DEBUG(PNP_RequestEjectPC, r);
2908 r->out.result = _PNP_RequestEjectPC(p, r);
2910 if (p->rng_fault_state) {
2911 talloc_free(r);
2912 /* Return true here, srv_pipe_hnd.c will take care */
2913 return true;
2916 if (DEBUGLEVEL >= 10) {
2917 NDR_PRINT_OUT_DEBUG(PNP_RequestEjectPC, r);
2920 push = ndr_push_init_ctx(r);
2921 if (push == NULL) {
2922 talloc_free(r);
2923 return false;
2926 ndr_err = call->ndr_push(push, NDR_OUT, r);
2927 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2928 talloc_free(r);
2929 return false;
2932 blob = ndr_push_blob(push);
2933 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
2934 talloc_free(r);
2935 return false;
2938 talloc_free(r);
2940 return true;
2943 static bool api_PNP_HwProfFlags(pipes_struct *p)
2945 const struct ndr_interface_call *call;
2946 struct ndr_pull *pull;
2947 struct ndr_push *push;
2948 enum ndr_err_code ndr_err;
2949 DATA_BLOB blob;
2950 struct PNP_HwProfFlags *r;
2952 call = &ndr_table_ntsvcs.calls[NDR_PNP_HWPROFFLAGS];
2954 r = talloc(talloc_tos(), struct PNP_HwProfFlags);
2955 if (r == NULL) {
2956 return false;
2959 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
2960 talloc_free(r);
2961 return false;
2964 pull = ndr_pull_init_blob(&blob, r);
2965 if (pull == NULL) {
2966 talloc_free(r);
2967 return false;
2970 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2971 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2972 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2973 talloc_free(r);
2974 return false;
2977 if (DEBUGLEVEL >= 10) {
2978 NDR_PRINT_IN_DEBUG(PNP_HwProfFlags, r);
2981 ZERO_STRUCT(r->out);
2982 r->out.unknown3 = r->in.unknown3;
2983 r->out.unknown4 = r->in.unknown4;
2984 r->out.unknown5a = talloc_zero(r, const char *);
2985 if (r->out.unknown5a == NULL) {
2986 talloc_free(r);
2987 return false;
2990 r->out.result = _PNP_HwProfFlags(p, r);
2992 if (p->rng_fault_state) {
2993 talloc_free(r);
2994 /* Return true here, srv_pipe_hnd.c will take care */
2995 return true;
2998 if (DEBUGLEVEL >= 10) {
2999 NDR_PRINT_OUT_DEBUG(PNP_HwProfFlags, r);
3002 push = ndr_push_init_ctx(r);
3003 if (push == NULL) {
3004 talloc_free(r);
3005 return false;
3008 ndr_err = call->ndr_push(push, NDR_OUT, r);
3009 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3010 talloc_free(r);
3011 return false;
3014 blob = ndr_push_blob(push);
3015 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3016 talloc_free(r);
3017 return false;
3020 talloc_free(r);
3022 return true;
3025 static bool api_PNP_GetHwProfInfo(pipes_struct *p)
3027 const struct ndr_interface_call *call;
3028 struct ndr_pull *pull;
3029 struct ndr_push *push;
3030 enum ndr_err_code ndr_err;
3031 DATA_BLOB blob;
3032 struct PNP_GetHwProfInfo *r;
3034 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETHWPROFINFO];
3036 r = talloc(talloc_tos(), struct PNP_GetHwProfInfo);
3037 if (r == NULL) {
3038 return false;
3041 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3042 talloc_free(r);
3043 return false;
3046 pull = ndr_pull_init_blob(&blob, r);
3047 if (pull == NULL) {
3048 talloc_free(r);
3049 return false;
3052 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3053 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3054 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3055 talloc_free(r);
3056 return false;
3059 if (DEBUGLEVEL >= 10) {
3060 NDR_PRINT_IN_DEBUG(PNP_GetHwProfInfo, r);
3063 r->out.result = _PNP_GetHwProfInfo(p, r);
3065 if (p->rng_fault_state) {
3066 talloc_free(r);
3067 /* Return true here, srv_pipe_hnd.c will take care */
3068 return true;
3071 if (DEBUGLEVEL >= 10) {
3072 NDR_PRINT_OUT_DEBUG(PNP_GetHwProfInfo, r);
3075 push = ndr_push_init_ctx(r);
3076 if (push == NULL) {
3077 talloc_free(r);
3078 return false;
3081 ndr_err = call->ndr_push(push, NDR_OUT, r);
3082 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3083 talloc_free(r);
3084 return false;
3087 blob = ndr_push_blob(push);
3088 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3089 talloc_free(r);
3090 return false;
3093 talloc_free(r);
3095 return true;
3098 static bool api_PNP_AddEmptyLogConf(pipes_struct *p)
3100 const struct ndr_interface_call *call;
3101 struct ndr_pull *pull;
3102 struct ndr_push *push;
3103 enum ndr_err_code ndr_err;
3104 DATA_BLOB blob;
3105 struct PNP_AddEmptyLogConf *r;
3107 call = &ndr_table_ntsvcs.calls[NDR_PNP_ADDEMPTYLOGCONF];
3109 r = talloc(talloc_tos(), struct PNP_AddEmptyLogConf);
3110 if (r == NULL) {
3111 return false;
3114 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3115 talloc_free(r);
3116 return false;
3119 pull = ndr_pull_init_blob(&blob, r);
3120 if (pull == NULL) {
3121 talloc_free(r);
3122 return false;
3125 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3126 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3127 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3128 talloc_free(r);
3129 return false;
3132 if (DEBUGLEVEL >= 10) {
3133 NDR_PRINT_IN_DEBUG(PNP_AddEmptyLogConf, r);
3136 r->out.result = _PNP_AddEmptyLogConf(p, r);
3138 if (p->rng_fault_state) {
3139 talloc_free(r);
3140 /* Return true here, srv_pipe_hnd.c will take care */
3141 return true;
3144 if (DEBUGLEVEL >= 10) {
3145 NDR_PRINT_OUT_DEBUG(PNP_AddEmptyLogConf, r);
3148 push = ndr_push_init_ctx(r);
3149 if (push == NULL) {
3150 talloc_free(r);
3151 return false;
3154 ndr_err = call->ndr_push(push, NDR_OUT, r);
3155 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3156 talloc_free(r);
3157 return false;
3160 blob = ndr_push_blob(push);
3161 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3162 talloc_free(r);
3163 return false;
3166 talloc_free(r);
3168 return true;
3171 static bool api_PNP_FreeLogConf(pipes_struct *p)
3173 const struct ndr_interface_call *call;
3174 struct ndr_pull *pull;
3175 struct ndr_push *push;
3176 enum ndr_err_code ndr_err;
3177 DATA_BLOB blob;
3178 struct PNP_FreeLogConf *r;
3180 call = &ndr_table_ntsvcs.calls[NDR_PNP_FREELOGCONF];
3182 r = talloc(talloc_tos(), struct PNP_FreeLogConf);
3183 if (r == NULL) {
3184 return false;
3187 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3188 talloc_free(r);
3189 return false;
3192 pull = ndr_pull_init_blob(&blob, r);
3193 if (pull == NULL) {
3194 talloc_free(r);
3195 return false;
3198 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3199 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3200 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3201 talloc_free(r);
3202 return false;
3205 if (DEBUGLEVEL >= 10) {
3206 NDR_PRINT_IN_DEBUG(PNP_FreeLogConf, r);
3209 r->out.result = _PNP_FreeLogConf(p, r);
3211 if (p->rng_fault_state) {
3212 talloc_free(r);
3213 /* Return true here, srv_pipe_hnd.c will take care */
3214 return true;
3217 if (DEBUGLEVEL >= 10) {
3218 NDR_PRINT_OUT_DEBUG(PNP_FreeLogConf, r);
3221 push = ndr_push_init_ctx(r);
3222 if (push == NULL) {
3223 talloc_free(r);
3224 return false;
3227 ndr_err = call->ndr_push(push, NDR_OUT, r);
3228 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3229 talloc_free(r);
3230 return false;
3233 blob = ndr_push_blob(push);
3234 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3235 talloc_free(r);
3236 return false;
3239 talloc_free(r);
3241 return true;
3244 static bool api_PNP_GetFirstLogConf(pipes_struct *p)
3246 const struct ndr_interface_call *call;
3247 struct ndr_pull *pull;
3248 struct ndr_push *push;
3249 enum ndr_err_code ndr_err;
3250 DATA_BLOB blob;
3251 struct PNP_GetFirstLogConf *r;
3253 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETFIRSTLOGCONF];
3255 r = talloc(talloc_tos(), struct PNP_GetFirstLogConf);
3256 if (r == NULL) {
3257 return false;
3260 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3261 talloc_free(r);
3262 return false;
3265 pull = ndr_pull_init_blob(&blob, r);
3266 if (pull == NULL) {
3267 talloc_free(r);
3268 return false;
3271 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3272 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3273 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3274 talloc_free(r);
3275 return false;
3278 if (DEBUGLEVEL >= 10) {
3279 NDR_PRINT_IN_DEBUG(PNP_GetFirstLogConf, r);
3282 r->out.result = _PNP_GetFirstLogConf(p, r);
3284 if (p->rng_fault_state) {
3285 talloc_free(r);
3286 /* Return true here, srv_pipe_hnd.c will take care */
3287 return true;
3290 if (DEBUGLEVEL >= 10) {
3291 NDR_PRINT_OUT_DEBUG(PNP_GetFirstLogConf, r);
3294 push = ndr_push_init_ctx(r);
3295 if (push == NULL) {
3296 talloc_free(r);
3297 return false;
3300 ndr_err = call->ndr_push(push, NDR_OUT, r);
3301 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3302 talloc_free(r);
3303 return false;
3306 blob = ndr_push_blob(push);
3307 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3308 talloc_free(r);
3309 return false;
3312 talloc_free(r);
3314 return true;
3317 static bool api_PNP_GetNextLogConf(pipes_struct *p)
3319 const struct ndr_interface_call *call;
3320 struct ndr_pull *pull;
3321 struct ndr_push *push;
3322 enum ndr_err_code ndr_err;
3323 DATA_BLOB blob;
3324 struct PNP_GetNextLogConf *r;
3326 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETNEXTLOGCONF];
3328 r = talloc(talloc_tos(), struct PNP_GetNextLogConf);
3329 if (r == NULL) {
3330 return false;
3333 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3334 talloc_free(r);
3335 return false;
3338 pull = ndr_pull_init_blob(&blob, r);
3339 if (pull == NULL) {
3340 talloc_free(r);
3341 return false;
3344 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3345 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3346 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3347 talloc_free(r);
3348 return false;
3351 if (DEBUGLEVEL >= 10) {
3352 NDR_PRINT_IN_DEBUG(PNP_GetNextLogConf, r);
3355 r->out.result = _PNP_GetNextLogConf(p, r);
3357 if (p->rng_fault_state) {
3358 talloc_free(r);
3359 /* Return true here, srv_pipe_hnd.c will take care */
3360 return true;
3363 if (DEBUGLEVEL >= 10) {
3364 NDR_PRINT_OUT_DEBUG(PNP_GetNextLogConf, r);
3367 push = ndr_push_init_ctx(r);
3368 if (push == NULL) {
3369 talloc_free(r);
3370 return false;
3373 ndr_err = call->ndr_push(push, NDR_OUT, r);
3374 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3375 talloc_free(r);
3376 return false;
3379 blob = ndr_push_blob(push);
3380 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3381 talloc_free(r);
3382 return false;
3385 talloc_free(r);
3387 return true;
3390 static bool api_PNP_GetLogConfPriority(pipes_struct *p)
3392 const struct ndr_interface_call *call;
3393 struct ndr_pull *pull;
3394 struct ndr_push *push;
3395 enum ndr_err_code ndr_err;
3396 DATA_BLOB blob;
3397 struct PNP_GetLogConfPriority *r;
3399 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETLOGCONFPRIORITY];
3401 r = talloc(talloc_tos(), struct PNP_GetLogConfPriority);
3402 if (r == NULL) {
3403 return false;
3406 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3407 talloc_free(r);
3408 return false;
3411 pull = ndr_pull_init_blob(&blob, r);
3412 if (pull == NULL) {
3413 talloc_free(r);
3414 return false;
3417 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3418 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3419 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3420 talloc_free(r);
3421 return false;
3424 if (DEBUGLEVEL >= 10) {
3425 NDR_PRINT_IN_DEBUG(PNP_GetLogConfPriority, r);
3428 r->out.result = _PNP_GetLogConfPriority(p, r);
3430 if (p->rng_fault_state) {
3431 talloc_free(r);
3432 /* Return true here, srv_pipe_hnd.c will take care */
3433 return true;
3436 if (DEBUGLEVEL >= 10) {
3437 NDR_PRINT_OUT_DEBUG(PNP_GetLogConfPriority, r);
3440 push = ndr_push_init_ctx(r);
3441 if (push == NULL) {
3442 talloc_free(r);
3443 return false;
3446 ndr_err = call->ndr_push(push, NDR_OUT, r);
3447 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3448 talloc_free(r);
3449 return false;
3452 blob = ndr_push_blob(push);
3453 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3454 talloc_free(r);
3455 return false;
3458 talloc_free(r);
3460 return true;
3463 static bool api_PNP_AddResDes(pipes_struct *p)
3465 const struct ndr_interface_call *call;
3466 struct ndr_pull *pull;
3467 struct ndr_push *push;
3468 enum ndr_err_code ndr_err;
3469 DATA_BLOB blob;
3470 struct PNP_AddResDes *r;
3472 call = &ndr_table_ntsvcs.calls[NDR_PNP_ADDRESDES];
3474 r = talloc(talloc_tos(), struct PNP_AddResDes);
3475 if (r == NULL) {
3476 return false;
3479 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3480 talloc_free(r);
3481 return false;
3484 pull = ndr_pull_init_blob(&blob, r);
3485 if (pull == NULL) {
3486 talloc_free(r);
3487 return false;
3490 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3491 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3492 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3493 talloc_free(r);
3494 return false;
3497 if (DEBUGLEVEL >= 10) {
3498 NDR_PRINT_IN_DEBUG(PNP_AddResDes, r);
3501 r->out.result = _PNP_AddResDes(p, r);
3503 if (p->rng_fault_state) {
3504 talloc_free(r);
3505 /* Return true here, srv_pipe_hnd.c will take care */
3506 return true;
3509 if (DEBUGLEVEL >= 10) {
3510 NDR_PRINT_OUT_DEBUG(PNP_AddResDes, r);
3513 push = ndr_push_init_ctx(r);
3514 if (push == NULL) {
3515 talloc_free(r);
3516 return false;
3519 ndr_err = call->ndr_push(push, NDR_OUT, r);
3520 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3521 talloc_free(r);
3522 return false;
3525 blob = ndr_push_blob(push);
3526 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3527 talloc_free(r);
3528 return false;
3531 talloc_free(r);
3533 return true;
3536 static bool api_PNP_FreeResDes(pipes_struct *p)
3538 const struct ndr_interface_call *call;
3539 struct ndr_pull *pull;
3540 struct ndr_push *push;
3541 enum ndr_err_code ndr_err;
3542 DATA_BLOB blob;
3543 struct PNP_FreeResDes *r;
3545 call = &ndr_table_ntsvcs.calls[NDR_PNP_FREERESDES];
3547 r = talloc(talloc_tos(), struct PNP_FreeResDes);
3548 if (r == NULL) {
3549 return false;
3552 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3553 talloc_free(r);
3554 return false;
3557 pull = ndr_pull_init_blob(&blob, r);
3558 if (pull == NULL) {
3559 talloc_free(r);
3560 return false;
3563 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3564 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3565 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3566 talloc_free(r);
3567 return false;
3570 if (DEBUGLEVEL >= 10) {
3571 NDR_PRINT_IN_DEBUG(PNP_FreeResDes, r);
3574 r->out.result = _PNP_FreeResDes(p, r);
3576 if (p->rng_fault_state) {
3577 talloc_free(r);
3578 /* Return true here, srv_pipe_hnd.c will take care */
3579 return true;
3582 if (DEBUGLEVEL >= 10) {
3583 NDR_PRINT_OUT_DEBUG(PNP_FreeResDes, r);
3586 push = ndr_push_init_ctx(r);
3587 if (push == NULL) {
3588 talloc_free(r);
3589 return false;
3592 ndr_err = call->ndr_push(push, NDR_OUT, r);
3593 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3594 talloc_free(r);
3595 return false;
3598 blob = ndr_push_blob(push);
3599 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3600 talloc_free(r);
3601 return false;
3604 talloc_free(r);
3606 return true;
3609 static bool api_PNP_GetNextResDes(pipes_struct *p)
3611 const struct ndr_interface_call *call;
3612 struct ndr_pull *pull;
3613 struct ndr_push *push;
3614 enum ndr_err_code ndr_err;
3615 DATA_BLOB blob;
3616 struct PNP_GetNextResDes *r;
3618 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETNEXTRESDES];
3620 r = talloc(talloc_tos(), struct PNP_GetNextResDes);
3621 if (r == NULL) {
3622 return false;
3625 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3626 talloc_free(r);
3627 return false;
3630 pull = ndr_pull_init_blob(&blob, r);
3631 if (pull == NULL) {
3632 talloc_free(r);
3633 return false;
3636 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3637 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3638 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3639 talloc_free(r);
3640 return false;
3643 if (DEBUGLEVEL >= 10) {
3644 NDR_PRINT_IN_DEBUG(PNP_GetNextResDes, r);
3647 r->out.result = _PNP_GetNextResDes(p, r);
3649 if (p->rng_fault_state) {
3650 talloc_free(r);
3651 /* Return true here, srv_pipe_hnd.c will take care */
3652 return true;
3655 if (DEBUGLEVEL >= 10) {
3656 NDR_PRINT_OUT_DEBUG(PNP_GetNextResDes, r);
3659 push = ndr_push_init_ctx(r);
3660 if (push == NULL) {
3661 talloc_free(r);
3662 return false;
3665 ndr_err = call->ndr_push(push, NDR_OUT, r);
3666 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3667 talloc_free(r);
3668 return false;
3671 blob = ndr_push_blob(push);
3672 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3673 talloc_free(r);
3674 return false;
3677 talloc_free(r);
3679 return true;
3682 static bool api_PNP_GetResDesData(pipes_struct *p)
3684 const struct ndr_interface_call *call;
3685 struct ndr_pull *pull;
3686 struct ndr_push *push;
3687 enum ndr_err_code ndr_err;
3688 DATA_BLOB blob;
3689 struct PNP_GetResDesData *r;
3691 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETRESDESDATA];
3693 r = talloc(talloc_tos(), struct PNP_GetResDesData);
3694 if (r == NULL) {
3695 return false;
3698 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3699 talloc_free(r);
3700 return false;
3703 pull = ndr_pull_init_blob(&blob, r);
3704 if (pull == NULL) {
3705 talloc_free(r);
3706 return false;
3709 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3710 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3711 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3712 talloc_free(r);
3713 return false;
3716 if (DEBUGLEVEL >= 10) {
3717 NDR_PRINT_IN_DEBUG(PNP_GetResDesData, r);
3720 r->out.result = _PNP_GetResDesData(p, r);
3722 if (p->rng_fault_state) {
3723 talloc_free(r);
3724 /* Return true here, srv_pipe_hnd.c will take care */
3725 return true;
3728 if (DEBUGLEVEL >= 10) {
3729 NDR_PRINT_OUT_DEBUG(PNP_GetResDesData, r);
3732 push = ndr_push_init_ctx(r);
3733 if (push == NULL) {
3734 talloc_free(r);
3735 return false;
3738 ndr_err = call->ndr_push(push, NDR_OUT, r);
3739 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3740 talloc_free(r);
3741 return false;
3744 blob = ndr_push_blob(push);
3745 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3746 talloc_free(r);
3747 return false;
3750 talloc_free(r);
3752 return true;
3755 static bool api_PNP_GetResDesDataSize(pipes_struct *p)
3757 const struct ndr_interface_call *call;
3758 struct ndr_pull *pull;
3759 struct ndr_push *push;
3760 enum ndr_err_code ndr_err;
3761 DATA_BLOB blob;
3762 struct PNP_GetResDesDataSize *r;
3764 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETRESDESDATASIZE];
3766 r = talloc(talloc_tos(), struct PNP_GetResDesDataSize);
3767 if (r == NULL) {
3768 return false;
3771 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3772 talloc_free(r);
3773 return false;
3776 pull = ndr_pull_init_blob(&blob, r);
3777 if (pull == NULL) {
3778 talloc_free(r);
3779 return false;
3782 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3783 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3784 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3785 talloc_free(r);
3786 return false;
3789 if (DEBUGLEVEL >= 10) {
3790 NDR_PRINT_IN_DEBUG(PNP_GetResDesDataSize, r);
3793 r->out.result = _PNP_GetResDesDataSize(p, r);
3795 if (p->rng_fault_state) {
3796 talloc_free(r);
3797 /* Return true here, srv_pipe_hnd.c will take care */
3798 return true;
3801 if (DEBUGLEVEL >= 10) {
3802 NDR_PRINT_OUT_DEBUG(PNP_GetResDesDataSize, r);
3805 push = ndr_push_init_ctx(r);
3806 if (push == NULL) {
3807 talloc_free(r);
3808 return false;
3811 ndr_err = call->ndr_push(push, NDR_OUT, r);
3812 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3813 talloc_free(r);
3814 return false;
3817 blob = ndr_push_blob(push);
3818 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3819 talloc_free(r);
3820 return false;
3823 talloc_free(r);
3825 return true;
3828 static bool api_PNP_ModifyResDes(pipes_struct *p)
3830 const struct ndr_interface_call *call;
3831 struct ndr_pull *pull;
3832 struct ndr_push *push;
3833 enum ndr_err_code ndr_err;
3834 DATA_BLOB blob;
3835 struct PNP_ModifyResDes *r;
3837 call = &ndr_table_ntsvcs.calls[NDR_PNP_MODIFYRESDES];
3839 r = talloc(talloc_tos(), struct PNP_ModifyResDes);
3840 if (r == NULL) {
3841 return false;
3844 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3845 talloc_free(r);
3846 return false;
3849 pull = ndr_pull_init_blob(&blob, r);
3850 if (pull == NULL) {
3851 talloc_free(r);
3852 return false;
3855 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3856 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3857 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3858 talloc_free(r);
3859 return false;
3862 if (DEBUGLEVEL >= 10) {
3863 NDR_PRINT_IN_DEBUG(PNP_ModifyResDes, r);
3866 r->out.result = _PNP_ModifyResDes(p, r);
3868 if (p->rng_fault_state) {
3869 talloc_free(r);
3870 /* Return true here, srv_pipe_hnd.c will take care */
3871 return true;
3874 if (DEBUGLEVEL >= 10) {
3875 NDR_PRINT_OUT_DEBUG(PNP_ModifyResDes, r);
3878 push = ndr_push_init_ctx(r);
3879 if (push == NULL) {
3880 talloc_free(r);
3881 return false;
3884 ndr_err = call->ndr_push(push, NDR_OUT, r);
3885 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3886 talloc_free(r);
3887 return false;
3890 blob = ndr_push_blob(push);
3891 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3892 talloc_free(r);
3893 return false;
3896 talloc_free(r);
3898 return true;
3901 static bool api_PNP_DetectResourceLimit(pipes_struct *p)
3903 const struct ndr_interface_call *call;
3904 struct ndr_pull *pull;
3905 struct ndr_push *push;
3906 enum ndr_err_code ndr_err;
3907 DATA_BLOB blob;
3908 struct PNP_DetectResourceLimit *r;
3910 call = &ndr_table_ntsvcs.calls[NDR_PNP_DETECTRESOURCELIMIT];
3912 r = talloc(talloc_tos(), struct PNP_DetectResourceLimit);
3913 if (r == NULL) {
3914 return false;
3917 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3918 talloc_free(r);
3919 return false;
3922 pull = ndr_pull_init_blob(&blob, r);
3923 if (pull == NULL) {
3924 talloc_free(r);
3925 return false;
3928 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3929 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3930 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3931 talloc_free(r);
3932 return false;
3935 if (DEBUGLEVEL >= 10) {
3936 NDR_PRINT_IN_DEBUG(PNP_DetectResourceLimit, r);
3939 r->out.result = _PNP_DetectResourceLimit(p, r);
3941 if (p->rng_fault_state) {
3942 talloc_free(r);
3943 /* Return true here, srv_pipe_hnd.c will take care */
3944 return true;
3947 if (DEBUGLEVEL >= 10) {
3948 NDR_PRINT_OUT_DEBUG(PNP_DetectResourceLimit, r);
3951 push = ndr_push_init_ctx(r);
3952 if (push == NULL) {
3953 talloc_free(r);
3954 return false;
3957 ndr_err = call->ndr_push(push, NDR_OUT, r);
3958 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3959 talloc_free(r);
3960 return false;
3963 blob = ndr_push_blob(push);
3964 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
3965 talloc_free(r);
3966 return false;
3969 talloc_free(r);
3971 return true;
3974 static bool api_PNP_QueryResConfList(pipes_struct *p)
3976 const struct ndr_interface_call *call;
3977 struct ndr_pull *pull;
3978 struct ndr_push *push;
3979 enum ndr_err_code ndr_err;
3980 DATA_BLOB blob;
3981 struct PNP_QueryResConfList *r;
3983 call = &ndr_table_ntsvcs.calls[NDR_PNP_QUERYRESCONFLIST];
3985 r = talloc(talloc_tos(), struct PNP_QueryResConfList);
3986 if (r == NULL) {
3987 return false;
3990 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
3991 talloc_free(r);
3992 return false;
3995 pull = ndr_pull_init_blob(&blob, r);
3996 if (pull == NULL) {
3997 talloc_free(r);
3998 return false;
4001 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4002 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4003 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4004 talloc_free(r);
4005 return false;
4008 if (DEBUGLEVEL >= 10) {
4009 NDR_PRINT_IN_DEBUG(PNP_QueryResConfList, r);
4012 r->out.result = _PNP_QueryResConfList(p, r);
4014 if (p->rng_fault_state) {
4015 talloc_free(r);
4016 /* Return true here, srv_pipe_hnd.c will take care */
4017 return true;
4020 if (DEBUGLEVEL >= 10) {
4021 NDR_PRINT_OUT_DEBUG(PNP_QueryResConfList, r);
4024 push = ndr_push_init_ctx(r);
4025 if (push == NULL) {
4026 talloc_free(r);
4027 return false;
4030 ndr_err = call->ndr_push(push, NDR_OUT, r);
4031 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4032 talloc_free(r);
4033 return false;
4036 blob = ndr_push_blob(push);
4037 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4038 talloc_free(r);
4039 return false;
4042 talloc_free(r);
4044 return true;
4047 static bool api_PNP_SetHwProf(pipes_struct *p)
4049 const struct ndr_interface_call *call;
4050 struct ndr_pull *pull;
4051 struct ndr_push *push;
4052 enum ndr_err_code ndr_err;
4053 DATA_BLOB blob;
4054 struct PNP_SetHwProf *r;
4056 call = &ndr_table_ntsvcs.calls[NDR_PNP_SETHWPROF];
4058 r = talloc(talloc_tos(), struct PNP_SetHwProf);
4059 if (r == NULL) {
4060 return false;
4063 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4064 talloc_free(r);
4065 return false;
4068 pull = ndr_pull_init_blob(&blob, r);
4069 if (pull == NULL) {
4070 talloc_free(r);
4071 return false;
4074 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4075 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4076 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4077 talloc_free(r);
4078 return false;
4081 if (DEBUGLEVEL >= 10) {
4082 NDR_PRINT_IN_DEBUG(PNP_SetHwProf, r);
4085 r->out.result = _PNP_SetHwProf(p, r);
4087 if (p->rng_fault_state) {
4088 talloc_free(r);
4089 /* Return true here, srv_pipe_hnd.c will take care */
4090 return true;
4093 if (DEBUGLEVEL >= 10) {
4094 NDR_PRINT_OUT_DEBUG(PNP_SetHwProf, r);
4097 push = ndr_push_init_ctx(r);
4098 if (push == NULL) {
4099 talloc_free(r);
4100 return false;
4103 ndr_err = call->ndr_push(push, NDR_OUT, r);
4104 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4105 talloc_free(r);
4106 return false;
4109 blob = ndr_push_blob(push);
4110 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4111 talloc_free(r);
4112 return false;
4115 talloc_free(r);
4117 return true;
4120 static bool api_PNP_QueryArbitratorFreeData(pipes_struct *p)
4122 const struct ndr_interface_call *call;
4123 struct ndr_pull *pull;
4124 struct ndr_push *push;
4125 enum ndr_err_code ndr_err;
4126 DATA_BLOB blob;
4127 struct PNP_QueryArbitratorFreeData *r;
4129 call = &ndr_table_ntsvcs.calls[NDR_PNP_QUERYARBITRATORFREEDATA];
4131 r = talloc(talloc_tos(), struct PNP_QueryArbitratorFreeData);
4132 if (r == NULL) {
4133 return false;
4136 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4137 talloc_free(r);
4138 return false;
4141 pull = ndr_pull_init_blob(&blob, r);
4142 if (pull == NULL) {
4143 talloc_free(r);
4144 return false;
4147 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4148 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4149 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4150 talloc_free(r);
4151 return false;
4154 if (DEBUGLEVEL >= 10) {
4155 NDR_PRINT_IN_DEBUG(PNP_QueryArbitratorFreeData, r);
4158 r->out.result = _PNP_QueryArbitratorFreeData(p, r);
4160 if (p->rng_fault_state) {
4161 talloc_free(r);
4162 /* Return true here, srv_pipe_hnd.c will take care */
4163 return true;
4166 if (DEBUGLEVEL >= 10) {
4167 NDR_PRINT_OUT_DEBUG(PNP_QueryArbitratorFreeData, r);
4170 push = ndr_push_init_ctx(r);
4171 if (push == NULL) {
4172 talloc_free(r);
4173 return false;
4176 ndr_err = call->ndr_push(push, NDR_OUT, r);
4177 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4178 talloc_free(r);
4179 return false;
4182 blob = ndr_push_blob(push);
4183 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4184 talloc_free(r);
4185 return false;
4188 talloc_free(r);
4190 return true;
4193 static bool api_PNP_QueryArbitratorFreeSize(pipes_struct *p)
4195 const struct ndr_interface_call *call;
4196 struct ndr_pull *pull;
4197 struct ndr_push *push;
4198 enum ndr_err_code ndr_err;
4199 DATA_BLOB blob;
4200 struct PNP_QueryArbitratorFreeSize *r;
4202 call = &ndr_table_ntsvcs.calls[NDR_PNP_QUERYARBITRATORFREESIZE];
4204 r = talloc(talloc_tos(), struct PNP_QueryArbitratorFreeSize);
4205 if (r == NULL) {
4206 return false;
4209 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4210 talloc_free(r);
4211 return false;
4214 pull = ndr_pull_init_blob(&blob, r);
4215 if (pull == NULL) {
4216 talloc_free(r);
4217 return false;
4220 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4221 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4222 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4223 talloc_free(r);
4224 return false;
4227 if (DEBUGLEVEL >= 10) {
4228 NDR_PRINT_IN_DEBUG(PNP_QueryArbitratorFreeSize, r);
4231 r->out.result = _PNP_QueryArbitratorFreeSize(p, r);
4233 if (p->rng_fault_state) {
4234 talloc_free(r);
4235 /* Return true here, srv_pipe_hnd.c will take care */
4236 return true;
4239 if (DEBUGLEVEL >= 10) {
4240 NDR_PRINT_OUT_DEBUG(PNP_QueryArbitratorFreeSize, r);
4243 push = ndr_push_init_ctx(r);
4244 if (push == NULL) {
4245 talloc_free(r);
4246 return false;
4249 ndr_err = call->ndr_push(push, NDR_OUT, r);
4250 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4251 talloc_free(r);
4252 return false;
4255 blob = ndr_push_blob(push);
4256 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4257 talloc_free(r);
4258 return false;
4261 talloc_free(r);
4263 return true;
4266 static bool api_PNP_RunDetection(pipes_struct *p)
4268 const struct ndr_interface_call *call;
4269 struct ndr_pull *pull;
4270 struct ndr_push *push;
4271 enum ndr_err_code ndr_err;
4272 DATA_BLOB blob;
4273 struct PNP_RunDetection *r;
4275 call = &ndr_table_ntsvcs.calls[NDR_PNP_RUNDETECTION];
4277 r = talloc(talloc_tos(), struct PNP_RunDetection);
4278 if (r == NULL) {
4279 return false;
4282 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4283 talloc_free(r);
4284 return false;
4287 pull = ndr_pull_init_blob(&blob, r);
4288 if (pull == NULL) {
4289 talloc_free(r);
4290 return false;
4293 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4294 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4295 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4296 talloc_free(r);
4297 return false;
4300 if (DEBUGLEVEL >= 10) {
4301 NDR_PRINT_IN_DEBUG(PNP_RunDetection, r);
4304 r->out.result = _PNP_RunDetection(p, r);
4306 if (p->rng_fault_state) {
4307 talloc_free(r);
4308 /* Return true here, srv_pipe_hnd.c will take care */
4309 return true;
4312 if (DEBUGLEVEL >= 10) {
4313 NDR_PRINT_OUT_DEBUG(PNP_RunDetection, r);
4316 push = ndr_push_init_ctx(r);
4317 if (push == NULL) {
4318 talloc_free(r);
4319 return false;
4322 ndr_err = call->ndr_push(push, NDR_OUT, r);
4323 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4324 talloc_free(r);
4325 return false;
4328 blob = ndr_push_blob(push);
4329 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4330 talloc_free(r);
4331 return false;
4334 talloc_free(r);
4336 return true;
4339 static bool api_PNP_RegisterNotification(pipes_struct *p)
4341 const struct ndr_interface_call *call;
4342 struct ndr_pull *pull;
4343 struct ndr_push *push;
4344 enum ndr_err_code ndr_err;
4345 DATA_BLOB blob;
4346 struct PNP_RegisterNotification *r;
4348 call = &ndr_table_ntsvcs.calls[NDR_PNP_REGISTERNOTIFICATION];
4350 r = talloc(talloc_tos(), struct PNP_RegisterNotification);
4351 if (r == NULL) {
4352 return false;
4355 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4356 talloc_free(r);
4357 return false;
4360 pull = ndr_pull_init_blob(&blob, r);
4361 if (pull == NULL) {
4362 talloc_free(r);
4363 return false;
4366 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4367 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4368 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4369 talloc_free(r);
4370 return false;
4373 if (DEBUGLEVEL >= 10) {
4374 NDR_PRINT_IN_DEBUG(PNP_RegisterNotification, r);
4377 r->out.result = _PNP_RegisterNotification(p, r);
4379 if (p->rng_fault_state) {
4380 talloc_free(r);
4381 /* Return true here, srv_pipe_hnd.c will take care */
4382 return true;
4385 if (DEBUGLEVEL >= 10) {
4386 NDR_PRINT_OUT_DEBUG(PNP_RegisterNotification, r);
4389 push = ndr_push_init_ctx(r);
4390 if (push == NULL) {
4391 talloc_free(r);
4392 return false;
4395 ndr_err = call->ndr_push(push, NDR_OUT, r);
4396 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4397 talloc_free(r);
4398 return false;
4401 blob = ndr_push_blob(push);
4402 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4403 talloc_free(r);
4404 return false;
4407 talloc_free(r);
4409 return true;
4412 static bool api_PNP_UnregisterNotification(pipes_struct *p)
4414 const struct ndr_interface_call *call;
4415 struct ndr_pull *pull;
4416 struct ndr_push *push;
4417 enum ndr_err_code ndr_err;
4418 DATA_BLOB blob;
4419 struct PNP_UnregisterNotification *r;
4421 call = &ndr_table_ntsvcs.calls[NDR_PNP_UNREGISTERNOTIFICATION];
4423 r = talloc(talloc_tos(), struct PNP_UnregisterNotification);
4424 if (r == NULL) {
4425 return false;
4428 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4429 talloc_free(r);
4430 return false;
4433 pull = ndr_pull_init_blob(&blob, r);
4434 if (pull == NULL) {
4435 talloc_free(r);
4436 return false;
4439 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4440 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4441 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4442 talloc_free(r);
4443 return false;
4446 if (DEBUGLEVEL >= 10) {
4447 NDR_PRINT_IN_DEBUG(PNP_UnregisterNotification, r);
4450 r->out.result = _PNP_UnregisterNotification(p, r);
4452 if (p->rng_fault_state) {
4453 talloc_free(r);
4454 /* Return true here, srv_pipe_hnd.c will take care */
4455 return true;
4458 if (DEBUGLEVEL >= 10) {
4459 NDR_PRINT_OUT_DEBUG(PNP_UnregisterNotification, r);
4462 push = ndr_push_init_ctx(r);
4463 if (push == NULL) {
4464 talloc_free(r);
4465 return false;
4468 ndr_err = call->ndr_push(push, NDR_OUT, r);
4469 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4470 talloc_free(r);
4471 return false;
4474 blob = ndr_push_blob(push);
4475 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4476 talloc_free(r);
4477 return false;
4480 talloc_free(r);
4482 return true;
4485 static bool api_PNP_GetCustomDevProp(pipes_struct *p)
4487 const struct ndr_interface_call *call;
4488 struct ndr_pull *pull;
4489 struct ndr_push *push;
4490 enum ndr_err_code ndr_err;
4491 DATA_BLOB blob;
4492 struct PNP_GetCustomDevProp *r;
4494 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETCUSTOMDEVPROP];
4496 r = talloc(talloc_tos(), struct PNP_GetCustomDevProp);
4497 if (r == NULL) {
4498 return false;
4501 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4502 talloc_free(r);
4503 return false;
4506 pull = ndr_pull_init_blob(&blob, r);
4507 if (pull == NULL) {
4508 talloc_free(r);
4509 return false;
4512 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4513 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4514 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4515 talloc_free(r);
4516 return false;
4519 if (DEBUGLEVEL >= 10) {
4520 NDR_PRINT_IN_DEBUG(PNP_GetCustomDevProp, r);
4523 r->out.result = _PNP_GetCustomDevProp(p, r);
4525 if (p->rng_fault_state) {
4526 talloc_free(r);
4527 /* Return true here, srv_pipe_hnd.c will take care */
4528 return true;
4531 if (DEBUGLEVEL >= 10) {
4532 NDR_PRINT_OUT_DEBUG(PNP_GetCustomDevProp, r);
4535 push = ndr_push_init_ctx(r);
4536 if (push == NULL) {
4537 talloc_free(r);
4538 return false;
4541 ndr_err = call->ndr_push(push, NDR_OUT, r);
4542 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4543 talloc_free(r);
4544 return false;
4547 blob = ndr_push_blob(push);
4548 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4549 talloc_free(r);
4550 return false;
4553 talloc_free(r);
4555 return true;
4558 static bool api_PNP_GetVersionInternal(pipes_struct *p)
4560 const struct ndr_interface_call *call;
4561 struct ndr_pull *pull;
4562 struct ndr_push *push;
4563 enum ndr_err_code ndr_err;
4564 DATA_BLOB blob;
4565 struct PNP_GetVersionInternal *r;
4567 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETVERSIONINTERNAL];
4569 r = talloc(talloc_tos(), struct PNP_GetVersionInternal);
4570 if (r == NULL) {
4571 return false;
4574 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4575 talloc_free(r);
4576 return false;
4579 pull = ndr_pull_init_blob(&blob, r);
4580 if (pull == NULL) {
4581 talloc_free(r);
4582 return false;
4585 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4586 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4587 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4588 talloc_free(r);
4589 return false;
4592 if (DEBUGLEVEL >= 10) {
4593 NDR_PRINT_IN_DEBUG(PNP_GetVersionInternal, r);
4596 r->out.result = _PNP_GetVersionInternal(p, r);
4598 if (p->rng_fault_state) {
4599 talloc_free(r);
4600 /* Return true here, srv_pipe_hnd.c will take care */
4601 return true;
4604 if (DEBUGLEVEL >= 10) {
4605 NDR_PRINT_OUT_DEBUG(PNP_GetVersionInternal, r);
4608 push = ndr_push_init_ctx(r);
4609 if (push == NULL) {
4610 talloc_free(r);
4611 return false;
4614 ndr_err = call->ndr_push(push, NDR_OUT, r);
4615 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4616 talloc_free(r);
4617 return false;
4620 blob = ndr_push_blob(push);
4621 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4622 talloc_free(r);
4623 return false;
4626 talloc_free(r);
4628 return true;
4631 static bool api_PNP_GetBlockedDriverInfo(pipes_struct *p)
4633 const struct ndr_interface_call *call;
4634 struct ndr_pull *pull;
4635 struct ndr_push *push;
4636 enum ndr_err_code ndr_err;
4637 DATA_BLOB blob;
4638 struct PNP_GetBlockedDriverInfo *r;
4640 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETBLOCKEDDRIVERINFO];
4642 r = talloc(talloc_tos(), struct PNP_GetBlockedDriverInfo);
4643 if (r == NULL) {
4644 return false;
4647 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4648 talloc_free(r);
4649 return false;
4652 pull = ndr_pull_init_blob(&blob, r);
4653 if (pull == NULL) {
4654 talloc_free(r);
4655 return false;
4658 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4659 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4660 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4661 talloc_free(r);
4662 return false;
4665 if (DEBUGLEVEL >= 10) {
4666 NDR_PRINT_IN_DEBUG(PNP_GetBlockedDriverInfo, r);
4669 r->out.result = _PNP_GetBlockedDriverInfo(p, r);
4671 if (p->rng_fault_state) {
4672 talloc_free(r);
4673 /* Return true here, srv_pipe_hnd.c will take care */
4674 return true;
4677 if (DEBUGLEVEL >= 10) {
4678 NDR_PRINT_OUT_DEBUG(PNP_GetBlockedDriverInfo, r);
4681 push = ndr_push_init_ctx(r);
4682 if (push == NULL) {
4683 talloc_free(r);
4684 return false;
4687 ndr_err = call->ndr_push(push, NDR_OUT, r);
4688 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4689 talloc_free(r);
4690 return false;
4693 blob = ndr_push_blob(push);
4694 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4695 talloc_free(r);
4696 return false;
4699 talloc_free(r);
4701 return true;
4704 static bool api_PNP_GetServerSideDeviceInstallFlags(pipes_struct *p)
4706 const struct ndr_interface_call *call;
4707 struct ndr_pull *pull;
4708 struct ndr_push *push;
4709 enum ndr_err_code ndr_err;
4710 DATA_BLOB blob;
4711 struct PNP_GetServerSideDeviceInstallFlags *r;
4713 call = &ndr_table_ntsvcs.calls[NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS];
4715 r = talloc(talloc_tos(), struct PNP_GetServerSideDeviceInstallFlags);
4716 if (r == NULL) {
4717 return false;
4720 if (!prs_data_blob(&p->in_data.data, &blob, r)) {
4721 talloc_free(r);
4722 return false;
4725 pull = ndr_pull_init_blob(&blob, r);
4726 if (pull == NULL) {
4727 talloc_free(r);
4728 return false;
4731 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4732 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4733 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4734 talloc_free(r);
4735 return false;
4738 if (DEBUGLEVEL >= 10) {
4739 NDR_PRINT_IN_DEBUG(PNP_GetServerSideDeviceInstallFlags, r);
4742 r->out.result = _PNP_GetServerSideDeviceInstallFlags(p, r);
4744 if (p->rng_fault_state) {
4745 talloc_free(r);
4746 /* Return true here, srv_pipe_hnd.c will take care */
4747 return true;
4750 if (DEBUGLEVEL >= 10) {
4751 NDR_PRINT_OUT_DEBUG(PNP_GetServerSideDeviceInstallFlags, r);
4754 push = ndr_push_init_ctx(r);
4755 if (push == NULL) {
4756 talloc_free(r);
4757 return false;
4760 ndr_err = call->ndr_push(push, NDR_OUT, r);
4761 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4762 talloc_free(r);
4763 return false;
4766 blob = ndr_push_blob(push);
4767 if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
4768 talloc_free(r);
4769 return false;
4772 talloc_free(r);
4774 return true;
4778 /* Tables */
4779 static struct api_struct api_ntsvcs_cmds[] =
4781 {"PNP_DISCONNECT", NDR_PNP_DISCONNECT, api_PNP_Disconnect},
4782 {"PNP_CONNECT", NDR_PNP_CONNECT, api_PNP_Connect},
4783 {"PNP_GETVERSION", NDR_PNP_GETVERSION, api_PNP_GetVersion},
4784 {"PNP_GETGLOBALSTATE", NDR_PNP_GETGLOBALSTATE, api_PNP_GetGlobalState},
4785 {"PNP_INITDETECTION", NDR_PNP_INITDETECTION, api_PNP_InitDetection},
4786 {"PNP_REPORTLOGON", NDR_PNP_REPORTLOGON, api_PNP_ReportLogOn},
4787 {"PNP_VALIDATEDEVICEINSTANCE", NDR_PNP_VALIDATEDEVICEINSTANCE, api_PNP_ValidateDeviceInstance},
4788 {"PNP_GETROOTDEVICEINSTANCE", NDR_PNP_GETROOTDEVICEINSTANCE, api_PNP_GetRootDeviceInstance},
4789 {"PNP_GETRELATEDDEVICEINSTANCE", NDR_PNP_GETRELATEDDEVICEINSTANCE, api_PNP_GetRelatedDeviceInstance},
4790 {"PNP_ENUMERATESUBKEYS", NDR_PNP_ENUMERATESUBKEYS, api_PNP_EnumerateSubKeys},
4791 {"PNP_GETDEVICELIST", NDR_PNP_GETDEVICELIST, api_PNP_GetDeviceList},
4792 {"PNP_GETDEVICELISTSIZE", NDR_PNP_GETDEVICELISTSIZE, api_PNP_GetDeviceListSize},
4793 {"PNP_GETDEPTH", NDR_PNP_GETDEPTH, api_PNP_GetDepth},
4794 {"PNP_GETDEVICEREGPROP", NDR_PNP_GETDEVICEREGPROP, api_PNP_GetDeviceRegProp},
4795 {"PNP_SETDEVICEREGPROP", NDR_PNP_SETDEVICEREGPROP, api_PNP_SetDeviceRegProp},
4796 {"PNP_GETCLASSINSTANCE", NDR_PNP_GETCLASSINSTANCE, api_PNP_GetClassInstance},
4797 {"PNP_CREATEKEY", NDR_PNP_CREATEKEY, api_PNP_CreateKey},
4798 {"PNP_DELETEREGISTRYKEY", NDR_PNP_DELETEREGISTRYKEY, api_PNP_DeleteRegistryKey},
4799 {"PNP_GETCLASSCOUNT", NDR_PNP_GETCLASSCOUNT, api_PNP_GetClassCount},
4800 {"PNP_GETCLASSNAME", NDR_PNP_GETCLASSNAME, api_PNP_GetClassName},
4801 {"PNP_DELETECLASSKEY", NDR_PNP_DELETECLASSKEY, api_PNP_DeleteClassKey},
4802 {"PNP_GETINTERFACEDEVICEALIAS", NDR_PNP_GETINTERFACEDEVICEALIAS, api_PNP_GetInterfaceDeviceAlias},
4803 {"PNP_GETINTERFACEDEVICELIST", NDR_PNP_GETINTERFACEDEVICELIST, api_PNP_GetInterfaceDeviceList},
4804 {"PNP_GETINTERFACEDEVICELISTSIZE", NDR_PNP_GETINTERFACEDEVICELISTSIZE, api_PNP_GetInterfaceDeviceListSize},
4805 {"PNP_REGISTERDEVICECLASSASSOCIATION", NDR_PNP_REGISTERDEVICECLASSASSOCIATION, api_PNP_RegisterDeviceClassAssociation},
4806 {"PNP_UNREGISTERDEVICECLASSASSOCIATION", NDR_PNP_UNREGISTERDEVICECLASSASSOCIATION, api_PNP_UnregisterDeviceClassAssociation},
4807 {"PNP_GETCLASSREGPROP", NDR_PNP_GETCLASSREGPROP, api_PNP_GetClassRegProp},
4808 {"PNP_SETCLASSREGPROP", NDR_PNP_SETCLASSREGPROP, api_PNP_SetClassRegProp},
4809 {"PNP_CREATEDEVINST", NDR_PNP_CREATEDEVINST, api_PNP_CreateDevInst},
4810 {"PNP_DEVICEINSTANCEACTION", NDR_PNP_DEVICEINSTANCEACTION, api_PNP_DeviceInstanceAction},
4811 {"PNP_GETDEVICESTATUS", NDR_PNP_GETDEVICESTATUS, api_PNP_GetDeviceStatus},
4812 {"PNP_SETDEVICEPROBLEM", NDR_PNP_SETDEVICEPROBLEM, api_PNP_SetDeviceProblem},
4813 {"PNP_DISABLEDEVINST", NDR_PNP_DISABLEDEVINST, api_PNP_DisableDevInst},
4814 {"PNP_UNINSTALLDEVINST", NDR_PNP_UNINSTALLDEVINST, api_PNP_UninstallDevInst},
4815 {"PNP_ADDID", NDR_PNP_ADDID, api_PNP_AddID},
4816 {"PNP_REGISTERDRIVER", NDR_PNP_REGISTERDRIVER, api_PNP_RegisterDriver},
4817 {"PNP_QUERYREMOVE", NDR_PNP_QUERYREMOVE, api_PNP_QueryRemove},
4818 {"PNP_REQUESTDEVICEEJECT", NDR_PNP_REQUESTDEVICEEJECT, api_PNP_RequestDeviceEject},
4819 {"PNP_ISDOCKSTATIONPRESENT", NDR_PNP_ISDOCKSTATIONPRESENT, api_PNP_IsDockStationPresent},
4820 {"PNP_REQUESTEJECTPC", NDR_PNP_REQUESTEJECTPC, api_PNP_RequestEjectPC},
4821 {"PNP_HWPROFFLAGS", NDR_PNP_HWPROFFLAGS, api_PNP_HwProfFlags},
4822 {"PNP_GETHWPROFINFO", NDR_PNP_GETHWPROFINFO, api_PNP_GetHwProfInfo},
4823 {"PNP_ADDEMPTYLOGCONF", NDR_PNP_ADDEMPTYLOGCONF, api_PNP_AddEmptyLogConf},
4824 {"PNP_FREELOGCONF", NDR_PNP_FREELOGCONF, api_PNP_FreeLogConf},
4825 {"PNP_GETFIRSTLOGCONF", NDR_PNP_GETFIRSTLOGCONF, api_PNP_GetFirstLogConf},
4826 {"PNP_GETNEXTLOGCONF", NDR_PNP_GETNEXTLOGCONF, api_PNP_GetNextLogConf},
4827 {"PNP_GETLOGCONFPRIORITY", NDR_PNP_GETLOGCONFPRIORITY, api_PNP_GetLogConfPriority},
4828 {"PNP_ADDRESDES", NDR_PNP_ADDRESDES, api_PNP_AddResDes},
4829 {"PNP_FREERESDES", NDR_PNP_FREERESDES, api_PNP_FreeResDes},
4830 {"PNP_GETNEXTRESDES", NDR_PNP_GETNEXTRESDES, api_PNP_GetNextResDes},
4831 {"PNP_GETRESDESDATA", NDR_PNP_GETRESDESDATA, api_PNP_GetResDesData},
4832 {"PNP_GETRESDESDATASIZE", NDR_PNP_GETRESDESDATASIZE, api_PNP_GetResDesDataSize},
4833 {"PNP_MODIFYRESDES", NDR_PNP_MODIFYRESDES, api_PNP_ModifyResDes},
4834 {"PNP_DETECTRESOURCELIMIT", NDR_PNP_DETECTRESOURCELIMIT, api_PNP_DetectResourceLimit},
4835 {"PNP_QUERYRESCONFLIST", NDR_PNP_QUERYRESCONFLIST, api_PNP_QueryResConfList},
4836 {"PNP_SETHWPROF", NDR_PNP_SETHWPROF, api_PNP_SetHwProf},
4837 {"PNP_QUERYARBITRATORFREEDATA", NDR_PNP_QUERYARBITRATORFREEDATA, api_PNP_QueryArbitratorFreeData},
4838 {"PNP_QUERYARBITRATORFREESIZE", NDR_PNP_QUERYARBITRATORFREESIZE, api_PNP_QueryArbitratorFreeSize},
4839 {"PNP_RUNDETECTION", NDR_PNP_RUNDETECTION, api_PNP_RunDetection},
4840 {"PNP_REGISTERNOTIFICATION", NDR_PNP_REGISTERNOTIFICATION, api_PNP_RegisterNotification},
4841 {"PNP_UNREGISTERNOTIFICATION", NDR_PNP_UNREGISTERNOTIFICATION, api_PNP_UnregisterNotification},
4842 {"PNP_GETCUSTOMDEVPROP", NDR_PNP_GETCUSTOMDEVPROP, api_PNP_GetCustomDevProp},
4843 {"PNP_GETVERSIONINTERNAL", NDR_PNP_GETVERSIONINTERNAL, api_PNP_GetVersionInternal},
4844 {"PNP_GETBLOCKEDDRIVERINFO", NDR_PNP_GETBLOCKEDDRIVERINFO, api_PNP_GetBlockedDriverInfo},
4845 {"PNP_GETSERVERSIDEDEVICEINSTALLFLAGS", NDR_PNP_GETSERVERSIDEDEVICEINSTALLFLAGS, api_PNP_GetServerSideDeviceInstallFlags},
4848 void ntsvcs_get_pipe_fns(struct api_struct **fns, int *n_fns)
4850 *fns = api_ntsvcs_cmds;
4851 *n_fns = sizeof(api_ntsvcs_cmds) / sizeof(struct api_struct);
4854 NTSTATUS rpc_ntsvcs_init(void)
4856 return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "ntsvcs", "ntsvcs", api_ntsvcs_cmds, sizeof(api_ntsvcs_cmds) / sizeof(struct api_struct));