2 * Unix SMB/CIFS implementation.
3 * server auto-generated by pidl. DO NOT MODIFY!
8 #include "bin/default/librpc/gen_ndr/srv_winspool.h"
10 static bool api_winspool_AsyncOpenPrinter(struct pipes_struct *p)
12 const struct ndr_interface_call *call;
13 struct ndr_pull *pull;
14 struct ndr_push *push;
15 enum ndr_err_code ndr_err;
16 struct winspool_AsyncOpenPrinter *r;
18 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCOPENPRINTER];
20 r = talloc(talloc_tos(), struct winspool_AsyncOpenPrinter);
25 pull = ndr_pull_init_blob(&p->in_data.data, r);
31 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
33 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
35 ndr_err = call->ndr_pull(pull, NDR_IN, r);
36 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
41 if (DEBUGLEVEL >= 10) {
42 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncOpenPrinter, NDR_IN, r);
46 r->out.pHandle = talloc_zero(r, struct policy_handle);
47 if (r->out.pHandle == NULL) {
52 r->out.result = _winspool_AsyncOpenPrinter(p, r);
56 /* Return true here, srv_pipe_hnd.c will take care */
60 if (DEBUGLEVEL >= 10) {
61 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncOpenPrinter, NDR_OUT | NDR_SET_VALUES, r);
64 push = ndr_push_init_ctx(r);
71 * carry over the pointer count to the reply in case we are
72 * using full pointer. See NDR specification for full pointers
74 push->ptr_count = pull->ptr_count;
76 ndr_err = call->ndr_push(push, NDR_OUT, r);
77 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
82 p->out_data.rdata = ndr_push_blob(push);
83 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
90 static bool api_winspool_AsyncAddPrinter(struct pipes_struct *p)
92 const struct ndr_interface_call *call;
93 struct ndr_pull *pull;
94 struct ndr_push *push;
95 enum ndr_err_code ndr_err;
96 struct winspool_AsyncAddPrinter *r;
98 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDPRINTER];
100 r = talloc(talloc_tos(), struct winspool_AsyncAddPrinter);
105 pull = ndr_pull_init_blob(&p->in_data.data, r);
111 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
113 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
115 ndr_err = call->ndr_pull(pull, NDR_IN, r);
116 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
121 if (DEBUGLEVEL >= 10) {
122 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinter, NDR_IN, r);
126 r->out.pHandle = talloc_zero(r, struct policy_handle);
127 if (r->out.pHandle == NULL) {
132 r->out.result = _winspool_AsyncAddPrinter(p, r);
134 if (p->fault_state) {
136 /* Return true here, srv_pipe_hnd.c will take care */
140 if (DEBUGLEVEL >= 10) {
141 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinter, NDR_OUT | NDR_SET_VALUES, r);
144 push = ndr_push_init_ctx(r);
151 * carry over the pointer count to the reply in case we are
152 * using full pointer. See NDR specification for full pointers
154 push->ptr_count = pull->ptr_count;
156 ndr_err = call->ndr_push(push, NDR_OUT, r);
157 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
162 p->out_data.rdata = ndr_push_blob(push);
163 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
170 static bool api_winspool_AsyncSetJob(struct pipes_struct *p)
172 const struct ndr_interface_call *call;
173 struct ndr_pull *pull;
174 struct ndr_push *push;
175 enum ndr_err_code ndr_err;
176 struct winspool_AsyncSetJob *r;
178 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETJOB];
180 r = talloc(talloc_tos(), struct winspool_AsyncSetJob);
185 pull = ndr_pull_init_blob(&p->in_data.data, r);
191 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
193 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
195 ndr_err = call->ndr_pull(pull, NDR_IN, r);
196 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
201 if (DEBUGLEVEL >= 10) {
202 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJob, NDR_IN, r);
205 r->out.result = _winspool_AsyncSetJob(p, r);
207 if (p->fault_state) {
209 /* Return true here, srv_pipe_hnd.c will take care */
213 if (DEBUGLEVEL >= 10) {
214 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJob, NDR_OUT | NDR_SET_VALUES, r);
217 push = ndr_push_init_ctx(r);
224 * carry over the pointer count to the reply in case we are
225 * using full pointer. See NDR specification for full pointers
227 push->ptr_count = pull->ptr_count;
229 ndr_err = call->ndr_push(push, NDR_OUT, r);
230 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
235 p->out_data.rdata = ndr_push_blob(push);
236 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
243 static bool api_winspool_AsyncGetJob(struct pipes_struct *p)
245 const struct ndr_interface_call *call;
246 struct ndr_pull *pull;
247 struct ndr_push *push;
248 enum ndr_err_code ndr_err;
249 struct winspool_AsyncGetJob *r;
251 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETJOB];
253 r = talloc(talloc_tos(), struct winspool_AsyncGetJob);
258 pull = ndr_pull_init_blob(&p->in_data.data, r);
264 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
266 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
268 ndr_err = call->ndr_pull(pull, NDR_IN, r);
269 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
274 if (DEBUGLEVEL >= 10) {
275 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJob, NDR_IN, r);
279 r->out.pJob = r->in.pJob;
280 r->out.pcbNeeded = talloc_zero(r, uint32_t);
281 if (r->out.pcbNeeded == NULL) {
286 r->out.result = _winspool_AsyncGetJob(p, r);
288 if (p->fault_state) {
290 /* Return true here, srv_pipe_hnd.c will take care */
294 if (DEBUGLEVEL >= 10) {
295 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJob, NDR_OUT | NDR_SET_VALUES, r);
298 push = ndr_push_init_ctx(r);
305 * carry over the pointer count to the reply in case we are
306 * using full pointer. See NDR specification for full pointers
308 push->ptr_count = pull->ptr_count;
310 ndr_err = call->ndr_push(push, NDR_OUT, r);
311 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
316 p->out_data.rdata = ndr_push_blob(push);
317 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
324 static bool api_winspool_AsyncEnumJobs(struct pipes_struct *p)
326 const struct ndr_interface_call *call;
327 struct ndr_pull *pull;
328 struct ndr_push *push;
329 enum ndr_err_code ndr_err;
330 struct winspool_AsyncEnumJobs *r;
332 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMJOBS];
334 r = talloc(talloc_tos(), struct winspool_AsyncEnumJobs);
339 pull = ndr_pull_init_blob(&p->in_data.data, r);
345 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
347 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
349 ndr_err = call->ndr_pull(pull, NDR_IN, r);
350 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
355 if (DEBUGLEVEL >= 10) {
356 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobs, NDR_IN, r);
360 r->out.pJob = r->in.pJob;
361 r->out.pcbNeeded = talloc_zero(r, uint32_t);
362 if (r->out.pcbNeeded == NULL) {
367 r->out.pcReturned = talloc_zero(r, uint32_t);
368 if (r->out.pcReturned == NULL) {
373 r->out.result = _winspool_AsyncEnumJobs(p, r);
375 if (p->fault_state) {
377 /* Return true here, srv_pipe_hnd.c will take care */
381 if (DEBUGLEVEL >= 10) {
382 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobs, NDR_OUT | NDR_SET_VALUES, r);
385 push = ndr_push_init_ctx(r);
392 * carry over the pointer count to the reply in case we are
393 * using full pointer. See NDR specification for full pointers
395 push->ptr_count = pull->ptr_count;
397 ndr_err = call->ndr_push(push, NDR_OUT, r);
398 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
403 p->out_data.rdata = ndr_push_blob(push);
404 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
411 static bool api_winspool_AsyncAddJob(struct pipes_struct *p)
413 const struct ndr_interface_call *call;
414 struct ndr_pull *pull;
415 struct ndr_push *push;
416 enum ndr_err_code ndr_err;
417 struct winspool_AsyncAddJob *r;
419 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDJOB];
421 r = talloc(talloc_tos(), struct winspool_AsyncAddJob);
426 pull = ndr_pull_init_blob(&p->in_data.data, r);
432 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
434 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
436 ndr_err = call->ndr_pull(pull, NDR_IN, r);
437 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
442 if (DEBUGLEVEL >= 10) {
443 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddJob, NDR_IN, r);
447 r->out.pAddJob = r->in.pAddJob;
448 r->out.pcbNeeded = talloc_zero(r, uint32_t);
449 if (r->out.pcbNeeded == NULL) {
454 r->out.result = _winspool_AsyncAddJob(p, r);
456 if (p->fault_state) {
458 /* Return true here, srv_pipe_hnd.c will take care */
462 if (DEBUGLEVEL >= 10) {
463 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddJob, NDR_OUT | NDR_SET_VALUES, r);
466 push = ndr_push_init_ctx(r);
473 * carry over the pointer count to the reply in case we are
474 * using full pointer. See NDR specification for full pointers
476 push->ptr_count = pull->ptr_count;
478 ndr_err = call->ndr_push(push, NDR_OUT, r);
479 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
484 p->out_data.rdata = ndr_push_blob(push);
485 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
492 static bool api_winspool_AsyncScheduleJob(struct pipes_struct *p)
494 const struct ndr_interface_call *call;
495 struct ndr_pull *pull;
496 struct ndr_push *push;
497 enum ndr_err_code ndr_err;
498 struct winspool_AsyncScheduleJob *r;
500 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSCHEDULEJOB];
502 r = talloc(talloc_tos(), struct winspool_AsyncScheduleJob);
507 pull = ndr_pull_init_blob(&p->in_data.data, r);
513 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
515 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
517 ndr_err = call->ndr_pull(pull, NDR_IN, r);
518 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
523 if (DEBUGLEVEL >= 10) {
524 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncScheduleJob, NDR_IN, r);
527 r->out.result = _winspool_AsyncScheduleJob(p, r);
529 if (p->fault_state) {
531 /* Return true here, srv_pipe_hnd.c will take care */
535 if (DEBUGLEVEL >= 10) {
536 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncScheduleJob, NDR_OUT | NDR_SET_VALUES, r);
539 push = ndr_push_init_ctx(r);
546 * carry over the pointer count to the reply in case we are
547 * using full pointer. See NDR specification for full pointers
549 push->ptr_count = pull->ptr_count;
551 ndr_err = call->ndr_push(push, NDR_OUT, r);
552 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
557 p->out_data.rdata = ndr_push_blob(push);
558 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
565 static bool api_winspool_AsyncDeletePrinter(struct pipes_struct *p)
567 const struct ndr_interface_call *call;
568 struct ndr_pull *pull;
569 struct ndr_push *push;
570 enum ndr_err_code ndr_err;
571 struct winspool_AsyncDeletePrinter *r;
573 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTER];
575 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinter);
580 pull = ndr_pull_init_blob(&p->in_data.data, r);
586 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
588 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
590 ndr_err = call->ndr_pull(pull, NDR_IN, r);
591 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
596 if (DEBUGLEVEL >= 10) {
597 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinter, NDR_IN, r);
600 r->out.result = _winspool_AsyncDeletePrinter(p, r);
602 if (p->fault_state) {
604 /* Return true here, srv_pipe_hnd.c will take care */
608 if (DEBUGLEVEL >= 10) {
609 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinter, NDR_OUT | NDR_SET_VALUES, r);
612 push = ndr_push_init_ctx(r);
619 * carry over the pointer count to the reply in case we are
620 * using full pointer. See NDR specification for full pointers
622 push->ptr_count = pull->ptr_count;
624 ndr_err = call->ndr_push(push, NDR_OUT, r);
625 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
630 p->out_data.rdata = ndr_push_blob(push);
631 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
638 static bool api_winspool_AsyncSetPrinter(struct pipes_struct *p)
640 const struct ndr_interface_call *call;
641 struct ndr_pull *pull;
642 struct ndr_push *push;
643 enum ndr_err_code ndr_err;
644 struct winspool_AsyncSetPrinter *r;
646 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETPRINTER];
648 r = talloc(talloc_tos(), struct winspool_AsyncSetPrinter);
653 pull = ndr_pull_init_blob(&p->in_data.data, r);
659 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
661 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
663 ndr_err = call->ndr_pull(pull, NDR_IN, r);
664 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
669 if (DEBUGLEVEL >= 10) {
670 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinter, NDR_IN, r);
673 r->out.result = _winspool_AsyncSetPrinter(p, r);
675 if (p->fault_state) {
677 /* Return true here, srv_pipe_hnd.c will take care */
681 if (DEBUGLEVEL >= 10) {
682 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinter, NDR_OUT | NDR_SET_VALUES, r);
685 push = ndr_push_init_ctx(r);
692 * carry over the pointer count to the reply in case we are
693 * using full pointer. See NDR specification for full pointers
695 push->ptr_count = pull->ptr_count;
697 ndr_err = call->ndr_push(push, NDR_OUT, r);
698 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
703 p->out_data.rdata = ndr_push_blob(push);
704 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
711 static bool api_winspool_AsyncGetPrinter(struct pipes_struct *p)
713 const struct ndr_interface_call *call;
714 struct ndr_pull *pull;
715 struct ndr_push *push;
716 enum ndr_err_code ndr_err;
717 struct winspool_AsyncGetPrinter *r;
719 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTER];
721 r = talloc(talloc_tos(), struct winspool_AsyncGetPrinter);
726 pull = ndr_pull_init_blob(&p->in_data.data, r);
732 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
734 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
736 ndr_err = call->ndr_pull(pull, NDR_IN, r);
737 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
742 if (DEBUGLEVEL >= 10) {
743 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinter, NDR_IN, r);
747 r->out.pPrinter = r->in.pPrinter;
748 r->out.pcbNeeded = talloc_zero(r, uint32_t);
749 if (r->out.pcbNeeded == NULL) {
754 r->out.result = _winspool_AsyncGetPrinter(p, r);
756 if (p->fault_state) {
758 /* Return true here, srv_pipe_hnd.c will take care */
762 if (DEBUGLEVEL >= 10) {
763 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinter, NDR_OUT | NDR_SET_VALUES, r);
766 push = ndr_push_init_ctx(r);
773 * carry over the pointer count to the reply in case we are
774 * using full pointer. See NDR specification for full pointers
776 push->ptr_count = pull->ptr_count;
778 ndr_err = call->ndr_push(push, NDR_OUT, r);
779 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
784 p->out_data.rdata = ndr_push_blob(push);
785 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
792 static bool api_winspool_AsyncStartDocPrinter(struct pipes_struct *p)
794 const struct ndr_interface_call *call;
795 struct ndr_pull *pull;
796 struct ndr_push *push;
797 enum ndr_err_code ndr_err;
798 struct winspool_AsyncStartDocPrinter *r;
800 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSTARTDOCPRINTER];
802 r = talloc(talloc_tos(), struct winspool_AsyncStartDocPrinter);
807 pull = ndr_pull_init_blob(&p->in_data.data, r);
813 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
815 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
817 ndr_err = call->ndr_pull(pull, NDR_IN, r);
818 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
823 if (DEBUGLEVEL >= 10) {
824 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartDocPrinter, NDR_IN, r);
828 r->out.pJobId = talloc_zero(r, uint32_t);
829 if (r->out.pJobId == NULL) {
834 r->out.result = _winspool_AsyncStartDocPrinter(p, r);
836 if (p->fault_state) {
838 /* Return true here, srv_pipe_hnd.c will take care */
842 if (DEBUGLEVEL >= 10) {
843 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartDocPrinter, NDR_OUT | NDR_SET_VALUES, r);
846 push = ndr_push_init_ctx(r);
853 * carry over the pointer count to the reply in case we are
854 * using full pointer. See NDR specification for full pointers
856 push->ptr_count = pull->ptr_count;
858 ndr_err = call->ndr_push(push, NDR_OUT, r);
859 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
864 p->out_data.rdata = ndr_push_blob(push);
865 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
872 static bool api_winspool_AsyncStartPagePrinter(struct pipes_struct *p)
874 const struct ndr_interface_call *call;
875 struct ndr_pull *pull;
876 struct ndr_push *push;
877 enum ndr_err_code ndr_err;
878 struct winspool_AsyncStartPagePrinter *r;
880 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSTARTPAGEPRINTER];
882 r = talloc(talloc_tos(), struct winspool_AsyncStartPagePrinter);
887 pull = ndr_pull_init_blob(&p->in_data.data, r);
893 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
895 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
897 ndr_err = call->ndr_pull(pull, NDR_IN, r);
898 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
903 if (DEBUGLEVEL >= 10) {
904 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartPagePrinter, NDR_IN, r);
907 r->out.result = _winspool_AsyncStartPagePrinter(p, r);
909 if (p->fault_state) {
911 /* Return true here, srv_pipe_hnd.c will take care */
915 if (DEBUGLEVEL >= 10) {
916 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartPagePrinter, NDR_OUT | NDR_SET_VALUES, r);
919 push = ndr_push_init_ctx(r);
926 * carry over the pointer count to the reply in case we are
927 * using full pointer. See NDR specification for full pointers
929 push->ptr_count = pull->ptr_count;
931 ndr_err = call->ndr_push(push, NDR_OUT, r);
932 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
937 p->out_data.rdata = ndr_push_blob(push);
938 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
945 static bool api_winspool_AsyncWritePrinter(struct pipes_struct *p)
947 const struct ndr_interface_call *call;
948 struct ndr_pull *pull;
949 struct ndr_push *push;
950 enum ndr_err_code ndr_err;
951 struct winspool_AsyncWritePrinter *r;
953 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCWRITEPRINTER];
955 r = talloc(talloc_tos(), struct winspool_AsyncWritePrinter);
960 pull = ndr_pull_init_blob(&p->in_data.data, r);
966 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
968 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
970 ndr_err = call->ndr_pull(pull, NDR_IN, r);
971 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
976 if (DEBUGLEVEL >= 10) {
977 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncWritePrinter, NDR_IN, r);
981 r->out.pcWritten = talloc_zero(r, uint32_t);
982 if (r->out.pcWritten == NULL) {
987 r->out.result = _winspool_AsyncWritePrinter(p, r);
989 if (p->fault_state) {
991 /* Return true here, srv_pipe_hnd.c will take care */
995 if (DEBUGLEVEL >= 10) {
996 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncWritePrinter, NDR_OUT | NDR_SET_VALUES, r);
999 push = ndr_push_init_ctx(r);
1006 * carry over the pointer count to the reply in case we are
1007 * using full pointer. See NDR specification for full pointers
1009 push->ptr_count = pull->ptr_count;
1011 ndr_err = call->ndr_push(push, NDR_OUT, r);
1012 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1017 p->out_data.rdata = ndr_push_blob(push);
1018 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1025 static bool api_winspool_AsyncEndPagePrinter(struct pipes_struct *p)
1027 const struct ndr_interface_call *call;
1028 struct ndr_pull *pull;
1029 struct ndr_push *push;
1030 enum ndr_err_code ndr_err;
1031 struct winspool_AsyncEndPagePrinter *r;
1033 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENDPAGEPRINTER];
1035 r = talloc(talloc_tos(), struct winspool_AsyncEndPagePrinter);
1040 pull = ndr_pull_init_blob(&p->in_data.data, r);
1046 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1048 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1050 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1051 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1056 if (DEBUGLEVEL >= 10) {
1057 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndPagePrinter, NDR_IN, r);
1060 r->out.result = _winspool_AsyncEndPagePrinter(p, r);
1062 if (p->fault_state) {
1064 /* Return true here, srv_pipe_hnd.c will take care */
1068 if (DEBUGLEVEL >= 10) {
1069 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndPagePrinter, NDR_OUT | NDR_SET_VALUES, r);
1072 push = ndr_push_init_ctx(r);
1079 * carry over the pointer count to the reply in case we are
1080 * using full pointer. See NDR specification for full pointers
1082 push->ptr_count = pull->ptr_count;
1084 ndr_err = call->ndr_push(push, NDR_OUT, r);
1085 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1090 p->out_data.rdata = ndr_push_blob(push);
1091 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1098 static bool api_winspool_AsyncEndDocPrinter(struct pipes_struct *p)
1100 const struct ndr_interface_call *call;
1101 struct ndr_pull *pull;
1102 struct ndr_push *push;
1103 enum ndr_err_code ndr_err;
1104 struct winspool_AsyncEndDocPrinter *r;
1106 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENDDOCPRINTER];
1108 r = talloc(talloc_tos(), struct winspool_AsyncEndDocPrinter);
1113 pull = ndr_pull_init_blob(&p->in_data.data, r);
1119 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1121 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1123 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1124 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1129 if (DEBUGLEVEL >= 10) {
1130 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndDocPrinter, NDR_IN, r);
1133 r->out.result = _winspool_AsyncEndDocPrinter(p, r);
1135 if (p->fault_state) {
1137 /* Return true here, srv_pipe_hnd.c will take care */
1141 if (DEBUGLEVEL >= 10) {
1142 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndDocPrinter, NDR_OUT | NDR_SET_VALUES, r);
1145 push = ndr_push_init_ctx(r);
1152 * carry over the pointer count to the reply in case we are
1153 * using full pointer. See NDR specification for full pointers
1155 push->ptr_count = pull->ptr_count;
1157 ndr_err = call->ndr_push(push, NDR_OUT, r);
1158 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1163 p->out_data.rdata = ndr_push_blob(push);
1164 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1171 static bool api_winspool_AsyncAbortPrinter(struct pipes_struct *p)
1173 const struct ndr_interface_call *call;
1174 struct ndr_pull *pull;
1175 struct ndr_push *push;
1176 enum ndr_err_code ndr_err;
1177 struct winspool_AsyncAbortPrinter *r;
1179 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCABORTPRINTER];
1181 r = talloc(talloc_tos(), struct winspool_AsyncAbortPrinter);
1186 pull = ndr_pull_init_blob(&p->in_data.data, r);
1192 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1194 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1196 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1197 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1202 if (DEBUGLEVEL >= 10) {
1203 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAbortPrinter, NDR_IN, r);
1206 r->out.result = _winspool_AsyncAbortPrinter(p, r);
1208 if (p->fault_state) {
1210 /* Return true here, srv_pipe_hnd.c will take care */
1214 if (DEBUGLEVEL >= 10) {
1215 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAbortPrinter, NDR_OUT | NDR_SET_VALUES, r);
1218 push = ndr_push_init_ctx(r);
1225 * carry over the pointer count to the reply in case we are
1226 * using full pointer. See NDR specification for full pointers
1228 push->ptr_count = pull->ptr_count;
1230 ndr_err = call->ndr_push(push, NDR_OUT, r);
1231 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1236 p->out_data.rdata = ndr_push_blob(push);
1237 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1244 static bool api_winspool_AsyncGetPrinterData(struct pipes_struct *p)
1246 const struct ndr_interface_call *call;
1247 struct ndr_pull *pull;
1248 struct ndr_push *push;
1249 enum ndr_err_code ndr_err;
1250 struct winspool_AsyncGetPrinterData *r;
1252 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTERDATA];
1254 r = talloc(talloc_tos(), struct winspool_AsyncGetPrinterData);
1259 pull = ndr_pull_init_blob(&p->in_data.data, r);
1265 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1267 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1269 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1270 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1275 if (DEBUGLEVEL >= 10) {
1276 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterData, NDR_IN, r);
1279 ZERO_STRUCT(r->out);
1280 r->out.pType = talloc_zero(r, uint32_t);
1281 if (r->out.pType == NULL) {
1286 r->out.pData = talloc_zero_array(r, uint8_t, r->in.nSize);
1287 if (r->out.pData == NULL) {
1292 r->out.pcbNeeded = talloc_zero(r, uint32_t);
1293 if (r->out.pcbNeeded == NULL) {
1298 r->out.result = _winspool_AsyncGetPrinterData(p, r);
1300 if (p->fault_state) {
1302 /* Return true here, srv_pipe_hnd.c will take care */
1306 if (DEBUGLEVEL >= 10) {
1307 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterData, NDR_OUT | NDR_SET_VALUES, r);
1310 push = ndr_push_init_ctx(r);
1317 * carry over the pointer count to the reply in case we are
1318 * using full pointer. See NDR specification for full pointers
1320 push->ptr_count = pull->ptr_count;
1322 ndr_err = call->ndr_push(push, NDR_OUT, r);
1323 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1328 p->out_data.rdata = ndr_push_blob(push);
1329 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1336 static bool api_winspool_AsyncGetPrinterDataEx(struct pipes_struct *p)
1338 const struct ndr_interface_call *call;
1339 struct ndr_pull *pull;
1340 struct ndr_push *push;
1341 enum ndr_err_code ndr_err;
1342 struct winspool_AsyncGetPrinterDataEx *r;
1344 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTERDATAEX];
1346 r = talloc(talloc_tos(), struct winspool_AsyncGetPrinterDataEx);
1351 pull = ndr_pull_init_blob(&p->in_data.data, r);
1357 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1359 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1361 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1362 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1367 if (DEBUGLEVEL >= 10) {
1368 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDataEx, NDR_IN, r);
1371 ZERO_STRUCT(r->out);
1372 r->out.pType = talloc_zero(r, uint32_t);
1373 if (r->out.pType == NULL) {
1378 r->out.pData = talloc_zero_array(r, uint8_t, r->in.nSize);
1379 if (r->out.pData == NULL) {
1384 r->out.pcbNeeded = talloc_zero(r, uint32_t);
1385 if (r->out.pcbNeeded == NULL) {
1390 r->out.result = _winspool_AsyncGetPrinterDataEx(p, r);
1392 if (p->fault_state) {
1394 /* Return true here, srv_pipe_hnd.c will take care */
1398 if (DEBUGLEVEL >= 10) {
1399 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDataEx, NDR_OUT | NDR_SET_VALUES, r);
1402 push = ndr_push_init_ctx(r);
1409 * carry over the pointer count to the reply in case we are
1410 * using full pointer. See NDR specification for full pointers
1412 push->ptr_count = pull->ptr_count;
1414 ndr_err = call->ndr_push(push, NDR_OUT, r);
1415 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1420 p->out_data.rdata = ndr_push_blob(push);
1421 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1428 static bool api_winspool_AsyncSetPrinterData(struct pipes_struct *p)
1430 const struct ndr_interface_call *call;
1431 struct ndr_pull *pull;
1432 struct ndr_push *push;
1433 enum ndr_err_code ndr_err;
1434 struct winspool_AsyncSetPrinterData *r;
1436 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETPRINTERDATA];
1438 r = talloc(talloc_tos(), struct winspool_AsyncSetPrinterData);
1443 pull = ndr_pull_init_blob(&p->in_data.data, r);
1449 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1451 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1453 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1454 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1459 if (DEBUGLEVEL >= 10) {
1460 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterData, NDR_IN, r);
1463 r->out.result = _winspool_AsyncSetPrinterData(p, r);
1465 if (p->fault_state) {
1467 /* Return true here, srv_pipe_hnd.c will take care */
1471 if (DEBUGLEVEL >= 10) {
1472 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterData, NDR_OUT | NDR_SET_VALUES, r);
1475 push = ndr_push_init_ctx(r);
1482 * carry over the pointer count to the reply in case we are
1483 * using full pointer. See NDR specification for full pointers
1485 push->ptr_count = pull->ptr_count;
1487 ndr_err = call->ndr_push(push, NDR_OUT, r);
1488 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1493 p->out_data.rdata = ndr_push_blob(push);
1494 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1501 static bool api_winspool_AsyncSetPrinterDataEx(struct pipes_struct *p)
1503 const struct ndr_interface_call *call;
1504 struct ndr_pull *pull;
1505 struct ndr_push *push;
1506 enum ndr_err_code ndr_err;
1507 struct winspool_AsyncSetPrinterDataEx *r;
1509 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETPRINTERDATAEX];
1511 r = talloc(talloc_tos(), struct winspool_AsyncSetPrinterDataEx);
1516 pull = ndr_pull_init_blob(&p->in_data.data, r);
1522 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1524 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1526 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1527 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1532 if (DEBUGLEVEL >= 10) {
1533 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterDataEx, NDR_IN, r);
1536 r->out.result = _winspool_AsyncSetPrinterDataEx(p, r);
1538 if (p->fault_state) {
1540 /* Return true here, srv_pipe_hnd.c will take care */
1544 if (DEBUGLEVEL >= 10) {
1545 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterDataEx, NDR_OUT | NDR_SET_VALUES, r);
1548 push = ndr_push_init_ctx(r);
1555 * carry over the pointer count to the reply in case we are
1556 * using full pointer. See NDR specification for full pointers
1558 push->ptr_count = pull->ptr_count;
1560 ndr_err = call->ndr_push(push, NDR_OUT, r);
1561 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1566 p->out_data.rdata = ndr_push_blob(push);
1567 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1574 static bool api_winspool_AsyncClosePrinter(struct pipes_struct *p)
1576 const struct ndr_interface_call *call;
1577 struct ndr_pull *pull;
1578 struct ndr_push *push;
1579 enum ndr_err_code ndr_err;
1580 struct winspool_AsyncClosePrinter *r;
1582 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCCLOSEPRINTER];
1584 r = talloc(talloc_tos(), struct winspool_AsyncClosePrinter);
1589 pull = ndr_pull_init_blob(&p->in_data.data, r);
1595 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1597 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1599 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1600 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1605 if (DEBUGLEVEL >= 10) {
1606 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncClosePrinter, NDR_IN, r);
1609 ZERO_STRUCT(r->out);
1610 r->out.phPrinter = r->in.phPrinter;
1611 r->out.result = _winspool_AsyncClosePrinter(p, r);
1613 if (p->fault_state) {
1615 /* Return true here, srv_pipe_hnd.c will take care */
1619 if (DEBUGLEVEL >= 10) {
1620 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncClosePrinter, NDR_OUT | NDR_SET_VALUES, r);
1623 push = ndr_push_init_ctx(r);
1630 * carry over the pointer count to the reply in case we are
1631 * using full pointer. See NDR specification for full pointers
1633 push->ptr_count = pull->ptr_count;
1635 ndr_err = call->ndr_push(push, NDR_OUT, r);
1636 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1641 p->out_data.rdata = ndr_push_blob(push);
1642 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1649 static bool api_winspool_AsyncAddForm(struct pipes_struct *p)
1651 const struct ndr_interface_call *call;
1652 struct ndr_pull *pull;
1653 struct ndr_push *push;
1654 enum ndr_err_code ndr_err;
1655 struct winspool_AsyncAddForm *r;
1657 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDFORM];
1659 r = talloc(talloc_tos(), struct winspool_AsyncAddForm);
1664 pull = ndr_pull_init_blob(&p->in_data.data, r);
1670 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1672 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1674 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1675 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1680 if (DEBUGLEVEL >= 10) {
1681 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddForm, NDR_IN, r);
1684 r->out.result = _winspool_AsyncAddForm(p, r);
1686 if (p->fault_state) {
1688 /* Return true here, srv_pipe_hnd.c will take care */
1692 if (DEBUGLEVEL >= 10) {
1693 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddForm, NDR_OUT | NDR_SET_VALUES, r);
1696 push = ndr_push_init_ctx(r);
1703 * carry over the pointer count to the reply in case we are
1704 * using full pointer. See NDR specification for full pointers
1706 push->ptr_count = pull->ptr_count;
1708 ndr_err = call->ndr_push(push, NDR_OUT, r);
1709 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1714 p->out_data.rdata = ndr_push_blob(push);
1715 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1722 static bool api_winspool_AsyncDeleteForm(struct pipes_struct *p)
1724 const struct ndr_interface_call *call;
1725 struct ndr_pull *pull;
1726 struct ndr_push *push;
1727 enum ndr_err_code ndr_err;
1728 struct winspool_AsyncDeleteForm *r;
1730 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEFORM];
1732 r = talloc(talloc_tos(), struct winspool_AsyncDeleteForm);
1737 pull = ndr_pull_init_blob(&p->in_data.data, r);
1743 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1745 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1747 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1748 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1753 if (DEBUGLEVEL >= 10) {
1754 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteForm, NDR_IN, r);
1757 r->out.result = _winspool_AsyncDeleteForm(p, r);
1759 if (p->fault_state) {
1761 /* Return true here, srv_pipe_hnd.c will take care */
1765 if (DEBUGLEVEL >= 10) {
1766 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteForm, NDR_OUT | NDR_SET_VALUES, r);
1769 push = ndr_push_init_ctx(r);
1776 * carry over the pointer count to the reply in case we are
1777 * using full pointer. See NDR specification for full pointers
1779 push->ptr_count = pull->ptr_count;
1781 ndr_err = call->ndr_push(push, NDR_OUT, r);
1782 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1787 p->out_data.rdata = ndr_push_blob(push);
1788 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1795 static bool api_winspool_AsyncGetForm(struct pipes_struct *p)
1797 const struct ndr_interface_call *call;
1798 struct ndr_pull *pull;
1799 struct ndr_push *push;
1800 enum ndr_err_code ndr_err;
1801 struct winspool_AsyncGetForm *r;
1803 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETFORM];
1805 r = talloc(talloc_tos(), struct winspool_AsyncGetForm);
1810 pull = ndr_pull_init_blob(&p->in_data.data, r);
1816 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1818 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1820 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1821 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1826 if (DEBUGLEVEL >= 10) {
1827 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetForm, NDR_IN, r);
1830 ZERO_STRUCT(r->out);
1831 r->out.pForm = r->in.pForm;
1832 r->out.pcbNeeded = talloc_zero(r, uint32_t);
1833 if (r->out.pcbNeeded == NULL) {
1838 r->out.result = _winspool_AsyncGetForm(p, r);
1840 if (p->fault_state) {
1842 /* Return true here, srv_pipe_hnd.c will take care */
1846 if (DEBUGLEVEL >= 10) {
1847 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetForm, NDR_OUT | NDR_SET_VALUES, r);
1850 push = ndr_push_init_ctx(r);
1857 * carry over the pointer count to the reply in case we are
1858 * using full pointer. See NDR specification for full pointers
1860 push->ptr_count = pull->ptr_count;
1862 ndr_err = call->ndr_push(push, NDR_OUT, r);
1863 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1868 p->out_data.rdata = ndr_push_blob(push);
1869 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1876 static bool api_winspool_AsyncSetForm(struct pipes_struct *p)
1878 const struct ndr_interface_call *call;
1879 struct ndr_pull *pull;
1880 struct ndr_push *push;
1881 enum ndr_err_code ndr_err;
1882 struct winspool_AsyncSetForm *r;
1884 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETFORM];
1886 r = talloc(talloc_tos(), struct winspool_AsyncSetForm);
1891 pull = ndr_pull_init_blob(&p->in_data.data, r);
1897 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1899 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1901 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1902 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1907 if (DEBUGLEVEL >= 10) {
1908 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetForm, NDR_IN, r);
1911 r->out.result = _winspool_AsyncSetForm(p, r);
1913 if (p->fault_state) {
1915 /* Return true here, srv_pipe_hnd.c will take care */
1919 if (DEBUGLEVEL >= 10) {
1920 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetForm, NDR_OUT | NDR_SET_VALUES, r);
1923 push = ndr_push_init_ctx(r);
1930 * carry over the pointer count to the reply in case we are
1931 * using full pointer. See NDR specification for full pointers
1933 push->ptr_count = pull->ptr_count;
1935 ndr_err = call->ndr_push(push, NDR_OUT, r);
1936 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1941 p->out_data.rdata = ndr_push_blob(push);
1942 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
1949 static bool api_winspool_AsyncEnumForms(struct pipes_struct *p)
1951 const struct ndr_interface_call *call;
1952 struct ndr_pull *pull;
1953 struct ndr_push *push;
1954 enum ndr_err_code ndr_err;
1955 struct winspool_AsyncEnumForms *r;
1957 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMFORMS];
1959 r = talloc(talloc_tos(), struct winspool_AsyncEnumForms);
1964 pull = ndr_pull_init_blob(&p->in_data.data, r);
1970 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
1972 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
1974 ndr_err = call->ndr_pull(pull, NDR_IN, r);
1975 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
1980 if (DEBUGLEVEL >= 10) {
1981 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumForms, NDR_IN, r);
1984 ZERO_STRUCT(r->out);
1985 r->out.pForm = r->in.pForm;
1986 r->out.pcbNeeded = talloc_zero(r, uint32_t);
1987 if (r->out.pcbNeeded == NULL) {
1992 r->out.pcReturned = talloc_zero(r, uint32_t);
1993 if (r->out.pcReturned == NULL) {
1998 r->out.result = _winspool_AsyncEnumForms(p, r);
2000 if (p->fault_state) {
2002 /* Return true here, srv_pipe_hnd.c will take care */
2006 if (DEBUGLEVEL >= 10) {
2007 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumForms, NDR_OUT | NDR_SET_VALUES, r);
2010 push = ndr_push_init_ctx(r);
2017 * carry over the pointer count to the reply in case we are
2018 * using full pointer. See NDR specification for full pointers
2020 push->ptr_count = pull->ptr_count;
2022 ndr_err = call->ndr_push(push, NDR_OUT, r);
2023 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2028 p->out_data.rdata = ndr_push_blob(push);
2029 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2036 static bool api_winspool_AsyncGetPrinterDriver(struct pipes_struct *p)
2038 const struct ndr_interface_call *call;
2039 struct ndr_pull *pull;
2040 struct ndr_push *push;
2041 enum ndr_err_code ndr_err;
2042 struct winspool_AsyncGetPrinterDriver *r;
2044 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTERDRIVER];
2046 r = talloc(talloc_tos(), struct winspool_AsyncGetPrinterDriver);
2051 pull = ndr_pull_init_blob(&p->in_data.data, r);
2057 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2059 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2061 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2062 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2067 if (DEBUGLEVEL >= 10) {
2068 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriver, NDR_IN, r);
2071 ZERO_STRUCT(r->out);
2072 r->out.pDriver = r->in.pDriver;
2073 r->out.pcbNeeded = talloc_zero(r, uint32_t);
2074 if (r->out.pcbNeeded == NULL) {
2079 r->out.pdwServerMaxVersion = talloc_zero(r, uint32_t);
2080 if (r->out.pdwServerMaxVersion == NULL) {
2085 r->out.pdwServerMinVersion = talloc_zero(r, uint32_t);
2086 if (r->out.pdwServerMinVersion == NULL) {
2091 r->out.result = _winspool_AsyncGetPrinterDriver(p, r);
2093 if (p->fault_state) {
2095 /* Return true here, srv_pipe_hnd.c will take care */
2099 if (DEBUGLEVEL >= 10) {
2100 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriver, NDR_OUT | NDR_SET_VALUES, r);
2103 push = ndr_push_init_ctx(r);
2110 * carry over the pointer count to the reply in case we are
2111 * using full pointer. See NDR specification for full pointers
2113 push->ptr_count = pull->ptr_count;
2115 ndr_err = call->ndr_push(push, NDR_OUT, r);
2116 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2121 p->out_data.rdata = ndr_push_blob(push);
2122 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2129 static bool api_winspool_AsyncEnumPrinterData(struct pipes_struct *p)
2131 const struct ndr_interface_call *call;
2132 struct ndr_pull *pull;
2133 struct ndr_push *push;
2134 enum ndr_err_code ndr_err;
2135 struct winspool_AsyncEnumPrinterData *r;
2137 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTERDATA];
2139 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrinterData);
2144 pull = ndr_pull_init_blob(&p->in_data.data, r);
2150 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2152 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2154 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2155 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2160 if (DEBUGLEVEL >= 10) {
2161 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterData, NDR_IN, r);
2164 ZERO_STRUCT(r->out);
2165 r->out.pValueName = talloc_zero_array(r, uint16_t, r->in.cbValueName / 2);
2166 if (r->out.pValueName == NULL) {
2171 r->out.pcbValueName = talloc_zero(r, uint32_t);
2172 if (r->out.pcbValueName == NULL) {
2177 r->out.pType = talloc_zero(r, uint32_t);
2178 if (r->out.pType == NULL) {
2183 r->out.pData = talloc_zero_array(r, uint8_t, r->in.cbData);
2184 if (r->out.pData == NULL) {
2189 r->out.pcbData = talloc_zero(r, uint32_t);
2190 if (r->out.pcbData == NULL) {
2195 r->out.result = _winspool_AsyncEnumPrinterData(p, r);
2197 if (p->fault_state) {
2199 /* Return true here, srv_pipe_hnd.c will take care */
2203 if (DEBUGLEVEL >= 10) {
2204 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterData, NDR_OUT | NDR_SET_VALUES, r);
2207 push = ndr_push_init_ctx(r);
2214 * carry over the pointer count to the reply in case we are
2215 * using full pointer. See NDR specification for full pointers
2217 push->ptr_count = pull->ptr_count;
2219 ndr_err = call->ndr_push(push, NDR_OUT, r);
2220 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2225 p->out_data.rdata = ndr_push_blob(push);
2226 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2233 static bool api_winspool_AsyncEnumPrinterDataEx(struct pipes_struct *p)
2235 const struct ndr_interface_call *call;
2236 struct ndr_pull *pull;
2237 struct ndr_push *push;
2238 enum ndr_err_code ndr_err;
2239 struct winspool_AsyncEnumPrinterDataEx *r;
2241 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTERDATAEX];
2243 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrinterDataEx);
2248 pull = ndr_pull_init_blob(&p->in_data.data, r);
2254 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2256 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2258 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2259 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2264 if (DEBUGLEVEL >= 10) {
2265 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDataEx, NDR_IN, r);
2268 ZERO_STRUCT(r->out);
2269 r->out.pEnumValues = talloc_zero_array(r, uint8_t, r->in.cbEnumValues);
2270 if (r->out.pEnumValues == NULL) {
2275 r->out.pcbEnumValues = talloc_zero(r, uint32_t);
2276 if (r->out.pcbEnumValues == NULL) {
2281 r->out.pnEnumValues = talloc_zero(r, uint32_t);
2282 if (r->out.pnEnumValues == NULL) {
2287 r->out.result = _winspool_AsyncEnumPrinterDataEx(p, r);
2289 if (p->fault_state) {
2291 /* Return true here, srv_pipe_hnd.c will take care */
2295 if (DEBUGLEVEL >= 10) {
2296 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDataEx, NDR_OUT | NDR_SET_VALUES, r);
2299 push = ndr_push_init_ctx(r);
2306 * carry over the pointer count to the reply in case we are
2307 * using full pointer. See NDR specification for full pointers
2309 push->ptr_count = pull->ptr_count;
2311 ndr_err = call->ndr_push(push, NDR_OUT, r);
2312 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2317 p->out_data.rdata = ndr_push_blob(push);
2318 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2325 static bool api_winspool_AsyncEnumPrinterKey(struct pipes_struct *p)
2327 const struct ndr_interface_call *call;
2328 struct ndr_pull *pull;
2329 struct ndr_push *push;
2330 enum ndr_err_code ndr_err;
2331 struct winspool_AsyncEnumPrinterKey *r;
2333 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTERKEY];
2335 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrinterKey);
2340 pull = ndr_pull_init_blob(&p->in_data.data, r);
2346 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2348 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2350 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2351 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2356 if (DEBUGLEVEL >= 10) {
2357 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterKey, NDR_IN, r);
2360 ZERO_STRUCT(r->out);
2361 r->out.pSubkey = talloc_zero_array(r, uint16_t, r->in.cbSubkey / 2);
2362 if (r->out.pSubkey == NULL) {
2367 r->out.pcbSubkey = talloc_zero(r, uint32_t);
2368 if (r->out.pcbSubkey == NULL) {
2373 r->out.result = _winspool_AsyncEnumPrinterKey(p, r);
2375 if (p->fault_state) {
2377 /* Return true here, srv_pipe_hnd.c will take care */
2381 if (DEBUGLEVEL >= 10) {
2382 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterKey, NDR_OUT | NDR_SET_VALUES, r);
2385 push = ndr_push_init_ctx(r);
2392 * carry over the pointer count to the reply in case we are
2393 * using full pointer. See NDR specification for full pointers
2395 push->ptr_count = pull->ptr_count;
2397 ndr_err = call->ndr_push(push, NDR_OUT, r);
2398 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2403 p->out_data.rdata = ndr_push_blob(push);
2404 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2411 static bool api_winspool_AsyncDeletePrinterData(struct pipes_struct *p)
2413 const struct ndr_interface_call *call;
2414 struct ndr_pull *pull;
2415 struct ndr_push *push;
2416 enum ndr_err_code ndr_err;
2417 struct winspool_AsyncDeletePrinterData *r;
2419 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERDATA];
2421 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterData);
2426 pull = ndr_pull_init_blob(&p->in_data.data, r);
2432 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2434 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2436 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2437 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2442 if (DEBUGLEVEL >= 10) {
2443 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterData, NDR_IN, r);
2446 r->out.result = _winspool_AsyncDeletePrinterData(p, r);
2448 if (p->fault_state) {
2450 /* Return true here, srv_pipe_hnd.c will take care */
2454 if (DEBUGLEVEL >= 10) {
2455 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterData, NDR_OUT | NDR_SET_VALUES, r);
2458 push = ndr_push_init_ctx(r);
2465 * carry over the pointer count to the reply in case we are
2466 * using full pointer. See NDR specification for full pointers
2468 push->ptr_count = pull->ptr_count;
2470 ndr_err = call->ndr_push(push, NDR_OUT, r);
2471 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2476 p->out_data.rdata = ndr_push_blob(push);
2477 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2484 static bool api_winspool_AsyncDeletePrinterDataEx(struct pipes_struct *p)
2486 const struct ndr_interface_call *call;
2487 struct ndr_pull *pull;
2488 struct ndr_push *push;
2489 enum ndr_err_code ndr_err;
2490 struct winspool_AsyncDeletePrinterDataEx *r;
2492 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERDATAEX];
2494 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterDataEx);
2499 pull = ndr_pull_init_blob(&p->in_data.data, r);
2505 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2507 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2509 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2510 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2515 if (DEBUGLEVEL >= 10) {
2516 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDataEx, NDR_IN, r);
2519 r->out.result = _winspool_AsyncDeletePrinterDataEx(p, r);
2521 if (p->fault_state) {
2523 /* Return true here, srv_pipe_hnd.c will take care */
2527 if (DEBUGLEVEL >= 10) {
2528 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDataEx, NDR_OUT | NDR_SET_VALUES, r);
2531 push = ndr_push_init_ctx(r);
2538 * carry over the pointer count to the reply in case we are
2539 * using full pointer. See NDR specification for full pointers
2541 push->ptr_count = pull->ptr_count;
2543 ndr_err = call->ndr_push(push, NDR_OUT, r);
2544 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2549 p->out_data.rdata = ndr_push_blob(push);
2550 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2557 static bool api_winspool_AsyncDeletePrinterKey(struct pipes_struct *p)
2559 const struct ndr_interface_call *call;
2560 struct ndr_pull *pull;
2561 struct ndr_push *push;
2562 enum ndr_err_code ndr_err;
2563 struct winspool_AsyncDeletePrinterKey *r;
2565 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERKEY];
2567 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterKey);
2572 pull = ndr_pull_init_blob(&p->in_data.data, r);
2578 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2580 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2582 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2583 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2588 if (DEBUGLEVEL >= 10) {
2589 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterKey, NDR_IN, r);
2592 r->out.result = _winspool_AsyncDeletePrinterKey(p, r);
2594 if (p->fault_state) {
2596 /* Return true here, srv_pipe_hnd.c will take care */
2600 if (DEBUGLEVEL >= 10) {
2601 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterKey, NDR_OUT | NDR_SET_VALUES, r);
2604 push = ndr_push_init_ctx(r);
2611 * carry over the pointer count to the reply in case we are
2612 * using full pointer. See NDR specification for full pointers
2614 push->ptr_count = pull->ptr_count;
2616 ndr_err = call->ndr_push(push, NDR_OUT, r);
2617 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2622 p->out_data.rdata = ndr_push_blob(push);
2623 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2630 static bool api_winspool_AsyncXcvData(struct pipes_struct *p)
2632 const struct ndr_interface_call *call;
2633 struct ndr_pull *pull;
2634 struct ndr_push *push;
2635 enum ndr_err_code ndr_err;
2636 struct winspool_AsyncXcvData *r;
2638 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCXCVDATA];
2640 r = talloc(talloc_tos(), struct winspool_AsyncXcvData);
2645 pull = ndr_pull_init_blob(&p->in_data.data, r);
2651 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2653 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2655 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2656 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2661 if (DEBUGLEVEL >= 10) {
2662 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncXcvData, NDR_IN, r);
2665 ZERO_STRUCT(r->out);
2666 r->out.pdwStatus = r->in.pdwStatus;
2667 r->out.pOutputData = talloc_zero_array(r, uint8_t, r->in.cbOutputData);
2668 if (r->out.pOutputData == NULL) {
2673 r->out.pcbOutputNeeded = talloc_zero(r, uint32_t);
2674 if (r->out.pcbOutputNeeded == NULL) {
2679 r->out.result = _winspool_AsyncXcvData(p, r);
2681 if (p->fault_state) {
2683 /* Return true here, srv_pipe_hnd.c will take care */
2687 if (DEBUGLEVEL >= 10) {
2688 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncXcvData, NDR_OUT | NDR_SET_VALUES, r);
2691 push = ndr_push_init_ctx(r);
2698 * carry over the pointer count to the reply in case we are
2699 * using full pointer. See NDR specification for full pointers
2701 push->ptr_count = pull->ptr_count;
2703 ndr_err = call->ndr_push(push, NDR_OUT, r);
2704 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2709 p->out_data.rdata = ndr_push_blob(push);
2710 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2717 static bool api_winspool_AsyncSendRecvBidiData(struct pipes_struct *p)
2719 const struct ndr_interface_call *call;
2720 struct ndr_pull *pull;
2721 struct ndr_push *push;
2722 enum ndr_err_code ndr_err;
2723 struct winspool_AsyncSendRecvBidiData *r;
2725 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSENDRECVBIDIDATA];
2727 r = talloc(talloc_tos(), struct winspool_AsyncSendRecvBidiData);
2732 pull = ndr_pull_init_blob(&p->in_data.data, r);
2738 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2740 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2742 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2743 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2748 if (DEBUGLEVEL >= 10) {
2749 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSendRecvBidiData, NDR_IN, r);
2752 ZERO_STRUCT(r->out);
2753 r->out.ppRespData = talloc_zero(r, struct RPC_BIDI_RESPONSE_CONTAINER *);
2754 if (r->out.ppRespData == NULL) {
2759 r->out.result = _winspool_AsyncSendRecvBidiData(p, r);
2761 if (p->fault_state) {
2763 /* Return true here, srv_pipe_hnd.c will take care */
2767 if (DEBUGLEVEL >= 10) {
2768 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSendRecvBidiData, NDR_OUT | NDR_SET_VALUES, r);
2771 push = ndr_push_init_ctx(r);
2778 * carry over the pointer count to the reply in case we are
2779 * using full pointer. See NDR specification for full pointers
2781 push->ptr_count = pull->ptr_count;
2783 ndr_err = call->ndr_push(push, NDR_OUT, r);
2784 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2789 p->out_data.rdata = ndr_push_blob(push);
2790 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2797 static bool api_winspool_AsyncCreatePrinterIC(struct 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 struct winspool_AsyncCreatePrinterIC *r;
2805 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCCREATEPRINTERIC];
2807 r = talloc(talloc_tos(), struct winspool_AsyncCreatePrinterIC);
2812 pull = ndr_pull_init_blob(&p->in_data.data, r);
2818 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2820 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2822 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2823 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2828 if (DEBUGLEVEL >= 10) {
2829 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCreatePrinterIC, NDR_IN, r);
2832 ZERO_STRUCT(r->out);
2833 r->out.pHandle = talloc_zero(r, struct policy_handle);
2834 if (r->out.pHandle == NULL) {
2839 r->out.result = _winspool_AsyncCreatePrinterIC(p, r);
2841 if (p->fault_state) {
2843 /* Return true here, srv_pipe_hnd.c will take care */
2847 if (DEBUGLEVEL >= 10) {
2848 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCreatePrinterIC, NDR_OUT | NDR_SET_VALUES, r);
2851 push = ndr_push_init_ctx(r);
2858 * carry over the pointer count to the reply in case we are
2859 * using full pointer. See NDR specification for full pointers
2861 push->ptr_count = pull->ptr_count;
2863 ndr_err = call->ndr_push(push, NDR_OUT, r);
2864 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2869 p->out_data.rdata = ndr_push_blob(push);
2870 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2877 static bool api_winspool_AsyncPlayGdiScriptOnPrinterIC(struct pipes_struct *p)
2879 const struct ndr_interface_call *call;
2880 struct ndr_pull *pull;
2881 struct ndr_push *push;
2882 enum ndr_err_code ndr_err;
2883 struct winspool_AsyncPlayGdiScriptOnPrinterIC *r;
2885 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCPLAYGDISCRIPTONPRINTERIC];
2887 r = talloc(talloc_tos(), struct winspool_AsyncPlayGdiScriptOnPrinterIC);
2892 pull = ndr_pull_init_blob(&p->in_data.data, r);
2898 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2900 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2902 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2903 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2908 if (DEBUGLEVEL >= 10) {
2909 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncPlayGdiScriptOnPrinterIC, NDR_IN, r);
2912 ZERO_STRUCT(r->out);
2913 r->out.pOut = talloc_zero_array(r, uint8_t, r->in.cOut);
2914 if (r->out.pOut == NULL) {
2919 r->out.result = _winspool_AsyncPlayGdiScriptOnPrinterIC(p, r);
2921 if (p->fault_state) {
2923 /* Return true here, srv_pipe_hnd.c will take care */
2927 if (DEBUGLEVEL >= 10) {
2928 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncPlayGdiScriptOnPrinterIC, NDR_OUT | NDR_SET_VALUES, r);
2931 push = ndr_push_init_ctx(r);
2938 * carry over the pointer count to the reply in case we are
2939 * using full pointer. See NDR specification for full pointers
2941 push->ptr_count = pull->ptr_count;
2943 ndr_err = call->ndr_push(push, NDR_OUT, r);
2944 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2949 p->out_data.rdata = ndr_push_blob(push);
2950 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
2957 static bool api_winspool_AsyncDeletePrinterIC(struct pipes_struct *p)
2959 const struct ndr_interface_call *call;
2960 struct ndr_pull *pull;
2961 struct ndr_push *push;
2962 enum ndr_err_code ndr_err;
2963 struct winspool_AsyncDeletePrinterIC *r;
2965 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERIC];
2967 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterIC);
2972 pull = ndr_pull_init_blob(&p->in_data.data, r);
2978 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
2980 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
2982 ndr_err = call->ndr_pull(pull, NDR_IN, r);
2983 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
2988 if (DEBUGLEVEL >= 10) {
2989 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterIC, NDR_IN, r);
2992 ZERO_STRUCT(r->out);
2993 r->out.phPrinterIC = r->in.phPrinterIC;
2994 r->out.result = _winspool_AsyncDeletePrinterIC(p, r);
2996 if (p->fault_state) {
2998 /* Return true here, srv_pipe_hnd.c will take care */
3002 if (DEBUGLEVEL >= 10) {
3003 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterIC, NDR_OUT | NDR_SET_VALUES, r);
3006 push = ndr_push_init_ctx(r);
3013 * carry over the pointer count to the reply in case we are
3014 * using full pointer. See NDR specification for full pointers
3016 push->ptr_count = pull->ptr_count;
3018 ndr_err = call->ndr_push(push, NDR_OUT, r);
3019 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3024 p->out_data.rdata = ndr_push_blob(push);
3025 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3032 static bool api_winspool_AsyncEnumPrinters(struct pipes_struct *p)
3034 const struct ndr_interface_call *call;
3035 struct ndr_pull *pull;
3036 struct ndr_push *push;
3037 enum ndr_err_code ndr_err;
3038 struct winspool_AsyncEnumPrinters *r;
3040 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTERS];
3042 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrinters);
3047 pull = ndr_pull_init_blob(&p->in_data.data, r);
3053 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3055 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3057 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3058 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3063 if (DEBUGLEVEL >= 10) {
3064 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinters, NDR_IN, r);
3067 ZERO_STRUCT(r->out);
3068 r->out.pPrinterEnum = r->in.pPrinterEnum;
3069 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3070 if (r->out.pcbNeeded == NULL) {
3075 r->out.pcReturned = talloc_zero(r, uint32_t);
3076 if (r->out.pcReturned == NULL) {
3081 r->out.result = _winspool_AsyncEnumPrinters(p, r);
3083 if (p->fault_state) {
3085 /* Return true here, srv_pipe_hnd.c will take care */
3089 if (DEBUGLEVEL >= 10) {
3090 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinters, NDR_OUT | NDR_SET_VALUES, r);
3093 push = ndr_push_init_ctx(r);
3100 * carry over the pointer count to the reply in case we are
3101 * using full pointer. See NDR specification for full pointers
3103 push->ptr_count = pull->ptr_count;
3105 ndr_err = call->ndr_push(push, NDR_OUT, r);
3106 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3111 p->out_data.rdata = ndr_push_blob(push);
3112 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3119 static bool api_winspool_AsyncAddPrinterDriver(struct pipes_struct *p)
3121 const struct ndr_interface_call *call;
3122 struct ndr_pull *pull;
3123 struct ndr_push *push;
3124 enum ndr_err_code ndr_err;
3125 struct winspool_AsyncAddPrinterDriver *r;
3127 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDPRINTERDRIVER];
3129 r = talloc(talloc_tos(), struct winspool_AsyncAddPrinterDriver);
3134 pull = ndr_pull_init_blob(&p->in_data.data, r);
3140 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3142 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3144 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3145 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3150 if (DEBUGLEVEL >= 10) {
3151 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinterDriver, NDR_IN, r);
3154 r->out.result = _winspool_AsyncAddPrinterDriver(p, r);
3156 if (p->fault_state) {
3158 /* Return true here, srv_pipe_hnd.c will take care */
3162 if (DEBUGLEVEL >= 10) {
3163 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinterDriver, NDR_OUT | NDR_SET_VALUES, r);
3166 push = ndr_push_init_ctx(r);
3173 * carry over the pointer count to the reply in case we are
3174 * using full pointer. See NDR specification for full pointers
3176 push->ptr_count = pull->ptr_count;
3178 ndr_err = call->ndr_push(push, NDR_OUT, r);
3179 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3184 p->out_data.rdata = ndr_push_blob(push);
3185 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3192 static bool api_winspool_AsyncEnumPrinterDrivers(struct pipes_struct *p)
3194 const struct ndr_interface_call *call;
3195 struct ndr_pull *pull;
3196 struct ndr_push *push;
3197 enum ndr_err_code ndr_err;
3198 struct winspool_AsyncEnumPrinterDrivers *r;
3200 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTERDRIVERS];
3202 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrinterDrivers);
3207 pull = ndr_pull_init_blob(&p->in_data.data, r);
3213 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3215 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3217 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3218 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3223 if (DEBUGLEVEL >= 10) {
3224 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDrivers, NDR_IN, r);
3227 ZERO_STRUCT(r->out);
3228 r->out.pDrivers = r->in.pDrivers;
3229 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3230 if (r->out.pcbNeeded == NULL) {
3235 r->out.pcReturned = talloc_zero(r, uint32_t);
3236 if (r->out.pcReturned == NULL) {
3241 r->out.result = _winspool_AsyncEnumPrinterDrivers(p, r);
3243 if (p->fault_state) {
3245 /* Return true here, srv_pipe_hnd.c will take care */
3249 if (DEBUGLEVEL >= 10) {
3250 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDrivers, NDR_OUT | NDR_SET_VALUES, r);
3253 push = ndr_push_init_ctx(r);
3260 * carry over the pointer count to the reply in case we are
3261 * using full pointer. See NDR specification for full pointers
3263 push->ptr_count = pull->ptr_count;
3265 ndr_err = call->ndr_push(push, NDR_OUT, r);
3266 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3271 p->out_data.rdata = ndr_push_blob(push);
3272 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3279 static bool api_winspool_AsyncGetPrinterDriverDirectory(struct pipes_struct *p)
3281 const struct ndr_interface_call *call;
3282 struct ndr_pull *pull;
3283 struct ndr_push *push;
3284 enum ndr_err_code ndr_err;
3285 struct winspool_AsyncGetPrinterDriverDirectory *r;
3287 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTERDRIVERDIRECTORY];
3289 r = talloc(talloc_tos(), struct winspool_AsyncGetPrinterDriverDirectory);
3294 pull = ndr_pull_init_blob(&p->in_data.data, r);
3300 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3302 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3304 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3305 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3310 if (DEBUGLEVEL >= 10) {
3311 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverDirectory, NDR_IN, r);
3314 ZERO_STRUCT(r->out);
3315 r->out.pDriverDirectory = r->in.pDriverDirectory;
3316 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3317 if (r->out.pcbNeeded == NULL) {
3322 r->out.result = _winspool_AsyncGetPrinterDriverDirectory(p, r);
3324 if (p->fault_state) {
3326 /* Return true here, srv_pipe_hnd.c will take care */
3330 if (DEBUGLEVEL >= 10) {
3331 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverDirectory, NDR_OUT | NDR_SET_VALUES, r);
3334 push = ndr_push_init_ctx(r);
3341 * carry over the pointer count to the reply in case we are
3342 * using full pointer. See NDR specification for full pointers
3344 push->ptr_count = pull->ptr_count;
3346 ndr_err = call->ndr_push(push, NDR_OUT, r);
3347 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3352 p->out_data.rdata = ndr_push_blob(push);
3353 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3360 static bool api_winspool_AsyncDeletePrinterDriver(struct pipes_struct *p)
3362 const struct ndr_interface_call *call;
3363 struct ndr_pull *pull;
3364 struct ndr_push *push;
3365 enum ndr_err_code ndr_err;
3366 struct winspool_AsyncDeletePrinterDriver *r;
3368 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERDRIVER];
3370 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterDriver);
3375 pull = ndr_pull_init_blob(&p->in_data.data, r);
3381 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3383 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3385 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3386 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3391 if (DEBUGLEVEL >= 10) {
3392 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriver, NDR_IN, r);
3395 r->out.result = _winspool_AsyncDeletePrinterDriver(p, r);
3397 if (p->fault_state) {
3399 /* Return true here, srv_pipe_hnd.c will take care */
3403 if (DEBUGLEVEL >= 10) {
3404 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriver, NDR_OUT | NDR_SET_VALUES, r);
3407 push = ndr_push_init_ctx(r);
3414 * carry over the pointer count to the reply in case we are
3415 * using full pointer. See NDR specification for full pointers
3417 push->ptr_count = pull->ptr_count;
3419 ndr_err = call->ndr_push(push, NDR_OUT, r);
3420 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3425 p->out_data.rdata = ndr_push_blob(push);
3426 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3433 static bool api_winspool_AsyncDeletePrinterDriverEx(struct pipes_struct *p)
3435 const struct ndr_interface_call *call;
3436 struct ndr_pull *pull;
3437 struct ndr_push *push;
3438 enum ndr_err_code ndr_err;
3439 struct winspool_AsyncDeletePrinterDriverEx *r;
3441 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERDRIVEREX];
3443 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterDriverEx);
3448 pull = ndr_pull_init_blob(&p->in_data.data, r);
3454 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3456 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3458 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3459 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3464 if (DEBUGLEVEL >= 10) {
3465 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverEx, NDR_IN, r);
3468 r->out.result = _winspool_AsyncDeletePrinterDriverEx(p, r);
3470 if (p->fault_state) {
3472 /* Return true here, srv_pipe_hnd.c will take care */
3476 if (DEBUGLEVEL >= 10) {
3477 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverEx, NDR_OUT | NDR_SET_VALUES, r);
3480 push = ndr_push_init_ctx(r);
3487 * carry over the pointer count to the reply in case we are
3488 * using full pointer. See NDR specification for full pointers
3490 push->ptr_count = pull->ptr_count;
3492 ndr_err = call->ndr_push(push, NDR_OUT, r);
3493 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3498 p->out_data.rdata = ndr_push_blob(push);
3499 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3506 static bool api_winspool_AsyncAddPrintProcessor(struct pipes_struct *p)
3508 const struct ndr_interface_call *call;
3509 struct ndr_pull *pull;
3510 struct ndr_push *push;
3511 enum ndr_err_code ndr_err;
3512 struct winspool_AsyncAddPrintProcessor *r;
3514 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDPRINTPROCESSOR];
3516 r = talloc(talloc_tos(), struct winspool_AsyncAddPrintProcessor);
3521 pull = ndr_pull_init_blob(&p->in_data.data, r);
3527 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3529 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3531 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3532 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3537 if (DEBUGLEVEL >= 10) {
3538 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrintProcessor, NDR_IN, r);
3541 r->out.result = _winspool_AsyncAddPrintProcessor(p, r);
3543 if (p->fault_state) {
3545 /* Return true here, srv_pipe_hnd.c will take care */
3549 if (DEBUGLEVEL >= 10) {
3550 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrintProcessor, NDR_OUT | NDR_SET_VALUES, r);
3553 push = ndr_push_init_ctx(r);
3560 * carry over the pointer count to the reply in case we are
3561 * using full pointer. See NDR specification for full pointers
3563 push->ptr_count = pull->ptr_count;
3565 ndr_err = call->ndr_push(push, NDR_OUT, r);
3566 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3571 p->out_data.rdata = ndr_push_blob(push);
3572 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3579 static bool api_winspool_AsyncEnumPrintProcessors(struct pipes_struct *p)
3581 const struct ndr_interface_call *call;
3582 struct ndr_pull *pull;
3583 struct ndr_push *push;
3584 enum ndr_err_code ndr_err;
3585 struct winspool_AsyncEnumPrintProcessors *r;
3587 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTPROCESSORS];
3589 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrintProcessors);
3594 pull = ndr_pull_init_blob(&p->in_data.data, r);
3600 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3602 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3604 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3605 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3610 if (DEBUGLEVEL >= 10) {
3611 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessors, NDR_IN, r);
3614 ZERO_STRUCT(r->out);
3615 r->out.pPrintProcessorInfo = r->in.pPrintProcessorInfo;
3616 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3617 if (r->out.pcbNeeded == NULL) {
3622 r->out.pcReturned = talloc_zero(r, uint32_t);
3623 if (r->out.pcReturned == NULL) {
3628 r->out.result = _winspool_AsyncEnumPrintProcessors(p, r);
3630 if (p->fault_state) {
3632 /* Return true here, srv_pipe_hnd.c will take care */
3636 if (DEBUGLEVEL >= 10) {
3637 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessors, NDR_OUT | NDR_SET_VALUES, r);
3640 push = ndr_push_init_ctx(r);
3647 * carry over the pointer count to the reply in case we are
3648 * using full pointer. See NDR specification for full pointers
3650 push->ptr_count = pull->ptr_count;
3652 ndr_err = call->ndr_push(push, NDR_OUT, r);
3653 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3658 p->out_data.rdata = ndr_push_blob(push);
3659 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3666 static bool api_winspool_AsyncGetPrintProcessorDirectory(struct pipes_struct *p)
3668 const struct ndr_interface_call *call;
3669 struct ndr_pull *pull;
3670 struct ndr_push *push;
3671 enum ndr_err_code ndr_err;
3672 struct winspool_AsyncGetPrintProcessorDirectory *r;
3674 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTPROCESSORDIRECTORY];
3676 r = talloc(talloc_tos(), struct winspool_AsyncGetPrintProcessorDirectory);
3681 pull = ndr_pull_init_blob(&p->in_data.data, r);
3687 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3689 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3691 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3692 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3697 if (DEBUGLEVEL >= 10) {
3698 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrintProcessorDirectory, NDR_IN, r);
3701 ZERO_STRUCT(r->out);
3702 r->out.pPrintProcessorDirectory = r->in.pPrintProcessorDirectory;
3703 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3704 if (r->out.pcbNeeded == NULL) {
3709 r->out.result = _winspool_AsyncGetPrintProcessorDirectory(p, r);
3711 if (p->fault_state) {
3713 /* Return true here, srv_pipe_hnd.c will take care */
3717 if (DEBUGLEVEL >= 10) {
3718 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrintProcessorDirectory, NDR_OUT | NDR_SET_VALUES, r);
3721 push = ndr_push_init_ctx(r);
3728 * carry over the pointer count to the reply in case we are
3729 * using full pointer. See NDR specification for full pointers
3731 push->ptr_count = pull->ptr_count;
3733 ndr_err = call->ndr_push(push, NDR_OUT, r);
3734 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3739 p->out_data.rdata = ndr_push_blob(push);
3740 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3747 static bool api_winspool_AsyncEnumPorts(struct pipes_struct *p)
3749 const struct ndr_interface_call *call;
3750 struct ndr_pull *pull;
3751 struct ndr_push *push;
3752 enum ndr_err_code ndr_err;
3753 struct winspool_AsyncEnumPorts *r;
3755 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPORTS];
3757 r = talloc(talloc_tos(), struct winspool_AsyncEnumPorts);
3762 pull = ndr_pull_init_blob(&p->in_data.data, r);
3768 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3770 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3772 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3773 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3778 if (DEBUGLEVEL >= 10) {
3779 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPorts, NDR_IN, r);
3782 ZERO_STRUCT(r->out);
3783 r->out.pPort = r->in.pPort;
3784 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3785 if (r->out.pcbNeeded == NULL) {
3790 r->out.pcReturned = talloc_zero(r, uint32_t);
3791 if (r->out.pcReturned == NULL) {
3796 r->out.result = _winspool_AsyncEnumPorts(p, r);
3798 if (p->fault_state) {
3800 /* Return true here, srv_pipe_hnd.c will take care */
3804 if (DEBUGLEVEL >= 10) {
3805 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPorts, NDR_OUT | NDR_SET_VALUES, r);
3808 push = ndr_push_init_ctx(r);
3815 * carry over the pointer count to the reply in case we are
3816 * using full pointer. See NDR specification for full pointers
3818 push->ptr_count = pull->ptr_count;
3820 ndr_err = call->ndr_push(push, NDR_OUT, r);
3821 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3826 p->out_data.rdata = ndr_push_blob(push);
3827 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3834 static bool api_winspool_AsyncEnumMonitors(struct pipes_struct *p)
3836 const struct ndr_interface_call *call;
3837 struct ndr_pull *pull;
3838 struct ndr_push *push;
3839 enum ndr_err_code ndr_err;
3840 struct winspool_AsyncEnumMonitors *r;
3842 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMMONITORS];
3844 r = talloc(talloc_tos(), struct winspool_AsyncEnumMonitors);
3849 pull = ndr_pull_init_blob(&p->in_data.data, r);
3855 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3857 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3859 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3860 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3865 if (DEBUGLEVEL >= 10) {
3866 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumMonitors, NDR_IN, r);
3869 ZERO_STRUCT(r->out);
3870 r->out.pMonitor = r->in.pMonitor;
3871 r->out.pcbNeeded = talloc_zero(r, uint32_t);
3872 if (r->out.pcbNeeded == NULL) {
3877 r->out.pcReturned = talloc_zero(r, uint32_t);
3878 if (r->out.pcReturned == NULL) {
3883 r->out.result = _winspool_AsyncEnumMonitors(p, r);
3885 if (p->fault_state) {
3887 /* Return true here, srv_pipe_hnd.c will take care */
3891 if (DEBUGLEVEL >= 10) {
3892 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumMonitors, NDR_OUT | NDR_SET_VALUES, r);
3895 push = ndr_push_init_ctx(r);
3902 * carry over the pointer count to the reply in case we are
3903 * using full pointer. See NDR specification for full pointers
3905 push->ptr_count = pull->ptr_count;
3907 ndr_err = call->ndr_push(push, NDR_OUT, r);
3908 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3913 p->out_data.rdata = ndr_push_blob(push);
3914 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3921 static bool api_winspool_AsyncAddPort(struct pipes_struct *p)
3923 const struct ndr_interface_call *call;
3924 struct ndr_pull *pull;
3925 struct ndr_push *push;
3926 enum ndr_err_code ndr_err;
3927 struct winspool_AsyncAddPort *r;
3929 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDPORT];
3931 r = talloc(talloc_tos(), struct winspool_AsyncAddPort);
3936 pull = ndr_pull_init_blob(&p->in_data.data, r);
3942 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
3944 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
3946 ndr_err = call->ndr_pull(pull, NDR_IN, r);
3947 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3952 if (DEBUGLEVEL >= 10) {
3953 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPort, NDR_IN, r);
3956 r->out.result = _winspool_AsyncAddPort(p, r);
3958 if (p->fault_state) {
3960 /* Return true here, srv_pipe_hnd.c will take care */
3964 if (DEBUGLEVEL >= 10) {
3965 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPort, NDR_OUT | NDR_SET_VALUES, r);
3968 push = ndr_push_init_ctx(r);
3975 * carry over the pointer count to the reply in case we are
3976 * using full pointer. See NDR specification for full pointers
3978 push->ptr_count = pull->ptr_count;
3980 ndr_err = call->ndr_push(push, NDR_OUT, r);
3981 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
3986 p->out_data.rdata = ndr_push_blob(push);
3987 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
3994 static bool api_winspool_AsyncSetPort(struct pipes_struct *p)
3996 const struct ndr_interface_call *call;
3997 struct ndr_pull *pull;
3998 struct ndr_push *push;
3999 enum ndr_err_code ndr_err;
4000 struct winspool_AsyncSetPort *r;
4002 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETPORT];
4004 r = talloc(talloc_tos(), struct winspool_AsyncSetPort);
4009 pull = ndr_pull_init_blob(&p->in_data.data, r);
4015 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4017 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4019 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4020 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4025 if (DEBUGLEVEL >= 10) {
4026 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPort, NDR_IN, r);
4029 r->out.result = _winspool_AsyncSetPort(p, r);
4031 if (p->fault_state) {
4033 /* Return true here, srv_pipe_hnd.c will take care */
4037 if (DEBUGLEVEL >= 10) {
4038 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPort, NDR_OUT | NDR_SET_VALUES, r);
4041 push = ndr_push_init_ctx(r);
4048 * carry over the pointer count to the reply in case we are
4049 * using full pointer. See NDR specification for full pointers
4051 push->ptr_count = pull->ptr_count;
4053 ndr_err = call->ndr_push(push, NDR_OUT, r);
4054 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4059 p->out_data.rdata = ndr_push_blob(push);
4060 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4067 static bool api_winspool_AsyncAddMonitor(struct pipes_struct *p)
4069 const struct ndr_interface_call *call;
4070 struct ndr_pull *pull;
4071 struct ndr_push *push;
4072 enum ndr_err_code ndr_err;
4073 struct winspool_AsyncAddMonitor *r;
4075 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDMONITOR];
4077 r = talloc(talloc_tos(), struct winspool_AsyncAddMonitor);
4082 pull = ndr_pull_init_blob(&p->in_data.data, r);
4088 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4090 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4092 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4093 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4098 if (DEBUGLEVEL >= 10) {
4099 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddMonitor, NDR_IN, r);
4102 r->out.result = _winspool_AsyncAddMonitor(p, r);
4104 if (p->fault_state) {
4106 /* Return true here, srv_pipe_hnd.c will take care */
4110 if (DEBUGLEVEL >= 10) {
4111 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddMonitor, NDR_OUT | NDR_SET_VALUES, r);
4114 push = ndr_push_init_ctx(r);
4121 * carry over the pointer count to the reply in case we are
4122 * using full pointer. See NDR specification for full pointers
4124 push->ptr_count = pull->ptr_count;
4126 ndr_err = call->ndr_push(push, NDR_OUT, r);
4127 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4132 p->out_data.rdata = ndr_push_blob(push);
4133 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4140 static bool api_winspool_AsyncDeleteMonitor(struct pipes_struct *p)
4142 const struct ndr_interface_call *call;
4143 struct ndr_pull *pull;
4144 struct ndr_push *push;
4145 enum ndr_err_code ndr_err;
4146 struct winspool_AsyncDeleteMonitor *r;
4148 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEMONITOR];
4150 r = talloc(talloc_tos(), struct winspool_AsyncDeleteMonitor);
4155 pull = ndr_pull_init_blob(&p->in_data.data, r);
4161 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4163 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4165 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4166 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4171 if (DEBUGLEVEL >= 10) {
4172 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteMonitor, NDR_IN, r);
4175 r->out.result = _winspool_AsyncDeleteMonitor(p, r);
4177 if (p->fault_state) {
4179 /* Return true here, srv_pipe_hnd.c will take care */
4183 if (DEBUGLEVEL >= 10) {
4184 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteMonitor, NDR_OUT | NDR_SET_VALUES, r);
4187 push = ndr_push_init_ctx(r);
4194 * carry over the pointer count to the reply in case we are
4195 * using full pointer. See NDR specification for full pointers
4197 push->ptr_count = pull->ptr_count;
4199 ndr_err = call->ndr_push(push, NDR_OUT, r);
4200 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4205 p->out_data.rdata = ndr_push_blob(push);
4206 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4213 static bool api_winspool_AsyncDeletePrintProcessor(struct pipes_struct *p)
4215 const struct ndr_interface_call *call;
4216 struct ndr_pull *pull;
4217 struct ndr_push *push;
4218 enum ndr_err_code ndr_err;
4219 struct winspool_AsyncDeletePrintProcessor *r;
4221 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTPROCESSOR];
4223 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrintProcessor);
4228 pull = ndr_pull_init_blob(&p->in_data.data, r);
4234 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4236 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4238 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4239 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4244 if (DEBUGLEVEL >= 10) {
4245 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrintProcessor, NDR_IN, r);
4248 r->out.result = _winspool_AsyncDeletePrintProcessor(p, r);
4250 if (p->fault_state) {
4252 /* Return true here, srv_pipe_hnd.c will take care */
4256 if (DEBUGLEVEL >= 10) {
4257 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrintProcessor, NDR_OUT | NDR_SET_VALUES, r);
4260 push = ndr_push_init_ctx(r);
4267 * carry over the pointer count to the reply in case we are
4268 * using full pointer. See NDR specification for full pointers
4270 push->ptr_count = pull->ptr_count;
4272 ndr_err = call->ndr_push(push, NDR_OUT, r);
4273 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4278 p->out_data.rdata = ndr_push_blob(push);
4279 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4286 static bool api_winspool_AsyncEnumPrintProcessorDatatypes(struct pipes_struct *p)
4288 const struct ndr_interface_call *call;
4289 struct ndr_pull *pull;
4290 struct ndr_push *push;
4291 enum ndr_err_code ndr_err;
4292 struct winspool_AsyncEnumPrintProcessorDatatypes *r;
4294 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPRINTPROCESSORDATATYPES];
4296 r = talloc(talloc_tos(), struct winspool_AsyncEnumPrintProcessorDatatypes);
4301 pull = ndr_pull_init_blob(&p->in_data.data, r);
4307 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4309 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4311 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4312 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4317 if (DEBUGLEVEL >= 10) {
4318 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessorDatatypes, NDR_IN, r);
4321 ZERO_STRUCT(r->out);
4322 r->out.pDatatypes = r->in.pDatatypes;
4323 r->out.pcbNeeded = talloc_zero(r, uint32_t);
4324 if (r->out.pcbNeeded == NULL) {
4329 r->out.pcReturned = talloc_zero(r, uint32_t);
4330 if (r->out.pcReturned == NULL) {
4335 r->out.result = _winspool_AsyncEnumPrintProcessorDatatypes(p, r);
4337 if (p->fault_state) {
4339 /* Return true here, srv_pipe_hnd.c will take care */
4343 if (DEBUGLEVEL >= 10) {
4344 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessorDatatypes, NDR_OUT | NDR_SET_VALUES, r);
4347 push = ndr_push_init_ctx(r);
4354 * carry over the pointer count to the reply in case we are
4355 * using full pointer. See NDR specification for full pointers
4357 push->ptr_count = pull->ptr_count;
4359 ndr_err = call->ndr_push(push, NDR_OUT, r);
4360 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4365 p->out_data.rdata = ndr_push_blob(push);
4366 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4373 static bool api_winspool_AsyncAddPerMachineConnection(struct pipes_struct *p)
4375 const struct ndr_interface_call *call;
4376 struct ndr_pull *pull;
4377 struct ndr_push *push;
4378 enum ndr_err_code ndr_err;
4379 struct winspool_AsyncAddPerMachineConnection *r;
4381 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCADDPERMACHINECONNECTION];
4383 r = talloc(talloc_tos(), struct winspool_AsyncAddPerMachineConnection);
4388 pull = ndr_pull_init_blob(&p->in_data.data, r);
4394 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4396 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4398 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4399 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4404 if (DEBUGLEVEL >= 10) {
4405 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPerMachineConnection, NDR_IN, r);
4408 r->out.result = _winspool_AsyncAddPerMachineConnection(p, r);
4410 if (p->fault_state) {
4412 /* Return true here, srv_pipe_hnd.c will take care */
4416 if (DEBUGLEVEL >= 10) {
4417 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPerMachineConnection, NDR_OUT | NDR_SET_VALUES, r);
4420 push = ndr_push_init_ctx(r);
4427 * carry over the pointer count to the reply in case we are
4428 * using full pointer. See NDR specification for full pointers
4430 push->ptr_count = pull->ptr_count;
4432 ndr_err = call->ndr_push(push, NDR_OUT, r);
4433 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4438 p->out_data.rdata = ndr_push_blob(push);
4439 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4446 static bool api_winspool_AsyncDeletePerMachineConnection(struct pipes_struct *p)
4448 const struct ndr_interface_call *call;
4449 struct ndr_pull *pull;
4450 struct ndr_push *push;
4451 enum ndr_err_code ndr_err;
4452 struct winspool_AsyncDeletePerMachineConnection *r;
4454 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPERMACHINECONNECTION];
4456 r = talloc(talloc_tos(), struct winspool_AsyncDeletePerMachineConnection);
4461 pull = ndr_pull_init_blob(&p->in_data.data, r);
4467 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4469 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4471 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4472 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4477 if (DEBUGLEVEL >= 10) {
4478 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePerMachineConnection, NDR_IN, r);
4481 r->out.result = _winspool_AsyncDeletePerMachineConnection(p, r);
4483 if (p->fault_state) {
4485 /* Return true here, srv_pipe_hnd.c will take care */
4489 if (DEBUGLEVEL >= 10) {
4490 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePerMachineConnection, NDR_OUT | NDR_SET_VALUES, r);
4493 push = ndr_push_init_ctx(r);
4500 * carry over the pointer count to the reply in case we are
4501 * using full pointer. See NDR specification for full pointers
4503 push->ptr_count = pull->ptr_count;
4505 ndr_err = call->ndr_push(push, NDR_OUT, r);
4506 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4511 p->out_data.rdata = ndr_push_blob(push);
4512 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4519 static bool api_winspool_AsyncEnumPerMachineConnections(struct pipes_struct *p)
4521 const struct ndr_interface_call *call;
4522 struct ndr_pull *pull;
4523 struct ndr_push *push;
4524 enum ndr_err_code ndr_err;
4525 struct winspool_AsyncEnumPerMachineConnections *r;
4527 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMPERMACHINECONNECTIONS];
4529 r = talloc(talloc_tos(), struct winspool_AsyncEnumPerMachineConnections);
4534 pull = ndr_pull_init_blob(&p->in_data.data, r);
4540 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4542 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4544 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4545 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4550 if (DEBUGLEVEL >= 10) {
4551 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPerMachineConnections, NDR_IN, r);
4554 ZERO_STRUCT(r->out);
4555 r->out.pPrinterEnum = r->in.pPrinterEnum;
4556 r->out.pcbNeeded = talloc_zero(r, uint32_t);
4557 if (r->out.pcbNeeded == NULL) {
4562 r->out.pcReturned = talloc_zero(r, uint32_t);
4563 if (r->out.pcReturned == NULL) {
4568 r->out.result = _winspool_AsyncEnumPerMachineConnections(p, r);
4570 if (p->fault_state) {
4572 /* Return true here, srv_pipe_hnd.c will take care */
4576 if (DEBUGLEVEL >= 10) {
4577 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPerMachineConnections, NDR_OUT | NDR_SET_VALUES, r);
4580 push = ndr_push_init_ctx(r);
4587 * carry over the pointer count to the reply in case we are
4588 * using full pointer. See NDR specification for full pointers
4590 push->ptr_count = pull->ptr_count;
4592 ndr_err = call->ndr_push(push, NDR_OUT, r);
4593 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4598 p->out_data.rdata = ndr_push_blob(push);
4599 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4606 static bool api_winspool_SyncRegisterForRemoteNotifications(struct pipes_struct *p)
4608 const struct ndr_interface_call *call;
4609 struct ndr_pull *pull;
4610 struct ndr_push *push;
4611 enum ndr_err_code ndr_err;
4612 struct winspool_SyncRegisterForRemoteNotifications *r;
4614 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_SYNCREGISTERFORREMOTENOTIFICATIONS];
4616 r = talloc(talloc_tos(), struct winspool_SyncRegisterForRemoteNotifications);
4621 pull = ndr_pull_init_blob(&p->in_data.data, r);
4627 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4629 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4631 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4632 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4637 if (DEBUGLEVEL >= 10) {
4638 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRegisterForRemoteNotifications, NDR_IN, r);
4641 ZERO_STRUCT(r->out);
4642 r->out.phRpcHandle = talloc_zero(r, struct policy_handle);
4643 if (r->out.phRpcHandle == NULL) {
4648 r->out.result = _winspool_SyncRegisterForRemoteNotifications(p, r);
4650 if (p->fault_state) {
4652 /* Return true here, srv_pipe_hnd.c will take care */
4656 if (DEBUGLEVEL >= 10) {
4657 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRegisterForRemoteNotifications, NDR_OUT | NDR_SET_VALUES, r);
4660 push = ndr_push_init_ctx(r);
4667 * carry over the pointer count to the reply in case we are
4668 * using full pointer. See NDR specification for full pointers
4670 push->ptr_count = pull->ptr_count;
4672 ndr_err = call->ndr_push(push, NDR_OUT, r);
4673 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4678 p->out_data.rdata = ndr_push_blob(push);
4679 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4686 static bool api_winspool_SyncUnRegisterForRemoteNotifications(struct pipes_struct *p)
4688 const struct ndr_interface_call *call;
4689 struct ndr_pull *pull;
4690 struct ndr_push *push;
4691 enum ndr_err_code ndr_err;
4692 struct winspool_SyncUnRegisterForRemoteNotifications *r;
4694 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_SYNCUNREGISTERFORREMOTENOTIFICATIONS];
4696 r = talloc(talloc_tos(), struct winspool_SyncUnRegisterForRemoteNotifications);
4701 pull = ndr_pull_init_blob(&p->in_data.data, r);
4707 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4709 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4711 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4712 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4717 if (DEBUGLEVEL >= 10) {
4718 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncUnRegisterForRemoteNotifications, NDR_IN, r);
4721 ZERO_STRUCT(r->out);
4722 r->out.phRpcHandle = r->in.phRpcHandle;
4723 r->out.result = _winspool_SyncUnRegisterForRemoteNotifications(p, r);
4725 if (p->fault_state) {
4727 /* Return true here, srv_pipe_hnd.c will take care */
4731 if (DEBUGLEVEL >= 10) {
4732 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncUnRegisterForRemoteNotifications, NDR_OUT | NDR_SET_VALUES, r);
4735 push = ndr_push_init_ctx(r);
4742 * carry over the pointer count to the reply in case we are
4743 * using full pointer. See NDR specification for full pointers
4745 push->ptr_count = pull->ptr_count;
4747 ndr_err = call->ndr_push(push, NDR_OUT, r);
4748 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4753 p->out_data.rdata = ndr_push_blob(push);
4754 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4761 static bool api_winspool_SyncRefreshRemoteNotifications(struct pipes_struct *p)
4763 const struct ndr_interface_call *call;
4764 struct ndr_pull *pull;
4765 struct ndr_push *push;
4766 enum ndr_err_code ndr_err;
4767 struct winspool_SyncRefreshRemoteNotifications *r;
4769 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_SYNCREFRESHREMOTENOTIFICATIONS];
4771 r = talloc(talloc_tos(), struct winspool_SyncRefreshRemoteNotifications);
4776 pull = ndr_pull_init_blob(&p->in_data.data, r);
4782 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4784 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4786 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4787 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4792 if (DEBUGLEVEL >= 10) {
4793 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRefreshRemoteNotifications, NDR_IN, r);
4796 ZERO_STRUCT(r->out);
4797 r->out.ppNotifyData = talloc_zero(r, struct winspool_PrintPropertiesCollection *);
4798 if (r->out.ppNotifyData == NULL) {
4803 r->out.result = _winspool_SyncRefreshRemoteNotifications(p, r);
4805 if (p->fault_state) {
4807 /* Return true here, srv_pipe_hnd.c will take care */
4811 if (DEBUGLEVEL >= 10) {
4812 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRefreshRemoteNotifications, NDR_OUT | NDR_SET_VALUES, r);
4815 push = ndr_push_init_ctx(r);
4822 * carry over the pointer count to the reply in case we are
4823 * using full pointer. See NDR specification for full pointers
4825 push->ptr_count = pull->ptr_count;
4827 ndr_err = call->ndr_push(push, NDR_OUT, r);
4828 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4833 p->out_data.rdata = ndr_push_blob(push);
4834 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4841 static bool api_winspool_AsyncGetRemoteNotifications(struct pipes_struct *p)
4843 const struct ndr_interface_call *call;
4844 struct ndr_pull *pull;
4845 struct ndr_push *push;
4846 enum ndr_err_code ndr_err;
4847 struct winspool_AsyncGetRemoteNotifications *r;
4849 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETREMOTENOTIFICATIONS];
4851 r = talloc(talloc_tos(), struct winspool_AsyncGetRemoteNotifications);
4856 pull = ndr_pull_init_blob(&p->in_data.data, r);
4862 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4864 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4866 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4867 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4872 if (DEBUGLEVEL >= 10) {
4873 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetRemoteNotifications, NDR_IN, r);
4876 ZERO_STRUCT(r->out);
4877 r->out.ppNotifyData = talloc_zero(r, struct winspool_PrintPropertiesCollection *);
4878 if (r->out.ppNotifyData == NULL) {
4883 r->out.result = _winspool_AsyncGetRemoteNotifications(p, r);
4885 if (p->fault_state) {
4887 /* Return true here, srv_pipe_hnd.c will take care */
4891 if (DEBUGLEVEL >= 10) {
4892 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetRemoteNotifications, NDR_OUT | NDR_SET_VALUES, r);
4895 push = ndr_push_init_ctx(r);
4902 * carry over the pointer count to the reply in case we are
4903 * using full pointer. See NDR specification for full pointers
4905 push->ptr_count = pull->ptr_count;
4907 ndr_err = call->ndr_push(push, NDR_OUT, r);
4908 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4913 p->out_data.rdata = ndr_push_blob(push);
4914 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4921 static bool api_winspool_AsyncInstallPrinterDriverFromPackage(struct pipes_struct *p)
4923 const struct ndr_interface_call *call;
4924 struct ndr_pull *pull;
4925 struct ndr_push *push;
4926 enum ndr_err_code ndr_err;
4927 struct winspool_AsyncInstallPrinterDriverFromPackage *r;
4929 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCINSTALLPRINTERDRIVERFROMPACKAGE];
4931 r = talloc(talloc_tos(), struct winspool_AsyncInstallPrinterDriverFromPackage);
4936 pull = ndr_pull_init_blob(&p->in_data.data, r);
4942 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
4944 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
4946 ndr_err = call->ndr_pull(pull, NDR_IN, r);
4947 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4952 if (DEBUGLEVEL >= 10) {
4953 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncInstallPrinterDriverFromPackage, NDR_IN, r);
4956 r->out.result = _winspool_AsyncInstallPrinterDriverFromPackage(p, r);
4958 if (p->fault_state) {
4960 /* Return true here, srv_pipe_hnd.c will take care */
4964 if (DEBUGLEVEL >= 10) {
4965 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncInstallPrinterDriverFromPackage, NDR_OUT | NDR_SET_VALUES, r);
4968 push = ndr_push_init_ctx(r);
4975 * carry over the pointer count to the reply in case we are
4976 * using full pointer. See NDR specification for full pointers
4978 push->ptr_count = pull->ptr_count;
4980 ndr_err = call->ndr_push(push, NDR_OUT, r);
4981 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
4986 p->out_data.rdata = ndr_push_blob(push);
4987 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
4994 static bool api_winspool_AsyncUploadPrinterDriverPackage(struct pipes_struct *p)
4996 const struct ndr_interface_call *call;
4997 struct ndr_pull *pull;
4998 struct ndr_push *push;
4999 enum ndr_err_code ndr_err;
5000 struct winspool_AsyncUploadPrinterDriverPackage *r;
5002 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCUPLOADPRINTERDRIVERPACKAGE];
5004 r = talloc(talloc_tos(), struct winspool_AsyncUploadPrinterDriverPackage);
5009 pull = ndr_pull_init_blob(&p->in_data.data, r);
5015 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5017 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5019 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5020 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5025 if (DEBUGLEVEL >= 10) {
5026 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncUploadPrinterDriverPackage, NDR_IN, r);
5029 ZERO_STRUCT(r->out);
5030 r->out.pszDestInfPath = r->in.pszDestInfPath;
5031 r->out.pcchDestInfPath = r->in.pcchDestInfPath;
5032 r->out.result = _winspool_AsyncUploadPrinterDriverPackage(p, r);
5034 if (p->fault_state) {
5036 /* Return true here, srv_pipe_hnd.c will take care */
5040 if (DEBUGLEVEL >= 10) {
5041 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncUploadPrinterDriverPackage, NDR_OUT | NDR_SET_VALUES, r);
5044 push = ndr_push_init_ctx(r);
5051 * carry over the pointer count to the reply in case we are
5052 * using full pointer. See NDR specification for full pointers
5054 push->ptr_count = pull->ptr_count;
5056 ndr_err = call->ndr_push(push, NDR_OUT, r);
5057 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5062 p->out_data.rdata = ndr_push_blob(push);
5063 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5070 static bool api_winspool_AsyncGetCorePrinterDrivers(struct pipes_struct *p)
5072 const struct ndr_interface_call *call;
5073 struct ndr_pull *pull;
5074 struct ndr_push *push;
5075 enum ndr_err_code ndr_err;
5076 struct winspool_AsyncGetCorePrinterDrivers *r;
5078 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETCOREPRINTERDRIVERS];
5080 r = talloc(talloc_tos(), struct winspool_AsyncGetCorePrinterDrivers);
5085 pull = ndr_pull_init_blob(&p->in_data.data, r);
5091 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5093 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5095 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5096 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5101 if (DEBUGLEVEL >= 10) {
5102 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetCorePrinterDrivers, NDR_IN, r);
5105 ZERO_STRUCT(r->out);
5106 r->out.pCorePrinterDrivers = talloc_zero_array(r, struct spoolss_CorePrinterDriver, r->in.cCorePrinterDrivers);
5107 if (r->out.pCorePrinterDrivers == NULL) {
5112 r->out.result = _winspool_AsyncGetCorePrinterDrivers(p, r);
5114 if (p->fault_state) {
5116 /* Return true here, srv_pipe_hnd.c will take care */
5120 if (DEBUGLEVEL >= 10) {
5121 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetCorePrinterDrivers, NDR_OUT | NDR_SET_VALUES, r);
5124 push = ndr_push_init_ctx(r);
5131 * carry over the pointer count to the reply in case we are
5132 * using full pointer. See NDR specification for full pointers
5134 push->ptr_count = pull->ptr_count;
5136 ndr_err = call->ndr_push(push, NDR_OUT, r);
5137 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5142 p->out_data.rdata = ndr_push_blob(push);
5143 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5150 static bool api_winspool_AsyncCorePrinterDriverInstalled(struct pipes_struct *p)
5152 const struct ndr_interface_call *call;
5153 struct ndr_pull *pull;
5154 struct ndr_push *push;
5155 enum ndr_err_code ndr_err;
5156 struct winspool_AsyncCorePrinterDriverInstalled *r;
5158 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCCOREPRINTERDRIVERINSTALLED];
5160 r = talloc(talloc_tos(), struct winspool_AsyncCorePrinterDriverInstalled);
5165 pull = ndr_pull_init_blob(&p->in_data.data, r);
5171 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5173 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5175 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5176 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5181 if (DEBUGLEVEL >= 10) {
5182 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCorePrinterDriverInstalled, NDR_IN, r);
5185 ZERO_STRUCT(r->out);
5186 r->out.pbDriverInstalled = talloc_zero(r, int32_t);
5187 if (r->out.pbDriverInstalled == NULL) {
5192 r->out.result = _winspool_AsyncCorePrinterDriverInstalled(p, r);
5194 if (p->fault_state) {
5196 /* Return true here, srv_pipe_hnd.c will take care */
5200 if (DEBUGLEVEL >= 10) {
5201 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCorePrinterDriverInstalled, NDR_OUT | NDR_SET_VALUES, r);
5204 push = ndr_push_init_ctx(r);
5211 * carry over the pointer count to the reply in case we are
5212 * using full pointer. See NDR specification for full pointers
5214 push->ptr_count = pull->ptr_count;
5216 ndr_err = call->ndr_push(push, NDR_OUT, r);
5217 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5222 p->out_data.rdata = ndr_push_blob(push);
5223 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5230 static bool api_winspool_AsyncGetPrinterDriverPackagePath(struct pipes_struct *p)
5232 const struct ndr_interface_call *call;
5233 struct ndr_pull *pull;
5234 struct ndr_push *push;
5235 enum ndr_err_code ndr_err;
5236 struct winspool_AsyncGetPrinterDriverPackagePath *r;
5238 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETPRINTERDRIVERPACKAGEPATH];
5240 r = talloc(talloc_tos(), struct winspool_AsyncGetPrinterDriverPackagePath);
5245 pull = ndr_pull_init_blob(&p->in_data.data, r);
5251 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5253 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5255 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5256 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5261 if (DEBUGLEVEL >= 10) {
5262 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverPackagePath, NDR_IN, r);
5265 ZERO_STRUCT(r->out);
5266 r->out.pszDriverPackageCab = r->in.pszDriverPackageCab;
5267 r->out.pcchRequiredSize = talloc_zero(r, uint32_t);
5268 if (r->out.pcchRequiredSize == NULL) {
5273 r->out.result = _winspool_AsyncGetPrinterDriverPackagePath(p, r);
5275 if (p->fault_state) {
5277 /* Return true here, srv_pipe_hnd.c will take care */
5281 if (DEBUGLEVEL >= 10) {
5282 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverPackagePath, NDR_OUT | NDR_SET_VALUES, r);
5285 push = ndr_push_init_ctx(r);
5292 * carry over the pointer count to the reply in case we are
5293 * using full pointer. See NDR specification for full pointers
5295 push->ptr_count = pull->ptr_count;
5297 ndr_err = call->ndr_push(push, NDR_OUT, r);
5298 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5303 p->out_data.rdata = ndr_push_blob(push);
5304 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5311 static bool api_winspool_AsyncDeletePrinterDriverPackage(struct pipes_struct *p)
5313 const struct ndr_interface_call *call;
5314 struct ndr_pull *pull;
5315 struct ndr_push *push;
5316 enum ndr_err_code ndr_err;
5317 struct winspool_AsyncDeletePrinterDriverPackage *r;
5319 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEPRINTERDRIVERPACKAGE];
5321 r = talloc(talloc_tos(), struct winspool_AsyncDeletePrinterDriverPackage);
5326 pull = ndr_pull_init_blob(&p->in_data.data, r);
5332 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5334 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5336 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5337 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5342 if (DEBUGLEVEL >= 10) {
5343 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverPackage, NDR_IN, r);
5346 r->out.result = _winspool_AsyncDeletePrinterDriverPackage(p, r);
5348 if (p->fault_state) {
5350 /* Return true here, srv_pipe_hnd.c will take care */
5354 if (DEBUGLEVEL >= 10) {
5355 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverPackage, NDR_OUT | NDR_SET_VALUES, r);
5358 push = ndr_push_init_ctx(r);
5365 * carry over the pointer count to the reply in case we are
5366 * using full pointer. See NDR specification for full pointers
5368 push->ptr_count = pull->ptr_count;
5370 ndr_err = call->ndr_push(push, NDR_OUT, r);
5371 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5376 p->out_data.rdata = ndr_push_blob(push);
5377 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5384 static bool api_winspool_AsyncReadPrinter(struct pipes_struct *p)
5386 const struct ndr_interface_call *call;
5387 struct ndr_pull *pull;
5388 struct ndr_push *push;
5389 enum ndr_err_code ndr_err;
5390 struct winspool_AsyncReadPrinter *r;
5392 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCREADPRINTER];
5394 r = talloc(talloc_tos(), struct winspool_AsyncReadPrinter);
5399 pull = ndr_pull_init_blob(&p->in_data.data, r);
5405 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5407 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5409 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5410 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5415 if (DEBUGLEVEL >= 10) {
5416 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncReadPrinter, NDR_IN, r);
5419 ZERO_STRUCT(r->out);
5420 r->out.pBuf = talloc_zero_array(r, uint8_t, r->in.cbBuf);
5421 if (r->out.pBuf == NULL) {
5426 r->out.pcNoBytesRead = talloc_zero(r, uint32_t);
5427 if (r->out.pcNoBytesRead == NULL) {
5432 r->out.result = _winspool_AsyncReadPrinter(p, r);
5434 if (p->fault_state) {
5436 /* Return true here, srv_pipe_hnd.c will take care */
5440 if (DEBUGLEVEL >= 10) {
5441 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncReadPrinter, NDR_OUT | NDR_SET_VALUES, r);
5444 push = ndr_push_init_ctx(r);
5451 * carry over the pointer count to the reply in case we are
5452 * using full pointer. See NDR specification for full pointers
5454 push->ptr_count = pull->ptr_count;
5456 ndr_err = call->ndr_push(push, NDR_OUT, r);
5457 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5462 p->out_data.rdata = ndr_push_blob(push);
5463 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5470 static bool api_winspool_AsyncResetPrinter(struct pipes_struct *p)
5472 const struct ndr_interface_call *call;
5473 struct ndr_pull *pull;
5474 struct ndr_push *push;
5475 enum ndr_err_code ndr_err;
5476 struct winspool_AsyncResetPrinter *r;
5478 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCRESETPRINTER];
5480 r = talloc(talloc_tos(), struct winspool_AsyncResetPrinter);
5485 pull = ndr_pull_init_blob(&p->in_data.data, r);
5491 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5493 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5495 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5496 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5501 if (DEBUGLEVEL >= 10) {
5502 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncResetPrinter, NDR_IN, r);
5505 r->out.result = _winspool_AsyncResetPrinter(p, r);
5507 if (p->fault_state) {
5509 /* Return true here, srv_pipe_hnd.c will take care */
5513 if (DEBUGLEVEL >= 10) {
5514 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncResetPrinter, NDR_OUT | NDR_SET_VALUES, r);
5517 push = ndr_push_init_ctx(r);
5524 * carry over the pointer count to the reply in case we are
5525 * using full pointer. See NDR specification for full pointers
5527 push->ptr_count = pull->ptr_count;
5529 ndr_err = call->ndr_push(push, NDR_OUT, r);
5530 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5535 p->out_data.rdata = ndr_push_blob(push);
5536 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5543 static bool api_winspool_AsyncGetJobNamedPropertyValue(struct pipes_struct *p)
5545 const struct ndr_interface_call *call;
5546 struct ndr_pull *pull;
5547 struct ndr_push *push;
5548 enum ndr_err_code ndr_err;
5549 struct winspool_AsyncGetJobNamedPropertyValue *r;
5551 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCGETJOBNAMEDPROPERTYVALUE];
5553 r = talloc(talloc_tos(), struct winspool_AsyncGetJobNamedPropertyValue);
5558 pull = ndr_pull_init_blob(&p->in_data.data, r);
5564 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5566 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5568 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5569 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5574 if (DEBUGLEVEL >= 10) {
5575 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJobNamedPropertyValue, NDR_IN, r);
5578 ZERO_STRUCT(r->out);
5579 r->out.pValue = talloc_zero(r, struct spoolss_PrintPropertyValue);
5580 if (r->out.pValue == NULL) {
5585 r->out.result = _winspool_AsyncGetJobNamedPropertyValue(p, r);
5587 if (p->fault_state) {
5589 /* Return true here, srv_pipe_hnd.c will take care */
5593 if (DEBUGLEVEL >= 10) {
5594 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJobNamedPropertyValue, NDR_OUT | NDR_SET_VALUES, r);
5597 push = ndr_push_init_ctx(r);
5604 * carry over the pointer count to the reply in case we are
5605 * using full pointer. See NDR specification for full pointers
5607 push->ptr_count = pull->ptr_count;
5609 ndr_err = call->ndr_push(push, NDR_OUT, r);
5610 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5615 p->out_data.rdata = ndr_push_blob(push);
5616 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5623 static bool api_winspool_AsyncSetJobNamedProperty(struct pipes_struct *p)
5625 const struct ndr_interface_call *call;
5626 struct ndr_pull *pull;
5627 struct ndr_push *push;
5628 enum ndr_err_code ndr_err;
5629 struct winspool_AsyncSetJobNamedProperty *r;
5631 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCSETJOBNAMEDPROPERTY];
5633 r = talloc(talloc_tos(), struct winspool_AsyncSetJobNamedProperty);
5638 pull = ndr_pull_init_blob(&p->in_data.data, r);
5644 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5646 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5648 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5649 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5654 if (DEBUGLEVEL >= 10) {
5655 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJobNamedProperty, NDR_IN, r);
5658 r->out.result = _winspool_AsyncSetJobNamedProperty(p, r);
5660 if (p->fault_state) {
5662 /* Return true here, srv_pipe_hnd.c will take care */
5666 if (DEBUGLEVEL >= 10) {
5667 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJobNamedProperty, NDR_OUT | NDR_SET_VALUES, r);
5670 push = ndr_push_init_ctx(r);
5677 * carry over the pointer count to the reply in case we are
5678 * using full pointer. See NDR specification for full pointers
5680 push->ptr_count = pull->ptr_count;
5682 ndr_err = call->ndr_push(push, NDR_OUT, r);
5683 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5688 p->out_data.rdata = ndr_push_blob(push);
5689 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5696 static bool api_winspool_AsyncDeleteJobNamedProperty(struct pipes_struct *p)
5698 const struct ndr_interface_call *call;
5699 struct ndr_pull *pull;
5700 struct ndr_push *push;
5701 enum ndr_err_code ndr_err;
5702 struct winspool_AsyncDeleteJobNamedProperty *r;
5704 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCDELETEJOBNAMEDPROPERTY];
5706 r = talloc(talloc_tos(), struct winspool_AsyncDeleteJobNamedProperty);
5711 pull = ndr_pull_init_blob(&p->in_data.data, r);
5717 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5719 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5721 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5722 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5727 if (DEBUGLEVEL >= 10) {
5728 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteJobNamedProperty, NDR_IN, r);
5731 r->out.result = _winspool_AsyncDeleteJobNamedProperty(p, r);
5733 if (p->fault_state) {
5735 /* Return true here, srv_pipe_hnd.c will take care */
5739 if (DEBUGLEVEL >= 10) {
5740 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteJobNamedProperty, NDR_OUT | NDR_SET_VALUES, r);
5743 push = ndr_push_init_ctx(r);
5750 * carry over the pointer count to the reply in case we are
5751 * using full pointer. See NDR specification for full pointers
5753 push->ptr_count = pull->ptr_count;
5755 ndr_err = call->ndr_push(push, NDR_OUT, r);
5756 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5761 p->out_data.rdata = ndr_push_blob(push);
5762 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5769 static bool api_winspool_AsyncEnumJobNamedProperties(struct pipes_struct *p)
5771 const struct ndr_interface_call *call;
5772 struct ndr_pull *pull;
5773 struct ndr_push *push;
5774 enum ndr_err_code ndr_err;
5775 struct winspool_AsyncEnumJobNamedProperties *r;
5777 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCENUMJOBNAMEDPROPERTIES];
5779 r = talloc(talloc_tos(), struct winspool_AsyncEnumJobNamedProperties);
5784 pull = ndr_pull_init_blob(&p->in_data.data, r);
5790 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5792 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5794 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5795 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5800 if (DEBUGLEVEL >= 10) {
5801 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobNamedProperties, NDR_IN, r);
5804 ZERO_STRUCT(r->out);
5805 r->out.pcProperties = talloc_zero(r, uint32_t);
5806 if (r->out.pcProperties == NULL) {
5811 r->out.ppProperties = talloc_zero(r, struct spoolss_PrintNamedProperty *);
5812 if (r->out.ppProperties == NULL) {
5817 r->out.result = _winspool_AsyncEnumJobNamedProperties(p, r);
5819 if (p->fault_state) {
5821 /* Return true here, srv_pipe_hnd.c will take care */
5825 if (DEBUGLEVEL >= 10) {
5826 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobNamedProperties, NDR_OUT | NDR_SET_VALUES, r);
5829 push = ndr_push_init_ctx(r);
5836 * carry over the pointer count to the reply in case we are
5837 * using full pointer. See NDR specification for full pointers
5839 push->ptr_count = pull->ptr_count;
5841 ndr_err = call->ndr_push(push, NDR_OUT, r);
5842 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5847 p->out_data.rdata = ndr_push_blob(push);
5848 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5855 static bool api_winspool_AsyncLogJobInfoForBranchOffice(struct pipes_struct *p)
5857 const struct ndr_interface_call *call;
5858 struct ndr_pull *pull;
5859 struct ndr_push *push;
5860 enum ndr_err_code ndr_err;
5861 struct winspool_AsyncLogJobInfoForBranchOffice *r;
5863 call = &ndr_table_iremotewinspool.calls[NDR_WINSPOOL_ASYNCLOGJOBINFOFORBRANCHOFFICE];
5865 r = talloc(talloc_tos(), struct winspool_AsyncLogJobInfoForBranchOffice);
5870 pull = ndr_pull_init_blob(&p->in_data.data, r);
5876 pull->flags |= LIBNDR_FLAG_REF_ALLOC;
5878 pull->flags |= LIBNDR_FLAG_BIGENDIAN;
5880 ndr_err = call->ndr_pull(pull, NDR_IN, r);
5881 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5886 if (DEBUGLEVEL >= 10) {
5887 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncLogJobInfoForBranchOffice, NDR_IN, r);
5890 r->out.result = _winspool_AsyncLogJobInfoForBranchOffice(p, r);
5892 if (p->fault_state) {
5894 /* Return true here, srv_pipe_hnd.c will take care */
5898 if (DEBUGLEVEL >= 10) {
5899 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncLogJobInfoForBranchOffice, NDR_OUT | NDR_SET_VALUES, r);
5902 push = ndr_push_init_ctx(r);
5909 * carry over the pointer count to the reply in case we are
5910 * using full pointer. See NDR specification for full pointers
5912 push->ptr_count = pull->ptr_count;
5914 ndr_err = call->ndr_push(push, NDR_OUT, r);
5915 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
5920 p->out_data.rdata = ndr_push_blob(push);
5921 talloc_steal(p->mem_ctx, p->out_data.rdata.data);
5930 static struct api_struct api_iremotewinspool_cmds[] =
5932 {"WINSPOOL_ASYNCOPENPRINTER", NDR_WINSPOOL_ASYNCOPENPRINTER, api_winspool_AsyncOpenPrinter},
5933 {"WINSPOOL_ASYNCADDPRINTER", NDR_WINSPOOL_ASYNCADDPRINTER, api_winspool_AsyncAddPrinter},
5934 {"WINSPOOL_ASYNCSETJOB", NDR_WINSPOOL_ASYNCSETJOB, api_winspool_AsyncSetJob},
5935 {"WINSPOOL_ASYNCGETJOB", NDR_WINSPOOL_ASYNCGETJOB, api_winspool_AsyncGetJob},
5936 {"WINSPOOL_ASYNCENUMJOBS", NDR_WINSPOOL_ASYNCENUMJOBS, api_winspool_AsyncEnumJobs},
5937 {"WINSPOOL_ASYNCADDJOB", NDR_WINSPOOL_ASYNCADDJOB, api_winspool_AsyncAddJob},
5938 {"WINSPOOL_ASYNCSCHEDULEJOB", NDR_WINSPOOL_ASYNCSCHEDULEJOB, api_winspool_AsyncScheduleJob},
5939 {"WINSPOOL_ASYNCDELETEPRINTER", NDR_WINSPOOL_ASYNCDELETEPRINTER, api_winspool_AsyncDeletePrinter},
5940 {"WINSPOOL_ASYNCSETPRINTER", NDR_WINSPOOL_ASYNCSETPRINTER, api_winspool_AsyncSetPrinter},
5941 {"WINSPOOL_ASYNCGETPRINTER", NDR_WINSPOOL_ASYNCGETPRINTER, api_winspool_AsyncGetPrinter},
5942 {"WINSPOOL_ASYNCSTARTDOCPRINTER", NDR_WINSPOOL_ASYNCSTARTDOCPRINTER, api_winspool_AsyncStartDocPrinter},
5943 {"WINSPOOL_ASYNCSTARTPAGEPRINTER", NDR_WINSPOOL_ASYNCSTARTPAGEPRINTER, api_winspool_AsyncStartPagePrinter},
5944 {"WINSPOOL_ASYNCWRITEPRINTER", NDR_WINSPOOL_ASYNCWRITEPRINTER, api_winspool_AsyncWritePrinter},
5945 {"WINSPOOL_ASYNCENDPAGEPRINTER", NDR_WINSPOOL_ASYNCENDPAGEPRINTER, api_winspool_AsyncEndPagePrinter},
5946 {"WINSPOOL_ASYNCENDDOCPRINTER", NDR_WINSPOOL_ASYNCENDDOCPRINTER, api_winspool_AsyncEndDocPrinter},
5947 {"WINSPOOL_ASYNCABORTPRINTER", NDR_WINSPOOL_ASYNCABORTPRINTER, api_winspool_AsyncAbortPrinter},
5948 {"WINSPOOL_ASYNCGETPRINTERDATA", NDR_WINSPOOL_ASYNCGETPRINTERDATA, api_winspool_AsyncGetPrinterData},
5949 {"WINSPOOL_ASYNCGETPRINTERDATAEX", NDR_WINSPOOL_ASYNCGETPRINTERDATAEX, api_winspool_AsyncGetPrinterDataEx},
5950 {"WINSPOOL_ASYNCSETPRINTERDATA", NDR_WINSPOOL_ASYNCSETPRINTERDATA, api_winspool_AsyncSetPrinterData},
5951 {"WINSPOOL_ASYNCSETPRINTERDATAEX", NDR_WINSPOOL_ASYNCSETPRINTERDATAEX, api_winspool_AsyncSetPrinterDataEx},
5952 {"WINSPOOL_ASYNCCLOSEPRINTER", NDR_WINSPOOL_ASYNCCLOSEPRINTER, api_winspool_AsyncClosePrinter},
5953 {"WINSPOOL_ASYNCADDFORM", NDR_WINSPOOL_ASYNCADDFORM, api_winspool_AsyncAddForm},
5954 {"WINSPOOL_ASYNCDELETEFORM", NDR_WINSPOOL_ASYNCDELETEFORM, api_winspool_AsyncDeleteForm},
5955 {"WINSPOOL_ASYNCGETFORM", NDR_WINSPOOL_ASYNCGETFORM, api_winspool_AsyncGetForm},
5956 {"WINSPOOL_ASYNCSETFORM", NDR_WINSPOOL_ASYNCSETFORM, api_winspool_AsyncSetForm},
5957 {"WINSPOOL_ASYNCENUMFORMS", NDR_WINSPOOL_ASYNCENUMFORMS, api_winspool_AsyncEnumForms},
5958 {"WINSPOOL_ASYNCGETPRINTERDRIVER", NDR_WINSPOOL_ASYNCGETPRINTERDRIVER, api_winspool_AsyncGetPrinterDriver},
5959 {"WINSPOOL_ASYNCENUMPRINTERDATA", NDR_WINSPOOL_ASYNCENUMPRINTERDATA, api_winspool_AsyncEnumPrinterData},
5960 {"WINSPOOL_ASYNCENUMPRINTERDATAEX", NDR_WINSPOOL_ASYNCENUMPRINTERDATAEX, api_winspool_AsyncEnumPrinterDataEx},
5961 {"WINSPOOL_ASYNCENUMPRINTERKEY", NDR_WINSPOOL_ASYNCENUMPRINTERKEY, api_winspool_AsyncEnumPrinterKey},
5962 {"WINSPOOL_ASYNCDELETEPRINTERDATA", NDR_WINSPOOL_ASYNCDELETEPRINTERDATA, api_winspool_AsyncDeletePrinterData},
5963 {"WINSPOOL_ASYNCDELETEPRINTERDATAEX", NDR_WINSPOOL_ASYNCDELETEPRINTERDATAEX, api_winspool_AsyncDeletePrinterDataEx},
5964 {"WINSPOOL_ASYNCDELETEPRINTERKEY", NDR_WINSPOOL_ASYNCDELETEPRINTERKEY, api_winspool_AsyncDeletePrinterKey},
5965 {"WINSPOOL_ASYNCXCVDATA", NDR_WINSPOOL_ASYNCXCVDATA, api_winspool_AsyncXcvData},
5966 {"WINSPOOL_ASYNCSENDRECVBIDIDATA", NDR_WINSPOOL_ASYNCSENDRECVBIDIDATA, api_winspool_AsyncSendRecvBidiData},
5967 {"WINSPOOL_ASYNCCREATEPRINTERIC", NDR_WINSPOOL_ASYNCCREATEPRINTERIC, api_winspool_AsyncCreatePrinterIC},
5968 {"WINSPOOL_ASYNCPLAYGDISCRIPTONPRINTERIC", NDR_WINSPOOL_ASYNCPLAYGDISCRIPTONPRINTERIC, api_winspool_AsyncPlayGdiScriptOnPrinterIC},
5969 {"WINSPOOL_ASYNCDELETEPRINTERIC", NDR_WINSPOOL_ASYNCDELETEPRINTERIC, api_winspool_AsyncDeletePrinterIC},
5970 {"WINSPOOL_ASYNCENUMPRINTERS", NDR_WINSPOOL_ASYNCENUMPRINTERS, api_winspool_AsyncEnumPrinters},
5971 {"WINSPOOL_ASYNCADDPRINTERDRIVER", NDR_WINSPOOL_ASYNCADDPRINTERDRIVER, api_winspool_AsyncAddPrinterDriver},
5972 {"WINSPOOL_ASYNCENUMPRINTERDRIVERS", NDR_WINSPOOL_ASYNCENUMPRINTERDRIVERS, api_winspool_AsyncEnumPrinterDrivers},
5973 {"WINSPOOL_ASYNCGETPRINTERDRIVERDIRECTORY", NDR_WINSPOOL_ASYNCGETPRINTERDRIVERDIRECTORY, api_winspool_AsyncGetPrinterDriverDirectory},
5974 {"WINSPOOL_ASYNCDELETEPRINTERDRIVER", NDR_WINSPOOL_ASYNCDELETEPRINTERDRIVER, api_winspool_AsyncDeletePrinterDriver},
5975 {"WINSPOOL_ASYNCDELETEPRINTERDRIVEREX", NDR_WINSPOOL_ASYNCDELETEPRINTERDRIVEREX, api_winspool_AsyncDeletePrinterDriverEx},
5976 {"WINSPOOL_ASYNCADDPRINTPROCESSOR", NDR_WINSPOOL_ASYNCADDPRINTPROCESSOR, api_winspool_AsyncAddPrintProcessor},
5977 {"WINSPOOL_ASYNCENUMPRINTPROCESSORS", NDR_WINSPOOL_ASYNCENUMPRINTPROCESSORS, api_winspool_AsyncEnumPrintProcessors},
5978 {"WINSPOOL_ASYNCGETPRINTPROCESSORDIRECTORY", NDR_WINSPOOL_ASYNCGETPRINTPROCESSORDIRECTORY, api_winspool_AsyncGetPrintProcessorDirectory},
5979 {"WINSPOOL_ASYNCENUMPORTS", NDR_WINSPOOL_ASYNCENUMPORTS, api_winspool_AsyncEnumPorts},
5980 {"WINSPOOL_ASYNCENUMMONITORS", NDR_WINSPOOL_ASYNCENUMMONITORS, api_winspool_AsyncEnumMonitors},
5981 {"WINSPOOL_ASYNCADDPORT", NDR_WINSPOOL_ASYNCADDPORT, api_winspool_AsyncAddPort},
5982 {"WINSPOOL_ASYNCSETPORT", NDR_WINSPOOL_ASYNCSETPORT, api_winspool_AsyncSetPort},
5983 {"WINSPOOL_ASYNCADDMONITOR", NDR_WINSPOOL_ASYNCADDMONITOR, api_winspool_AsyncAddMonitor},
5984 {"WINSPOOL_ASYNCDELETEMONITOR", NDR_WINSPOOL_ASYNCDELETEMONITOR, api_winspool_AsyncDeleteMonitor},
5985 {"WINSPOOL_ASYNCDELETEPRINTPROCESSOR", NDR_WINSPOOL_ASYNCDELETEPRINTPROCESSOR, api_winspool_AsyncDeletePrintProcessor},
5986 {"WINSPOOL_ASYNCENUMPRINTPROCESSORDATATYPES", NDR_WINSPOOL_ASYNCENUMPRINTPROCESSORDATATYPES, api_winspool_AsyncEnumPrintProcessorDatatypes},
5987 {"WINSPOOL_ASYNCADDPERMACHINECONNECTION", NDR_WINSPOOL_ASYNCADDPERMACHINECONNECTION, api_winspool_AsyncAddPerMachineConnection},
5988 {"WINSPOOL_ASYNCDELETEPERMACHINECONNECTION", NDR_WINSPOOL_ASYNCDELETEPERMACHINECONNECTION, api_winspool_AsyncDeletePerMachineConnection},
5989 {"WINSPOOL_ASYNCENUMPERMACHINECONNECTIONS", NDR_WINSPOOL_ASYNCENUMPERMACHINECONNECTIONS, api_winspool_AsyncEnumPerMachineConnections},
5990 {"WINSPOOL_SYNCREGISTERFORREMOTENOTIFICATIONS", NDR_WINSPOOL_SYNCREGISTERFORREMOTENOTIFICATIONS, api_winspool_SyncRegisterForRemoteNotifications},
5991 {"WINSPOOL_SYNCUNREGISTERFORREMOTENOTIFICATIONS", NDR_WINSPOOL_SYNCUNREGISTERFORREMOTENOTIFICATIONS, api_winspool_SyncUnRegisterForRemoteNotifications},
5992 {"WINSPOOL_SYNCREFRESHREMOTENOTIFICATIONS", NDR_WINSPOOL_SYNCREFRESHREMOTENOTIFICATIONS, api_winspool_SyncRefreshRemoteNotifications},
5993 {"WINSPOOL_ASYNCGETREMOTENOTIFICATIONS", NDR_WINSPOOL_ASYNCGETREMOTENOTIFICATIONS, api_winspool_AsyncGetRemoteNotifications},
5994 {"WINSPOOL_ASYNCINSTALLPRINTERDRIVERFROMPACKAGE", NDR_WINSPOOL_ASYNCINSTALLPRINTERDRIVERFROMPACKAGE, api_winspool_AsyncInstallPrinterDriverFromPackage},
5995 {"WINSPOOL_ASYNCUPLOADPRINTERDRIVERPACKAGE", NDR_WINSPOOL_ASYNCUPLOADPRINTERDRIVERPACKAGE, api_winspool_AsyncUploadPrinterDriverPackage},
5996 {"WINSPOOL_ASYNCGETCOREPRINTERDRIVERS", NDR_WINSPOOL_ASYNCGETCOREPRINTERDRIVERS, api_winspool_AsyncGetCorePrinterDrivers},
5997 {"WINSPOOL_ASYNCCOREPRINTERDRIVERINSTALLED", NDR_WINSPOOL_ASYNCCOREPRINTERDRIVERINSTALLED, api_winspool_AsyncCorePrinterDriverInstalled},
5998 {"WINSPOOL_ASYNCGETPRINTERDRIVERPACKAGEPATH", NDR_WINSPOOL_ASYNCGETPRINTERDRIVERPACKAGEPATH, api_winspool_AsyncGetPrinterDriverPackagePath},
5999 {"WINSPOOL_ASYNCDELETEPRINTERDRIVERPACKAGE", NDR_WINSPOOL_ASYNCDELETEPRINTERDRIVERPACKAGE, api_winspool_AsyncDeletePrinterDriverPackage},
6000 {"WINSPOOL_ASYNCREADPRINTER", NDR_WINSPOOL_ASYNCREADPRINTER, api_winspool_AsyncReadPrinter},
6001 {"WINSPOOL_ASYNCRESETPRINTER", NDR_WINSPOOL_ASYNCRESETPRINTER, api_winspool_AsyncResetPrinter},
6002 {"WINSPOOL_ASYNCGETJOBNAMEDPROPERTYVALUE", NDR_WINSPOOL_ASYNCGETJOBNAMEDPROPERTYVALUE, api_winspool_AsyncGetJobNamedPropertyValue},
6003 {"WINSPOOL_ASYNCSETJOBNAMEDPROPERTY", NDR_WINSPOOL_ASYNCSETJOBNAMEDPROPERTY, api_winspool_AsyncSetJobNamedProperty},
6004 {"WINSPOOL_ASYNCDELETEJOBNAMEDPROPERTY", NDR_WINSPOOL_ASYNCDELETEJOBNAMEDPROPERTY, api_winspool_AsyncDeleteJobNamedProperty},
6005 {"WINSPOOL_ASYNCENUMJOBNAMEDPROPERTIES", NDR_WINSPOOL_ASYNCENUMJOBNAMEDPROPERTIES, api_winspool_AsyncEnumJobNamedProperties},
6006 {"WINSPOOL_ASYNCLOGJOBINFOFORBRANCHOFFICE", NDR_WINSPOOL_ASYNCLOGJOBINFOFORBRANCHOFFICE, api_winspool_AsyncLogJobInfoForBranchOffice},
6009 const struct api_struct *iremotewinspool_get_pipe_fns(int *n_fns)
6011 *n_fns = sizeof(api_iremotewinspool_cmds) / sizeof(struct api_struct);
6012 return api_iremotewinspool_cmds;
6015 NTSTATUS rpc_iremotewinspool_init(const struct rpc_srv_callbacks *rpc_srv_cb)
6017 return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "iremotewinspool", "iremotewinspool", &ndr_table_iremotewinspool, api_iremotewinspool_cmds, sizeof(api_iremotewinspool_cmds) / sizeof(struct api_struct), rpc_srv_cb);
6020 NTSTATUS rpc_iremotewinspool_shutdown(void)
6022 return rpc_srv_unregister(&ndr_table_iremotewinspool);