2 * Unix SMB/CIFS implementation.
3 * client auto-generated by pidl. DO NOT MODIFY!
7 #include "../librpc/gen_ndr/cli_spoolss.h"
9 NTSTATUS rpccli_spoolss_EnumPrinters(struct rpc_pipe_client *cli,
11 uint32_t flags /* [in] */,
12 const char *server /* [in] [unique,charset(UTF16)] */,
13 uint32_t level /* [in] */,
14 DATA_BLOB *buffer /* [in] [unique] */,
15 uint32_t offered /* [in] */,
16 union spoolss_PrinterInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
17 uint32_t *needed /* [out] [ref] */,
18 uint32_t count /* [out] */,
21 struct spoolss_EnumPrinters r;
29 r.in.offered = offered;
31 if (DEBUGLEVEL >= 10) {
32 NDR_PRINT_IN_DEBUG(spoolss_EnumPrinters, &r);
35 status = cli->dispatch(cli,
38 NDR_SPOOLSS_ENUMPRINTERS,
41 if (!NT_STATUS_IS_OK(status)) {
45 if (DEBUGLEVEL >= 10) {
46 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrinters, &r);
49 if (NT_STATUS_IS_ERR(status)) {
53 /* Return variables */
54 if (info && r.out.info) {
55 memcpy(info, r.out.info, count * sizeof(*info));
57 *needed = *r.out.needed;
58 return NT_STATUS_NOT_SUPPORTED;
62 *werror = r.out.result;
65 return werror_to_ntstatus(r.out.result);
68 NTSTATUS rpccli_spoolss_OpenPrinter(struct rpc_pipe_client *cli,
70 const char *printername /* [in] [unique,charset(UTF16)] */,
71 const char *datatype /* [in] [unique,charset(UTF16)] */,
72 struct spoolss_DevmodeContainer devmode_ctr /* [in] */,
73 uint32_t access_mask /* [in] */,
74 struct policy_handle *handle /* [out] [ref] */,
77 struct spoolss_OpenPrinter r;
81 r.in.printername = printername;
82 r.in.datatype = datatype;
83 r.in.devmode_ctr = devmode_ctr;
84 r.in.access_mask = access_mask;
86 if (DEBUGLEVEL >= 10) {
87 NDR_PRINT_IN_DEBUG(spoolss_OpenPrinter, &r);
90 status = cli->dispatch(cli,
93 NDR_SPOOLSS_OPENPRINTER,
96 if (!NT_STATUS_IS_OK(status)) {
100 if (DEBUGLEVEL >= 10) {
101 NDR_PRINT_OUT_DEBUG(spoolss_OpenPrinter, &r);
104 if (NT_STATUS_IS_ERR(status)) {
108 /* Return variables */
109 *handle = *r.out.handle;
113 *werror = r.out.result;
116 return werror_to_ntstatus(r.out.result);
119 NTSTATUS rpccli_spoolss_SetJob(struct rpc_pipe_client *cli,
121 struct policy_handle *handle /* [in] [ref] */,
122 uint32_t job_id /* [in] */,
123 struct spoolss_JobInfoContainer *ctr /* [in] [unique] */,
124 enum spoolss_JobControl command /* [in] */,
127 struct spoolss_SetJob r;
131 r.in.handle = handle;
132 r.in.job_id = job_id;
134 r.in.command = command;
136 if (DEBUGLEVEL >= 10) {
137 NDR_PRINT_IN_DEBUG(spoolss_SetJob, &r);
140 status = cli->dispatch(cli,
146 if (!NT_STATUS_IS_OK(status)) {
150 if (DEBUGLEVEL >= 10) {
151 NDR_PRINT_OUT_DEBUG(spoolss_SetJob, &r);
154 if (NT_STATUS_IS_ERR(status)) {
158 /* Return variables */
162 *werror = r.out.result;
165 return werror_to_ntstatus(r.out.result);
168 NTSTATUS rpccli_spoolss_GetJob(struct rpc_pipe_client *cli,
170 struct policy_handle *handle /* [in] [ref] */,
171 uint32_t job_id /* [in] */,
172 uint32_t level /* [in] */,
173 DATA_BLOB *buffer /* [in] [unique] */,
174 uint32_t offered /* [in] */,
175 union spoolss_JobInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
176 uint32_t *needed /* [out] [ref] */,
179 struct spoolss_GetJob r;
183 r.in.handle = handle;
184 r.in.job_id = job_id;
186 r.in.buffer = buffer;
187 r.in.offered = offered;
189 if (DEBUGLEVEL >= 10) {
190 NDR_PRINT_IN_DEBUG(spoolss_GetJob, &r);
193 status = cli->dispatch(cli,
199 if (!NT_STATUS_IS_OK(status)) {
203 if (DEBUGLEVEL >= 10) {
204 NDR_PRINT_OUT_DEBUG(spoolss_GetJob, &r);
207 if (NT_STATUS_IS_ERR(status)) {
211 /* Return variables */
212 if (info && r.out.info) {
215 *needed = *r.out.needed;
219 *werror = r.out.result;
222 return werror_to_ntstatus(r.out.result);
225 NTSTATUS rpccli_spoolss_EnumJobs(struct rpc_pipe_client *cli,
227 struct policy_handle *handle /* [in] [ref] */,
228 uint32_t firstjob /* [in] */,
229 uint32_t numjobs /* [in] */,
230 uint32_t level /* [in] */,
231 DATA_BLOB *buffer /* [in] [unique] */,
232 uint32_t offered /* [in] */,
233 union spoolss_JobInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
234 uint32_t *needed /* [out] [ref] */,
235 uint32_t count /* [out] */,
238 struct spoolss_EnumJobs r;
242 r.in.handle = handle;
243 r.in.firstjob = firstjob;
244 r.in.numjobs = numjobs;
246 r.in.buffer = buffer;
247 r.in.offered = offered;
249 if (DEBUGLEVEL >= 10) {
250 NDR_PRINT_IN_DEBUG(spoolss_EnumJobs, &r);
253 status = cli->dispatch(cli,
256 NDR_SPOOLSS_ENUMJOBS,
259 if (!NT_STATUS_IS_OK(status)) {
263 if (DEBUGLEVEL >= 10) {
264 NDR_PRINT_OUT_DEBUG(spoolss_EnumJobs, &r);
267 if (NT_STATUS_IS_ERR(status)) {
271 /* Return variables */
272 if (info && r.out.info) {
273 memcpy(info, r.out.info, count * sizeof(*info));
275 *needed = *r.out.needed;
276 return NT_STATUS_NOT_SUPPORTED;
280 *werror = r.out.result;
283 return werror_to_ntstatus(r.out.result);
286 NTSTATUS rpccli_spoolss_AddPrinter(struct rpc_pipe_client *cli,
290 struct spoolss_AddPrinter r;
295 if (DEBUGLEVEL >= 10) {
296 NDR_PRINT_IN_DEBUG(spoolss_AddPrinter, &r);
299 status = cli->dispatch(cli,
302 NDR_SPOOLSS_ADDPRINTER,
305 if (!NT_STATUS_IS_OK(status)) {
309 if (DEBUGLEVEL >= 10) {
310 NDR_PRINT_OUT_DEBUG(spoolss_AddPrinter, &r);
313 if (NT_STATUS_IS_ERR(status)) {
317 /* Return variables */
321 *werror = r.out.result;
324 return werror_to_ntstatus(r.out.result);
327 NTSTATUS rpccli_spoolss_DeletePrinter(struct rpc_pipe_client *cli,
329 struct policy_handle *handle /* [in] [ref] */,
332 struct spoolss_DeletePrinter r;
336 r.in.handle = handle;
338 if (DEBUGLEVEL >= 10) {
339 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinter, &r);
342 status = cli->dispatch(cli,
345 NDR_SPOOLSS_DELETEPRINTER,
348 if (!NT_STATUS_IS_OK(status)) {
352 if (DEBUGLEVEL >= 10) {
353 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinter, &r);
356 if (NT_STATUS_IS_ERR(status)) {
360 /* Return variables */
364 *werror = r.out.result;
367 return werror_to_ntstatus(r.out.result);
370 NTSTATUS rpccli_spoolss_SetPrinter(struct rpc_pipe_client *cli,
372 struct policy_handle *handle /* [in] [ref] */,
373 uint32_t level /* [in] */,
374 union spoolss_SetPrinterInfo info /* [in] [switch_is(level)] */,
375 struct spoolss_DevmodeContainer devmode_ctr /* [in] */,
376 struct sec_desc_buf secdesc_ctr /* [in] */,
377 enum spoolss_PrinterControl command /* [in] */,
380 struct spoolss_SetPrinter r;
384 r.in.handle = handle;
387 r.in.devmode_ctr = devmode_ctr;
388 r.in.secdesc_ctr = secdesc_ctr;
389 r.in.command = command;
391 if (DEBUGLEVEL >= 10) {
392 NDR_PRINT_IN_DEBUG(spoolss_SetPrinter, &r);
395 status = cli->dispatch(cli,
398 NDR_SPOOLSS_SETPRINTER,
401 if (!NT_STATUS_IS_OK(status)) {
405 if (DEBUGLEVEL >= 10) {
406 NDR_PRINT_OUT_DEBUG(spoolss_SetPrinter, &r);
409 if (NT_STATUS_IS_ERR(status)) {
413 /* Return variables */
417 *werror = r.out.result;
420 return werror_to_ntstatus(r.out.result);
423 NTSTATUS rpccli_spoolss_GetPrinter(struct rpc_pipe_client *cli,
425 struct policy_handle *handle /* [in] [ref] */,
426 uint32_t level /* [in] */,
427 DATA_BLOB *buffer /* [in] [unique] */,
428 uint32_t offered /* [in] */,
429 union spoolss_PrinterInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
430 uint32_t *needed /* [out] [ref] */,
433 struct spoolss_GetPrinter r;
437 r.in.handle = handle;
439 r.in.buffer = buffer;
440 r.in.offered = offered;
442 if (DEBUGLEVEL >= 10) {
443 NDR_PRINT_IN_DEBUG(spoolss_GetPrinter, &r);
446 status = cli->dispatch(cli,
449 NDR_SPOOLSS_GETPRINTER,
452 if (!NT_STATUS_IS_OK(status)) {
456 if (DEBUGLEVEL >= 10) {
457 NDR_PRINT_OUT_DEBUG(spoolss_GetPrinter, &r);
460 if (NT_STATUS_IS_ERR(status)) {
464 /* Return variables */
465 if (info && r.out.info) {
468 *needed = *r.out.needed;
472 *werror = r.out.result;
475 return werror_to_ntstatus(r.out.result);
478 NTSTATUS rpccli_spoolss_AddPrinterDriver(struct rpc_pipe_client *cli,
480 const char *servername /* [in] [ref,charset(UTF16)] */,
481 uint32_t level /* [in] */,
482 union spoolss_AddDriverInfo info /* [in] [switch_is(level)] */,
485 struct spoolss_AddPrinterDriver r;
489 r.in.servername = servername;
493 if (DEBUGLEVEL >= 10) {
494 NDR_PRINT_IN_DEBUG(spoolss_AddPrinterDriver, &r);
497 status = cli->dispatch(cli,
500 NDR_SPOOLSS_ADDPRINTERDRIVER,
503 if (!NT_STATUS_IS_OK(status)) {
507 if (DEBUGLEVEL >= 10) {
508 NDR_PRINT_OUT_DEBUG(spoolss_AddPrinterDriver, &r);
511 if (NT_STATUS_IS_ERR(status)) {
515 /* Return variables */
519 *werror = r.out.result;
522 return werror_to_ntstatus(r.out.result);
525 NTSTATUS rpccli_spoolss_EnumPrinterDrivers(struct rpc_pipe_client *cli,
527 const char *server /* [in] [unique,charset(UTF16)] */,
528 const char *environment /* [in] [unique,charset(UTF16)] */,
529 uint32_t level /* [in] */,
530 DATA_BLOB *buffer /* [in] [unique] */,
531 uint32_t offered /* [in] */,
532 union spoolss_DriverInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
533 uint32_t *needed /* [out] [ref] */,
534 uint32_t count /* [out] */,
537 struct spoolss_EnumPrinterDrivers r;
541 r.in.server = server;
542 r.in.environment = environment;
544 r.in.buffer = buffer;
545 r.in.offered = offered;
547 if (DEBUGLEVEL >= 10) {
548 NDR_PRINT_IN_DEBUG(spoolss_EnumPrinterDrivers, &r);
551 status = cli->dispatch(cli,
554 NDR_SPOOLSS_ENUMPRINTERDRIVERS,
557 if (!NT_STATUS_IS_OK(status)) {
561 if (DEBUGLEVEL >= 10) {
562 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrinterDrivers, &r);
565 if (NT_STATUS_IS_ERR(status)) {
569 /* Return variables */
570 if (info && r.out.info) {
571 memcpy(info, r.out.info, count * sizeof(*info));
573 *needed = *r.out.needed;
574 return NT_STATUS_NOT_SUPPORTED;
578 *werror = r.out.result;
581 return werror_to_ntstatus(r.out.result);
584 NTSTATUS rpccli_spoolss_GetPrinterDriver(struct rpc_pipe_client *cli,
588 struct spoolss_GetPrinterDriver r;
593 if (DEBUGLEVEL >= 10) {
594 NDR_PRINT_IN_DEBUG(spoolss_GetPrinterDriver, &r);
597 status = cli->dispatch(cli,
600 NDR_SPOOLSS_GETPRINTERDRIVER,
603 if (!NT_STATUS_IS_OK(status)) {
607 if (DEBUGLEVEL >= 10) {
608 NDR_PRINT_OUT_DEBUG(spoolss_GetPrinterDriver, &r);
611 if (NT_STATUS_IS_ERR(status)) {
615 /* Return variables */
619 *werror = r.out.result;
622 return werror_to_ntstatus(r.out.result);
625 NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
627 const char *server /* [in] [unique,charset(UTF16)] */,
628 const char *environment /* [in] [unique,charset(UTF16)] */,
629 uint32_t level /* [in] */,
630 DATA_BLOB *buffer /* [in] [unique] */,
631 uint32_t offered /* [in] */,
632 union spoolss_DriverDirectoryInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
633 uint32_t *needed /* [out] [ref] */,
636 struct spoolss_GetPrinterDriverDirectory r;
640 r.in.server = server;
641 r.in.environment = environment;
643 r.in.buffer = buffer;
644 r.in.offered = offered;
646 if (DEBUGLEVEL >= 10) {
647 NDR_PRINT_IN_DEBUG(spoolss_GetPrinterDriverDirectory, &r);
650 status = cli->dispatch(cli,
653 NDR_SPOOLSS_GETPRINTERDRIVERDIRECTORY,
656 if (!NT_STATUS_IS_OK(status)) {
660 if (DEBUGLEVEL >= 10) {
661 NDR_PRINT_OUT_DEBUG(spoolss_GetPrinterDriverDirectory, &r);
664 if (NT_STATUS_IS_ERR(status)) {
668 /* Return variables */
669 if (info && r.out.info) {
672 *needed = *r.out.needed;
676 *werror = r.out.result;
679 return werror_to_ntstatus(r.out.result);
682 NTSTATUS rpccli_spoolss_DeletePrinterDriver(struct rpc_pipe_client *cli,
684 const char *server /* [in] [unique,charset(UTF16)] */,
685 const char *architecture /* [in] [charset(UTF16)] */,
686 const char *driver /* [in] [charset(UTF16)] */,
689 struct spoolss_DeletePrinterDriver r;
693 r.in.server = server;
694 r.in.architecture = architecture;
695 r.in.driver = driver;
697 if (DEBUGLEVEL >= 10) {
698 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterDriver, &r);
701 status = cli->dispatch(cli,
704 NDR_SPOOLSS_DELETEPRINTERDRIVER,
707 if (!NT_STATUS_IS_OK(status)) {
711 if (DEBUGLEVEL >= 10) {
712 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterDriver, &r);
715 if (NT_STATUS_IS_ERR(status)) {
719 /* Return variables */
723 *werror = r.out.result;
726 return werror_to_ntstatus(r.out.result);
729 NTSTATUS rpccli_spoolss_AddPrintProcessor(struct rpc_pipe_client *cli,
731 const char *server /* [in] [unique,charset(UTF16)] */,
732 const char *architecture /* [in] [charset(UTF16)] */,
733 const char *path_name /* [in] [charset(UTF16)] */,
734 const char *print_processor_name /* [in] [charset(UTF16)] */,
737 struct spoolss_AddPrintProcessor r;
741 r.in.server = server;
742 r.in.architecture = architecture;
743 r.in.path_name = path_name;
744 r.in.print_processor_name = print_processor_name;
746 if (DEBUGLEVEL >= 10) {
747 NDR_PRINT_IN_DEBUG(spoolss_AddPrintProcessor, &r);
750 status = cli->dispatch(cli,
753 NDR_SPOOLSS_ADDPRINTPROCESSOR,
756 if (!NT_STATUS_IS_OK(status)) {
760 if (DEBUGLEVEL >= 10) {
761 NDR_PRINT_OUT_DEBUG(spoolss_AddPrintProcessor, &r);
764 if (NT_STATUS_IS_ERR(status)) {
768 /* Return variables */
772 *werror = r.out.result;
775 return werror_to_ntstatus(r.out.result);
778 NTSTATUS rpccli_spoolss_EnumPrintProcessors(struct rpc_pipe_client *cli,
780 const char *servername /* [in] [unique,charset(UTF16)] */,
781 const char *environment /* [in] [unique,charset(UTF16)] */,
782 uint32_t level /* [in] */,
783 DATA_BLOB *buffer /* [in] [unique] */,
784 uint32_t offered /* [in] */,
785 union spoolss_PrintProcessorInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
786 uint32_t *needed /* [out] [ref] */,
787 uint32_t count /* [out] */,
790 struct spoolss_EnumPrintProcessors r;
794 r.in.servername = servername;
795 r.in.environment = environment;
797 r.in.buffer = buffer;
798 r.in.offered = offered;
800 if (DEBUGLEVEL >= 10) {
801 NDR_PRINT_IN_DEBUG(spoolss_EnumPrintProcessors, &r);
804 status = cli->dispatch(cli,
807 NDR_SPOOLSS_ENUMPRINTPROCESSORS,
810 if (!NT_STATUS_IS_OK(status)) {
814 if (DEBUGLEVEL >= 10) {
815 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrintProcessors, &r);
818 if (NT_STATUS_IS_ERR(status)) {
822 /* Return variables */
823 if (info && r.out.info) {
824 memcpy(info, r.out.info, count * sizeof(*info));
826 *needed = *r.out.needed;
827 return NT_STATUS_NOT_SUPPORTED;
831 *werror = r.out.result;
834 return werror_to_ntstatus(r.out.result);
837 NTSTATUS rpccli_spoolss_GetPrintProcessorDirectory(struct rpc_pipe_client *cli,
841 struct spoolss_GetPrintProcessorDirectory r;
846 if (DEBUGLEVEL >= 10) {
847 NDR_PRINT_IN_DEBUG(spoolss_GetPrintProcessorDirectory, &r);
850 status = cli->dispatch(cli,
853 NDR_SPOOLSS_GETPRINTPROCESSORDIRECTORY,
856 if (!NT_STATUS_IS_OK(status)) {
860 if (DEBUGLEVEL >= 10) {
861 NDR_PRINT_OUT_DEBUG(spoolss_GetPrintProcessorDirectory, &r);
864 if (NT_STATUS_IS_ERR(status)) {
868 /* Return variables */
872 *werror = r.out.result;
875 return werror_to_ntstatus(r.out.result);
878 NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
880 struct policy_handle *handle /* [in] [ref] */,
881 uint32_t level /* [in] */,
882 union spoolss_DocumentInfo info /* [in] [switch_is(level)] */,
883 uint32_t *job_id /* [out] [ref] */,
886 struct spoolss_StartDocPrinter r;
890 r.in.handle = handle;
894 if (DEBUGLEVEL >= 10) {
895 NDR_PRINT_IN_DEBUG(spoolss_StartDocPrinter, &r);
898 status = cli->dispatch(cli,
901 NDR_SPOOLSS_STARTDOCPRINTER,
904 if (!NT_STATUS_IS_OK(status)) {
908 if (DEBUGLEVEL >= 10) {
909 NDR_PRINT_OUT_DEBUG(spoolss_StartDocPrinter, &r);
912 if (NT_STATUS_IS_ERR(status)) {
916 /* Return variables */
917 *job_id = *r.out.job_id;
921 *werror = r.out.result;
924 return werror_to_ntstatus(r.out.result);
927 NTSTATUS rpccli_spoolss_StartPagePrinter(struct rpc_pipe_client *cli,
929 struct policy_handle *handle /* [in] [ref] */,
932 struct spoolss_StartPagePrinter r;
936 r.in.handle = handle;
938 if (DEBUGLEVEL >= 10) {
939 NDR_PRINT_IN_DEBUG(spoolss_StartPagePrinter, &r);
942 status = cli->dispatch(cli,
945 NDR_SPOOLSS_STARTPAGEPRINTER,
948 if (!NT_STATUS_IS_OK(status)) {
952 if (DEBUGLEVEL >= 10) {
953 NDR_PRINT_OUT_DEBUG(spoolss_StartPagePrinter, &r);
956 if (NT_STATUS_IS_ERR(status)) {
960 /* Return variables */
964 *werror = r.out.result;
967 return werror_to_ntstatus(r.out.result);
970 NTSTATUS rpccli_spoolss_WritePrinter(struct rpc_pipe_client *cli,
972 struct policy_handle *handle /* [in] [ref] */,
973 DATA_BLOB data /* [in] */,
974 uint32_t _data_size /* [in] [value(r->in.data.length)] */,
975 uint32_t *num_written /* [out] [ref] */,
978 struct spoolss_WritePrinter r;
982 r.in.handle = handle;
984 r.in._data_size = _data_size;
986 if (DEBUGLEVEL >= 10) {
987 NDR_PRINT_IN_DEBUG(spoolss_WritePrinter, &r);
990 status = cli->dispatch(cli,
993 NDR_SPOOLSS_WRITEPRINTER,
996 if (!NT_STATUS_IS_OK(status)) {
1000 if (DEBUGLEVEL >= 10) {
1001 NDR_PRINT_OUT_DEBUG(spoolss_WritePrinter, &r);
1004 if (NT_STATUS_IS_ERR(status)) {
1008 /* Return variables */
1009 *num_written = *r.out.num_written;
1013 *werror = r.out.result;
1016 return werror_to_ntstatus(r.out.result);
1019 NTSTATUS rpccli_spoolss_EndPagePrinter(struct rpc_pipe_client *cli,
1020 TALLOC_CTX *mem_ctx,
1021 struct policy_handle *handle /* [in] [ref] */,
1024 struct spoolss_EndPagePrinter r;
1028 r.in.handle = handle;
1030 if (DEBUGLEVEL >= 10) {
1031 NDR_PRINT_IN_DEBUG(spoolss_EndPagePrinter, &r);
1034 status = cli->dispatch(cli,
1037 NDR_SPOOLSS_ENDPAGEPRINTER,
1040 if (!NT_STATUS_IS_OK(status)) {
1044 if (DEBUGLEVEL >= 10) {
1045 NDR_PRINT_OUT_DEBUG(spoolss_EndPagePrinter, &r);
1048 if (NT_STATUS_IS_ERR(status)) {
1052 /* Return variables */
1056 *werror = r.out.result;
1059 return werror_to_ntstatus(r.out.result);
1062 NTSTATUS rpccli_spoolss_AbortPrinter(struct rpc_pipe_client *cli,
1063 TALLOC_CTX *mem_ctx,
1064 struct policy_handle *handle /* [in] [ref] */,
1067 struct spoolss_AbortPrinter r;
1071 r.in.handle = handle;
1073 if (DEBUGLEVEL >= 10) {
1074 NDR_PRINT_IN_DEBUG(spoolss_AbortPrinter, &r);
1077 status = cli->dispatch(cli,
1080 NDR_SPOOLSS_ABORTPRINTER,
1083 if (!NT_STATUS_IS_OK(status)) {
1087 if (DEBUGLEVEL >= 10) {
1088 NDR_PRINT_OUT_DEBUG(spoolss_AbortPrinter, &r);
1091 if (NT_STATUS_IS_ERR(status)) {
1095 /* Return variables */
1099 *werror = r.out.result;
1102 return werror_to_ntstatus(r.out.result);
1105 NTSTATUS rpccli_spoolss_ReadPrinter(struct rpc_pipe_client *cli,
1106 TALLOC_CTX *mem_ctx,
1107 struct policy_handle *handle /* [in] [ref] */,
1108 uint8_t *data /* [out] [ref,size_is(data_size)] */,
1109 uint32_t data_size /* [in] */,
1110 uint32_t *_data_size /* [out] [ref] */,
1113 struct spoolss_ReadPrinter r;
1117 r.in.handle = handle;
1118 r.in.data_size = data_size;
1120 if (DEBUGLEVEL >= 10) {
1121 NDR_PRINT_IN_DEBUG(spoolss_ReadPrinter, &r);
1124 status = cli->dispatch(cli,
1127 NDR_SPOOLSS_READPRINTER,
1130 if (!NT_STATUS_IS_OK(status)) {
1134 if (DEBUGLEVEL >= 10) {
1135 NDR_PRINT_OUT_DEBUG(spoolss_ReadPrinter, &r);
1138 if (NT_STATUS_IS_ERR(status)) {
1142 /* Return variables */
1143 memcpy(data, r.out.data, r.in.data_size * sizeof(*data));
1144 *_data_size = *r.out._data_size;
1148 *werror = r.out.result;
1151 return werror_to_ntstatus(r.out.result);
1154 NTSTATUS rpccli_spoolss_EndDocPrinter(struct rpc_pipe_client *cli,
1155 TALLOC_CTX *mem_ctx,
1156 struct policy_handle *handle /* [in] [ref] */,
1159 struct spoolss_EndDocPrinter r;
1163 r.in.handle = handle;
1165 if (DEBUGLEVEL >= 10) {
1166 NDR_PRINT_IN_DEBUG(spoolss_EndDocPrinter, &r);
1169 status = cli->dispatch(cli,
1172 NDR_SPOOLSS_ENDDOCPRINTER,
1175 if (!NT_STATUS_IS_OK(status)) {
1179 if (DEBUGLEVEL >= 10) {
1180 NDR_PRINT_OUT_DEBUG(spoolss_EndDocPrinter, &r);
1183 if (NT_STATUS_IS_ERR(status)) {
1187 /* Return variables */
1191 *werror = r.out.result;
1194 return werror_to_ntstatus(r.out.result);
1197 NTSTATUS rpccli_spoolss_AddJob(struct rpc_pipe_client *cli,
1198 TALLOC_CTX *mem_ctx,
1199 struct policy_handle *handle /* [in] [ref] */,
1200 uint32_t level /* [in] */,
1201 uint8_t *buffer /* [in,out] [unique,size_is(offered)] */,
1202 uint32_t offered /* [in] */,
1203 uint32_t *needed /* [out] [ref] */,
1206 struct spoolss_AddJob r;
1210 r.in.handle = handle;
1212 r.in.buffer = buffer;
1213 r.in.offered = offered;
1215 if (DEBUGLEVEL >= 10) {
1216 NDR_PRINT_IN_DEBUG(spoolss_AddJob, &r);
1219 status = cli->dispatch(cli,
1225 if (!NT_STATUS_IS_OK(status)) {
1229 if (DEBUGLEVEL >= 10) {
1230 NDR_PRINT_OUT_DEBUG(spoolss_AddJob, &r);
1233 if (NT_STATUS_IS_ERR(status)) {
1237 /* Return variables */
1238 if (buffer && r.out.buffer) {
1239 memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
1241 *needed = *r.out.needed;
1245 *werror = r.out.result;
1248 return werror_to_ntstatus(r.out.result);
1251 NTSTATUS rpccli_spoolss_ScheduleJob(struct rpc_pipe_client *cli,
1252 TALLOC_CTX *mem_ctx,
1253 struct policy_handle *handle /* [in] [ref] */,
1254 uint32_t jobid /* [in] */,
1257 struct spoolss_ScheduleJob r;
1261 r.in.handle = handle;
1264 if (DEBUGLEVEL >= 10) {
1265 NDR_PRINT_IN_DEBUG(spoolss_ScheduleJob, &r);
1268 status = cli->dispatch(cli,
1271 NDR_SPOOLSS_SCHEDULEJOB,
1274 if (!NT_STATUS_IS_OK(status)) {
1278 if (DEBUGLEVEL >= 10) {
1279 NDR_PRINT_OUT_DEBUG(spoolss_ScheduleJob, &r);
1282 if (NT_STATUS_IS_ERR(status)) {
1286 /* Return variables */
1290 *werror = r.out.result;
1293 return werror_to_ntstatus(r.out.result);
1296 NTSTATUS rpccli_spoolss_GetPrinterData(struct rpc_pipe_client *cli,
1297 TALLOC_CTX *mem_ctx,
1298 struct policy_handle *handle /* [in] [ref] */,
1299 const char *value_name /* [in] [charset(UTF16)] */,
1300 uint32_t offered /* [in] */,
1301 enum spoolss_PrinterDataType *type /* [out] [ref] */,
1302 union spoolss_PrinterData data /* [out] [subcontext_size(offered),subcontext(4),switch_is(*type)] */,
1303 uint32_t *needed /* [out] [ref] */,
1306 struct spoolss_GetPrinterData r;
1310 r.in.handle = handle;
1311 r.in.value_name = value_name;
1312 r.in.offered = offered;
1314 if (DEBUGLEVEL >= 10) {
1315 NDR_PRINT_IN_DEBUG(spoolss_GetPrinterData, &r);
1318 status = cli->dispatch(cli,
1321 NDR_SPOOLSS_GETPRINTERDATA,
1324 if (!NT_STATUS_IS_OK(status)) {
1328 if (DEBUGLEVEL >= 10) {
1329 NDR_PRINT_OUT_DEBUG(spoolss_GetPrinterData, &r);
1332 if (NT_STATUS_IS_ERR(status)) {
1336 /* Return variables */
1337 *type = *r.out.type;
1338 return NT_STATUS_NOT_SUPPORTED;
1339 *needed = *r.out.needed;
1343 *werror = r.out.result;
1346 return werror_to_ntstatus(r.out.result);
1349 NTSTATUS rpccli_spoolss_SetPrinterData(struct rpc_pipe_client *cli,
1350 TALLOC_CTX *mem_ctx,
1351 struct policy_handle *handle /* [in] [ref] */,
1352 const char *value_name /* [in] [charset(UTF16)] */,
1353 enum spoolss_PrinterDataType type /* [in] */,
1354 union spoolss_PrinterData data /* [in] [subcontext(4),switch_is(type)] */,
1355 uint32_t _offered /* [in] [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */,
1358 struct spoolss_SetPrinterData r;
1362 r.in.handle = handle;
1363 r.in.value_name = value_name;
1366 r.in._offered = _offered;
1368 if (DEBUGLEVEL >= 10) {
1369 NDR_PRINT_IN_DEBUG(spoolss_SetPrinterData, &r);
1372 status = cli->dispatch(cli,
1375 NDR_SPOOLSS_SETPRINTERDATA,
1378 if (!NT_STATUS_IS_OK(status)) {
1382 if (DEBUGLEVEL >= 10) {
1383 NDR_PRINT_OUT_DEBUG(spoolss_SetPrinterData, &r);
1386 if (NT_STATUS_IS_ERR(status)) {
1390 /* Return variables */
1394 *werror = r.out.result;
1397 return werror_to_ntstatus(r.out.result);
1400 NTSTATUS rpccli_spoolss_WaitForPrinterChange(struct rpc_pipe_client *cli,
1401 TALLOC_CTX *mem_ctx,
1404 struct spoolss_WaitForPrinterChange r;
1409 if (DEBUGLEVEL >= 10) {
1410 NDR_PRINT_IN_DEBUG(spoolss_WaitForPrinterChange, &r);
1413 status = cli->dispatch(cli,
1416 NDR_SPOOLSS_WAITFORPRINTERCHANGE,
1419 if (!NT_STATUS_IS_OK(status)) {
1423 if (DEBUGLEVEL >= 10) {
1424 NDR_PRINT_OUT_DEBUG(spoolss_WaitForPrinterChange, &r);
1427 if (NT_STATUS_IS_ERR(status)) {
1431 /* Return variables */
1435 *werror = r.out.result;
1438 return werror_to_ntstatus(r.out.result);
1441 NTSTATUS rpccli_spoolss_ClosePrinter(struct rpc_pipe_client *cli,
1442 TALLOC_CTX *mem_ctx,
1443 struct policy_handle *handle /* [in,out] [ref] */,
1446 struct spoolss_ClosePrinter r;
1450 r.in.handle = handle;
1452 if (DEBUGLEVEL >= 10) {
1453 NDR_PRINT_IN_DEBUG(spoolss_ClosePrinter, &r);
1456 status = cli->dispatch(cli,
1459 NDR_SPOOLSS_CLOSEPRINTER,
1462 if (!NT_STATUS_IS_OK(status)) {
1466 if (DEBUGLEVEL >= 10) {
1467 NDR_PRINT_OUT_DEBUG(spoolss_ClosePrinter, &r);
1470 if (NT_STATUS_IS_ERR(status)) {
1474 /* Return variables */
1475 *handle = *r.out.handle;
1479 *werror = r.out.result;
1482 return werror_to_ntstatus(r.out.result);
1485 NTSTATUS rpccli_spoolss_AddForm(struct rpc_pipe_client *cli,
1486 TALLOC_CTX *mem_ctx,
1487 struct policy_handle *handle /* [in] [ref] */,
1488 uint32_t level /* [in] */,
1489 union spoolss_AddFormInfo info /* [in] [switch_is(level)] */,
1492 struct spoolss_AddForm r;
1496 r.in.handle = handle;
1500 if (DEBUGLEVEL >= 10) {
1501 NDR_PRINT_IN_DEBUG(spoolss_AddForm, &r);
1504 status = cli->dispatch(cli,
1507 NDR_SPOOLSS_ADDFORM,
1510 if (!NT_STATUS_IS_OK(status)) {
1514 if (DEBUGLEVEL >= 10) {
1515 NDR_PRINT_OUT_DEBUG(spoolss_AddForm, &r);
1518 if (NT_STATUS_IS_ERR(status)) {
1522 /* Return variables */
1526 *werror = r.out.result;
1529 return werror_to_ntstatus(r.out.result);
1532 NTSTATUS rpccli_spoolss_DeleteForm(struct rpc_pipe_client *cli,
1533 TALLOC_CTX *mem_ctx,
1534 struct policy_handle *handle /* [in] [ref] */,
1535 const char *form_name /* [in] [charset(UTF16)] */,
1538 struct spoolss_DeleteForm r;
1542 r.in.handle = handle;
1543 r.in.form_name = form_name;
1545 if (DEBUGLEVEL >= 10) {
1546 NDR_PRINT_IN_DEBUG(spoolss_DeleteForm, &r);
1549 status = cli->dispatch(cli,
1552 NDR_SPOOLSS_DELETEFORM,
1555 if (!NT_STATUS_IS_OK(status)) {
1559 if (DEBUGLEVEL >= 10) {
1560 NDR_PRINT_OUT_DEBUG(spoolss_DeleteForm, &r);
1563 if (NT_STATUS_IS_ERR(status)) {
1567 /* Return variables */
1571 *werror = r.out.result;
1574 return werror_to_ntstatus(r.out.result);
1577 NTSTATUS rpccli_spoolss_GetForm(struct rpc_pipe_client *cli,
1578 TALLOC_CTX *mem_ctx,
1579 struct policy_handle *handle /* [in] [ref] */,
1580 const char *form_name /* [in] [charset(UTF16)] */,
1581 uint32_t level /* [in] */,
1582 DATA_BLOB *buffer /* [in] [unique] */,
1583 uint32_t offered /* [in] */,
1584 union spoolss_FormInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
1585 uint32_t *needed /* [out] [ref] */,
1588 struct spoolss_GetForm r;
1592 r.in.handle = handle;
1593 r.in.form_name = form_name;
1595 r.in.buffer = buffer;
1596 r.in.offered = offered;
1598 if (DEBUGLEVEL >= 10) {
1599 NDR_PRINT_IN_DEBUG(spoolss_GetForm, &r);
1602 status = cli->dispatch(cli,
1605 NDR_SPOOLSS_GETFORM,
1608 if (!NT_STATUS_IS_OK(status)) {
1612 if (DEBUGLEVEL >= 10) {
1613 NDR_PRINT_OUT_DEBUG(spoolss_GetForm, &r);
1616 if (NT_STATUS_IS_ERR(status)) {
1620 /* Return variables */
1621 if (info && r.out.info) {
1622 *info = *r.out.info;
1624 *needed = *r.out.needed;
1628 *werror = r.out.result;
1631 return werror_to_ntstatus(r.out.result);
1634 NTSTATUS rpccli_spoolss_SetForm(struct rpc_pipe_client *cli,
1635 TALLOC_CTX *mem_ctx,
1636 struct policy_handle *handle /* [in] [ref] */,
1637 const char *form_name /* [in] [charset(UTF16)] */,
1638 uint32_t level /* [in] */,
1639 union spoolss_AddFormInfo info /* [in] [switch_is(level)] */,
1642 struct spoolss_SetForm r;
1646 r.in.handle = handle;
1647 r.in.form_name = form_name;
1651 if (DEBUGLEVEL >= 10) {
1652 NDR_PRINT_IN_DEBUG(spoolss_SetForm, &r);
1655 status = cli->dispatch(cli,
1658 NDR_SPOOLSS_SETFORM,
1661 if (!NT_STATUS_IS_OK(status)) {
1665 if (DEBUGLEVEL >= 10) {
1666 NDR_PRINT_OUT_DEBUG(spoolss_SetForm, &r);
1669 if (NT_STATUS_IS_ERR(status)) {
1673 /* Return variables */
1677 *werror = r.out.result;
1680 return werror_to_ntstatus(r.out.result);
1683 NTSTATUS rpccli_spoolss_EnumForms(struct rpc_pipe_client *cli,
1684 TALLOC_CTX *mem_ctx,
1685 struct policy_handle *handle /* [in] [ref] */,
1686 uint32_t level /* [in] */,
1687 DATA_BLOB *buffer /* [in] [unique] */,
1688 uint32_t offered /* [in] */,
1689 union spoolss_FormInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
1690 uint32_t *needed /* [out] [ref] */,
1691 uint32_t count /* [out] */,
1694 struct spoolss_EnumForms r;
1698 r.in.handle = handle;
1700 r.in.buffer = buffer;
1701 r.in.offered = offered;
1703 if (DEBUGLEVEL >= 10) {
1704 NDR_PRINT_IN_DEBUG(spoolss_EnumForms, &r);
1707 status = cli->dispatch(cli,
1710 NDR_SPOOLSS_ENUMFORMS,
1713 if (!NT_STATUS_IS_OK(status)) {
1717 if (DEBUGLEVEL >= 10) {
1718 NDR_PRINT_OUT_DEBUG(spoolss_EnumForms, &r);
1721 if (NT_STATUS_IS_ERR(status)) {
1725 /* Return variables */
1726 if (info && r.out.info) {
1727 memcpy(info, r.out.info, count * sizeof(*info));
1729 *needed = *r.out.needed;
1730 return NT_STATUS_NOT_SUPPORTED;
1734 *werror = r.out.result;
1737 return werror_to_ntstatus(r.out.result);
1740 NTSTATUS rpccli_spoolss_EnumPorts(struct rpc_pipe_client *cli,
1741 TALLOC_CTX *mem_ctx,
1742 const char *servername /* [in] [unique,charset(UTF16)] */,
1743 uint32_t level /* [in] */,
1744 DATA_BLOB *buffer /* [in] [unique] */,
1745 uint32_t offered /* [in] */,
1746 union spoolss_PortInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
1747 uint32_t *needed /* [out] [ref] */,
1748 uint32_t count /* [out] */,
1751 struct spoolss_EnumPorts r;
1755 r.in.servername = servername;
1757 r.in.buffer = buffer;
1758 r.in.offered = offered;
1760 if (DEBUGLEVEL >= 10) {
1761 NDR_PRINT_IN_DEBUG(spoolss_EnumPorts, &r);
1764 status = cli->dispatch(cli,
1767 NDR_SPOOLSS_ENUMPORTS,
1770 if (!NT_STATUS_IS_OK(status)) {
1774 if (DEBUGLEVEL >= 10) {
1775 NDR_PRINT_OUT_DEBUG(spoolss_EnumPorts, &r);
1778 if (NT_STATUS_IS_ERR(status)) {
1782 /* Return variables */
1783 if (info && r.out.info) {
1784 memcpy(info, r.out.info, count * sizeof(*info));
1786 *needed = *r.out.needed;
1787 return NT_STATUS_NOT_SUPPORTED;
1791 *werror = r.out.result;
1794 return werror_to_ntstatus(r.out.result);
1797 NTSTATUS rpccli_spoolss_EnumMonitors(struct rpc_pipe_client *cli,
1798 TALLOC_CTX *mem_ctx,
1799 const char *servername /* [in] [unique,charset(UTF16)] */,
1800 uint32_t level /* [in] */,
1801 DATA_BLOB *buffer /* [in] [unique] */,
1802 uint32_t offered /* [in] */,
1803 union spoolss_MonitorInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
1804 uint32_t *needed /* [out] [ref] */,
1805 uint32_t count /* [out] */,
1808 struct spoolss_EnumMonitors r;
1812 r.in.servername = servername;
1814 r.in.buffer = buffer;
1815 r.in.offered = offered;
1817 if (DEBUGLEVEL >= 10) {
1818 NDR_PRINT_IN_DEBUG(spoolss_EnumMonitors, &r);
1821 status = cli->dispatch(cli,
1824 NDR_SPOOLSS_ENUMMONITORS,
1827 if (!NT_STATUS_IS_OK(status)) {
1831 if (DEBUGLEVEL >= 10) {
1832 NDR_PRINT_OUT_DEBUG(spoolss_EnumMonitors, &r);
1835 if (NT_STATUS_IS_ERR(status)) {
1839 /* Return variables */
1840 if (info && r.out.info) {
1841 memcpy(info, r.out.info, count * sizeof(*info));
1843 *needed = *r.out.needed;
1844 return NT_STATUS_NOT_SUPPORTED;
1848 *werror = r.out.result;
1851 return werror_to_ntstatus(r.out.result);
1854 NTSTATUS rpccli_spoolss_AddPort(struct rpc_pipe_client *cli,
1855 TALLOC_CTX *mem_ctx,
1856 const char *server_name /* [in] [unique,charset(UTF16)] */,
1857 uint32_t unknown /* [in] */,
1858 const char *monitor_name /* [in] [charset(UTF16)] */,
1861 struct spoolss_AddPort r;
1865 r.in.server_name = server_name;
1866 r.in.unknown = unknown;
1867 r.in.monitor_name = monitor_name;
1869 if (DEBUGLEVEL >= 10) {
1870 NDR_PRINT_IN_DEBUG(spoolss_AddPort, &r);
1873 status = cli->dispatch(cli,
1876 NDR_SPOOLSS_ADDPORT,
1879 if (!NT_STATUS_IS_OK(status)) {
1883 if (DEBUGLEVEL >= 10) {
1884 NDR_PRINT_OUT_DEBUG(spoolss_AddPort, &r);
1887 if (NT_STATUS_IS_ERR(status)) {
1891 /* Return variables */
1895 *werror = r.out.result;
1898 return werror_to_ntstatus(r.out.result);
1901 NTSTATUS rpccli_spoolss_ConfigurePort(struct rpc_pipe_client *cli,
1902 TALLOC_CTX *mem_ctx,
1905 struct spoolss_ConfigurePort r;
1910 if (DEBUGLEVEL >= 10) {
1911 NDR_PRINT_IN_DEBUG(spoolss_ConfigurePort, &r);
1914 status = cli->dispatch(cli,
1917 NDR_SPOOLSS_CONFIGUREPORT,
1920 if (!NT_STATUS_IS_OK(status)) {
1924 if (DEBUGLEVEL >= 10) {
1925 NDR_PRINT_OUT_DEBUG(spoolss_ConfigurePort, &r);
1928 if (NT_STATUS_IS_ERR(status)) {
1932 /* Return variables */
1936 *werror = r.out.result;
1939 return werror_to_ntstatus(r.out.result);
1942 NTSTATUS rpccli_spoolss_DeletePort(struct rpc_pipe_client *cli,
1943 TALLOC_CTX *mem_ctx,
1946 struct spoolss_DeletePort r;
1951 if (DEBUGLEVEL >= 10) {
1952 NDR_PRINT_IN_DEBUG(spoolss_DeletePort, &r);
1955 status = cli->dispatch(cli,
1958 NDR_SPOOLSS_DELETEPORT,
1961 if (!NT_STATUS_IS_OK(status)) {
1965 if (DEBUGLEVEL >= 10) {
1966 NDR_PRINT_OUT_DEBUG(spoolss_DeletePort, &r);
1969 if (NT_STATUS_IS_ERR(status)) {
1973 /* Return variables */
1977 *werror = r.out.result;
1980 return werror_to_ntstatus(r.out.result);
1983 NTSTATUS rpccli_spoolss_CreatePrinterIC(struct rpc_pipe_client *cli,
1984 TALLOC_CTX *mem_ctx,
1987 struct spoolss_CreatePrinterIC r;
1992 if (DEBUGLEVEL >= 10) {
1993 NDR_PRINT_IN_DEBUG(spoolss_CreatePrinterIC, &r);
1996 status = cli->dispatch(cli,
1999 NDR_SPOOLSS_CREATEPRINTERIC,
2002 if (!NT_STATUS_IS_OK(status)) {
2006 if (DEBUGLEVEL >= 10) {
2007 NDR_PRINT_OUT_DEBUG(spoolss_CreatePrinterIC, &r);
2010 if (NT_STATUS_IS_ERR(status)) {
2014 /* Return variables */
2018 *werror = r.out.result;
2021 return werror_to_ntstatus(r.out.result);
2024 NTSTATUS rpccli_spoolss_PlayGDIScriptOnPrinterIC(struct rpc_pipe_client *cli,
2025 TALLOC_CTX *mem_ctx,
2028 struct spoolss_PlayGDIScriptOnPrinterIC r;
2033 if (DEBUGLEVEL >= 10) {
2034 NDR_PRINT_IN_DEBUG(spoolss_PlayGDIScriptOnPrinterIC, &r);
2037 status = cli->dispatch(cli,
2040 NDR_SPOOLSS_PLAYGDISCRIPTONPRINTERIC,
2043 if (!NT_STATUS_IS_OK(status)) {
2047 if (DEBUGLEVEL >= 10) {
2048 NDR_PRINT_OUT_DEBUG(spoolss_PlayGDIScriptOnPrinterIC, &r);
2051 if (NT_STATUS_IS_ERR(status)) {
2055 /* Return variables */
2059 *werror = r.out.result;
2062 return werror_to_ntstatus(r.out.result);
2065 NTSTATUS rpccli_spoolss_DeletePrinterIC(struct rpc_pipe_client *cli,
2066 TALLOC_CTX *mem_ctx,
2069 struct spoolss_DeletePrinterIC r;
2074 if (DEBUGLEVEL >= 10) {
2075 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterIC, &r);
2078 status = cli->dispatch(cli,
2081 NDR_SPOOLSS_DELETEPRINTERIC,
2084 if (!NT_STATUS_IS_OK(status)) {
2088 if (DEBUGLEVEL >= 10) {
2089 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterIC, &r);
2092 if (NT_STATUS_IS_ERR(status)) {
2096 /* Return variables */
2100 *werror = r.out.result;
2103 return werror_to_ntstatus(r.out.result);
2106 NTSTATUS rpccli_spoolss_AddPrinterConnection(struct rpc_pipe_client *cli,
2107 TALLOC_CTX *mem_ctx,
2110 struct spoolss_AddPrinterConnection r;
2115 if (DEBUGLEVEL >= 10) {
2116 NDR_PRINT_IN_DEBUG(spoolss_AddPrinterConnection, &r);
2119 status = cli->dispatch(cli,
2122 NDR_SPOOLSS_ADDPRINTERCONNECTION,
2125 if (!NT_STATUS_IS_OK(status)) {
2129 if (DEBUGLEVEL >= 10) {
2130 NDR_PRINT_OUT_DEBUG(spoolss_AddPrinterConnection, &r);
2133 if (NT_STATUS_IS_ERR(status)) {
2137 /* Return variables */
2141 *werror = r.out.result;
2144 return werror_to_ntstatus(r.out.result);
2147 NTSTATUS rpccli_spoolss_DeletePrinterConnection(struct rpc_pipe_client *cli,
2148 TALLOC_CTX *mem_ctx,
2151 struct spoolss_DeletePrinterConnection r;
2156 if (DEBUGLEVEL >= 10) {
2157 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterConnection, &r);
2160 status = cli->dispatch(cli,
2163 NDR_SPOOLSS_DELETEPRINTERCONNECTION,
2166 if (!NT_STATUS_IS_OK(status)) {
2170 if (DEBUGLEVEL >= 10) {
2171 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterConnection, &r);
2174 if (NT_STATUS_IS_ERR(status)) {
2178 /* Return variables */
2182 *werror = r.out.result;
2185 return werror_to_ntstatus(r.out.result);
2188 NTSTATUS rpccli_spoolss_PrinterMessageBox(struct rpc_pipe_client *cli,
2189 TALLOC_CTX *mem_ctx,
2192 struct spoolss_PrinterMessageBox r;
2197 if (DEBUGLEVEL >= 10) {
2198 NDR_PRINT_IN_DEBUG(spoolss_PrinterMessageBox, &r);
2201 status = cli->dispatch(cli,
2204 NDR_SPOOLSS_PRINTERMESSAGEBOX,
2207 if (!NT_STATUS_IS_OK(status)) {
2211 if (DEBUGLEVEL >= 10) {
2212 NDR_PRINT_OUT_DEBUG(spoolss_PrinterMessageBox, &r);
2215 if (NT_STATUS_IS_ERR(status)) {
2219 /* Return variables */
2223 *werror = r.out.result;
2226 return werror_to_ntstatus(r.out.result);
2229 NTSTATUS rpccli_spoolss_AddMonitor(struct rpc_pipe_client *cli,
2230 TALLOC_CTX *mem_ctx,
2233 struct spoolss_AddMonitor r;
2238 if (DEBUGLEVEL >= 10) {
2239 NDR_PRINT_IN_DEBUG(spoolss_AddMonitor, &r);
2242 status = cli->dispatch(cli,
2245 NDR_SPOOLSS_ADDMONITOR,
2248 if (!NT_STATUS_IS_OK(status)) {
2252 if (DEBUGLEVEL >= 10) {
2253 NDR_PRINT_OUT_DEBUG(spoolss_AddMonitor, &r);
2256 if (NT_STATUS_IS_ERR(status)) {
2260 /* Return variables */
2264 *werror = r.out.result;
2267 return werror_to_ntstatus(r.out.result);
2270 NTSTATUS rpccli_spoolss_DeleteMonitor(struct rpc_pipe_client *cli,
2271 TALLOC_CTX *mem_ctx,
2274 struct spoolss_DeleteMonitor r;
2279 if (DEBUGLEVEL >= 10) {
2280 NDR_PRINT_IN_DEBUG(spoolss_DeleteMonitor, &r);
2283 status = cli->dispatch(cli,
2286 NDR_SPOOLSS_DELETEMONITOR,
2289 if (!NT_STATUS_IS_OK(status)) {
2293 if (DEBUGLEVEL >= 10) {
2294 NDR_PRINT_OUT_DEBUG(spoolss_DeleteMonitor, &r);
2297 if (NT_STATUS_IS_ERR(status)) {
2301 /* Return variables */
2305 *werror = r.out.result;
2308 return werror_to_ntstatus(r.out.result);
2311 NTSTATUS rpccli_spoolss_DeletePrintProcessor(struct rpc_pipe_client *cli,
2312 TALLOC_CTX *mem_ctx,
2315 struct spoolss_DeletePrintProcessor r;
2320 if (DEBUGLEVEL >= 10) {
2321 NDR_PRINT_IN_DEBUG(spoolss_DeletePrintProcessor, &r);
2324 status = cli->dispatch(cli,
2327 NDR_SPOOLSS_DELETEPRINTPROCESSOR,
2330 if (!NT_STATUS_IS_OK(status)) {
2334 if (DEBUGLEVEL >= 10) {
2335 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrintProcessor, &r);
2338 if (NT_STATUS_IS_ERR(status)) {
2342 /* Return variables */
2346 *werror = r.out.result;
2349 return werror_to_ntstatus(r.out.result);
2352 NTSTATUS rpccli_spoolss_AddPrintProvidor(struct rpc_pipe_client *cli,
2353 TALLOC_CTX *mem_ctx,
2356 struct spoolss_AddPrintProvidor r;
2361 if (DEBUGLEVEL >= 10) {
2362 NDR_PRINT_IN_DEBUG(spoolss_AddPrintProvidor, &r);
2365 status = cli->dispatch(cli,
2368 NDR_SPOOLSS_ADDPRINTPROVIDOR,
2371 if (!NT_STATUS_IS_OK(status)) {
2375 if (DEBUGLEVEL >= 10) {
2376 NDR_PRINT_OUT_DEBUG(spoolss_AddPrintProvidor, &r);
2379 if (NT_STATUS_IS_ERR(status)) {
2383 /* Return variables */
2387 *werror = r.out.result;
2390 return werror_to_ntstatus(r.out.result);
2393 NTSTATUS rpccli_spoolss_DeletePrintProvidor(struct rpc_pipe_client *cli,
2394 TALLOC_CTX *mem_ctx,
2397 struct spoolss_DeletePrintProvidor r;
2402 if (DEBUGLEVEL >= 10) {
2403 NDR_PRINT_IN_DEBUG(spoolss_DeletePrintProvidor, &r);
2406 status = cli->dispatch(cli,
2409 NDR_SPOOLSS_DELETEPRINTPROVIDOR,
2412 if (!NT_STATUS_IS_OK(status)) {
2416 if (DEBUGLEVEL >= 10) {
2417 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrintProvidor, &r);
2420 if (NT_STATUS_IS_ERR(status)) {
2424 /* Return variables */
2428 *werror = r.out.result;
2431 return werror_to_ntstatus(r.out.result);
2434 NTSTATUS rpccli_spoolss_EnumPrintProcDataTypes(struct rpc_pipe_client *cli,
2435 TALLOC_CTX *mem_ctx,
2438 struct spoolss_EnumPrintProcDataTypes r;
2443 if (DEBUGLEVEL >= 10) {
2444 NDR_PRINT_IN_DEBUG(spoolss_EnumPrintProcDataTypes, &r);
2447 status = cli->dispatch(cli,
2450 NDR_SPOOLSS_ENUMPRINTPROCDATATYPES,
2453 if (!NT_STATUS_IS_OK(status)) {
2457 if (DEBUGLEVEL >= 10) {
2458 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrintProcDataTypes, &r);
2461 if (NT_STATUS_IS_ERR(status)) {
2465 /* Return variables */
2469 *werror = r.out.result;
2472 return werror_to_ntstatus(r.out.result);
2475 NTSTATUS rpccli_spoolss_ResetPrinter(struct rpc_pipe_client *cli,
2476 TALLOC_CTX *mem_ctx,
2479 struct spoolss_ResetPrinter r;
2484 if (DEBUGLEVEL >= 10) {
2485 NDR_PRINT_IN_DEBUG(spoolss_ResetPrinter, &r);
2488 status = cli->dispatch(cli,
2491 NDR_SPOOLSS_RESETPRINTER,
2494 if (!NT_STATUS_IS_OK(status)) {
2498 if (DEBUGLEVEL >= 10) {
2499 NDR_PRINT_OUT_DEBUG(spoolss_ResetPrinter, &r);
2502 if (NT_STATUS_IS_ERR(status)) {
2506 /* Return variables */
2510 *werror = r.out.result;
2513 return werror_to_ntstatus(r.out.result);
2516 NTSTATUS rpccli_spoolss_GetPrinterDriver2(struct rpc_pipe_client *cli,
2517 TALLOC_CTX *mem_ctx,
2518 struct policy_handle *handle /* [in] [ref] */,
2519 const char *architecture /* [in] [unique,charset(UTF16)] */,
2520 uint32_t level /* [in] */,
2521 DATA_BLOB *buffer /* [in] [unique] */,
2522 uint32_t offered /* [in] */,
2523 uint32_t client_major_version /* [in] */,
2524 uint32_t client_minor_version /* [in] */,
2525 DATA_BLOB *info /* [out] [unique] */,
2526 uint32_t *needed /* [out] [ref] */,
2527 uint32_t *server_major_version /* [out] [ref] */,
2528 uint32_t *server_minor_version /* [out] [ref] */,
2531 struct spoolss_GetPrinterDriver2 r;
2535 r.in.handle = handle;
2536 r.in.architecture = architecture;
2538 r.in.buffer = buffer;
2539 r.in.offered = offered;
2540 r.in.client_major_version = client_major_version;
2541 r.in.client_minor_version = client_minor_version;
2543 if (DEBUGLEVEL >= 10) {
2544 NDR_PRINT_IN_DEBUG(spoolss_GetPrinterDriver2, &r);
2547 status = cli->dispatch(cli,
2550 NDR_SPOOLSS_GETPRINTERDRIVER2,
2553 if (!NT_STATUS_IS_OK(status)) {
2557 if (DEBUGLEVEL >= 10) {
2558 NDR_PRINT_OUT_DEBUG(spoolss_GetPrinterDriver2, &r);
2561 if (NT_STATUS_IS_ERR(status)) {
2565 /* Return variables */
2566 if (info && r.out.info) {
2567 *info = *r.out.info;
2569 *needed = *r.out.needed;
2570 *server_major_version = *r.out.server_major_version;
2571 *server_minor_version = *r.out.server_minor_version;
2575 *werror = r.out.result;
2578 return werror_to_ntstatus(r.out.result);
2581 NTSTATUS rpccli_spoolss_FindFirstPrinterChangeNotification(struct rpc_pipe_client *cli,
2582 TALLOC_CTX *mem_ctx,
2585 struct spoolss_FindFirstPrinterChangeNotification r;
2590 if (DEBUGLEVEL >= 10) {
2591 NDR_PRINT_IN_DEBUG(spoolss_FindFirstPrinterChangeNotification, &r);
2594 status = cli->dispatch(cli,
2597 NDR_SPOOLSS_FINDFIRSTPRINTERCHANGENOTIFICATION,
2600 if (!NT_STATUS_IS_OK(status)) {
2604 if (DEBUGLEVEL >= 10) {
2605 NDR_PRINT_OUT_DEBUG(spoolss_FindFirstPrinterChangeNotification, &r);
2608 if (NT_STATUS_IS_ERR(status)) {
2612 /* Return variables */
2616 *werror = r.out.result;
2619 return werror_to_ntstatus(r.out.result);
2622 NTSTATUS rpccli_spoolss_FindNextPrinterChangeNotification(struct rpc_pipe_client *cli,
2623 TALLOC_CTX *mem_ctx,
2626 struct spoolss_FindNextPrinterChangeNotification r;
2631 if (DEBUGLEVEL >= 10) {
2632 NDR_PRINT_IN_DEBUG(spoolss_FindNextPrinterChangeNotification, &r);
2635 status = cli->dispatch(cli,
2638 NDR_SPOOLSS_FINDNEXTPRINTERCHANGENOTIFICATION,
2641 if (!NT_STATUS_IS_OK(status)) {
2645 if (DEBUGLEVEL >= 10) {
2646 NDR_PRINT_OUT_DEBUG(spoolss_FindNextPrinterChangeNotification, &r);
2649 if (NT_STATUS_IS_ERR(status)) {
2653 /* Return variables */
2657 *werror = r.out.result;
2660 return werror_to_ntstatus(r.out.result);
2663 NTSTATUS rpccli_spoolss_FindClosePrinterNotify(struct rpc_pipe_client *cli,
2664 TALLOC_CTX *mem_ctx,
2665 struct policy_handle *handle /* [in] [ref] */,
2668 struct spoolss_FindClosePrinterNotify r;
2672 r.in.handle = handle;
2674 if (DEBUGLEVEL >= 10) {
2675 NDR_PRINT_IN_DEBUG(spoolss_FindClosePrinterNotify, &r);
2678 status = cli->dispatch(cli,
2681 NDR_SPOOLSS_FINDCLOSEPRINTERNOTIFY,
2684 if (!NT_STATUS_IS_OK(status)) {
2688 if (DEBUGLEVEL >= 10) {
2689 NDR_PRINT_OUT_DEBUG(spoolss_FindClosePrinterNotify, &r);
2692 if (NT_STATUS_IS_ERR(status)) {
2696 /* Return variables */
2700 *werror = r.out.result;
2703 return werror_to_ntstatus(r.out.result);
2706 NTSTATUS rpccli_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct rpc_pipe_client *cli,
2707 TALLOC_CTX *mem_ctx,
2710 struct spoolss_RouterFindFirstPrinterChangeNotificationOld r;
2715 if (DEBUGLEVEL >= 10) {
2716 NDR_PRINT_IN_DEBUG(spoolss_RouterFindFirstPrinterChangeNotificationOld, &r);
2719 status = cli->dispatch(cli,
2722 NDR_SPOOLSS_ROUTERFINDFIRSTPRINTERCHANGENOTIFICATIONOLD,
2725 if (!NT_STATUS_IS_OK(status)) {
2729 if (DEBUGLEVEL >= 10) {
2730 NDR_PRINT_OUT_DEBUG(spoolss_RouterFindFirstPrinterChangeNotificationOld, &r);
2733 if (NT_STATUS_IS_ERR(status)) {
2737 /* Return variables */
2741 *werror = r.out.result;
2744 return werror_to_ntstatus(r.out.result);
2747 NTSTATUS rpccli_spoolss_ReplyOpenPrinter(struct rpc_pipe_client *cli,
2748 TALLOC_CTX *mem_ctx,
2749 const char *server_name /* [in] [charset(UTF16)] */,
2750 uint32_t printer_local /* [in] */,
2751 enum winreg_Type type /* [in] */,
2752 uint32_t bufsize /* [in] [range(0,512)] */,
2753 uint8_t *buffer /* [in] [unique,size_is(bufsize)] */,
2754 struct policy_handle *handle /* [out] [ref] */,
2757 struct spoolss_ReplyOpenPrinter r;
2761 r.in.server_name = server_name;
2762 r.in.printer_local = printer_local;
2764 r.in.bufsize = bufsize;
2765 r.in.buffer = buffer;
2767 if (DEBUGLEVEL >= 10) {
2768 NDR_PRINT_IN_DEBUG(spoolss_ReplyOpenPrinter, &r);
2771 status = cli->dispatch(cli,
2774 NDR_SPOOLSS_REPLYOPENPRINTER,
2777 if (!NT_STATUS_IS_OK(status)) {
2781 if (DEBUGLEVEL >= 10) {
2782 NDR_PRINT_OUT_DEBUG(spoolss_ReplyOpenPrinter, &r);
2785 if (NT_STATUS_IS_ERR(status)) {
2789 /* Return variables */
2790 *handle = *r.out.handle;
2794 *werror = r.out.result;
2797 return werror_to_ntstatus(r.out.result);
2800 NTSTATUS rpccli_spoolss_RouterReplyPrinter(struct rpc_pipe_client *cli,
2801 TALLOC_CTX *mem_ctx,
2802 struct policy_handle *handle /* [in] [ref] */,
2803 uint32_t flags /* [in] */,
2804 uint32_t bufsize /* [in] [range(0,512)] */,
2805 uint8_t *buffer /* [in] [unique,size_is(bufsize)] */,
2808 struct spoolss_RouterReplyPrinter r;
2812 r.in.handle = handle;
2814 r.in.bufsize = bufsize;
2815 r.in.buffer = buffer;
2817 if (DEBUGLEVEL >= 10) {
2818 NDR_PRINT_IN_DEBUG(spoolss_RouterReplyPrinter, &r);
2821 status = cli->dispatch(cli,
2824 NDR_SPOOLSS_ROUTERREPLYPRINTER,
2827 if (!NT_STATUS_IS_OK(status)) {
2831 if (DEBUGLEVEL >= 10) {
2832 NDR_PRINT_OUT_DEBUG(spoolss_RouterReplyPrinter, &r);
2835 if (NT_STATUS_IS_ERR(status)) {
2839 /* Return variables */
2843 *werror = r.out.result;
2846 return werror_to_ntstatus(r.out.result);
2849 NTSTATUS rpccli_spoolss_ReplyClosePrinter(struct rpc_pipe_client *cli,
2850 TALLOC_CTX *mem_ctx,
2851 struct policy_handle *handle /* [in,out] [ref] */,
2854 struct spoolss_ReplyClosePrinter r;
2858 r.in.handle = handle;
2860 if (DEBUGLEVEL >= 10) {
2861 NDR_PRINT_IN_DEBUG(spoolss_ReplyClosePrinter, &r);
2864 status = cli->dispatch(cli,
2867 NDR_SPOOLSS_REPLYCLOSEPRINTER,
2870 if (!NT_STATUS_IS_OK(status)) {
2874 if (DEBUGLEVEL >= 10) {
2875 NDR_PRINT_OUT_DEBUG(spoolss_ReplyClosePrinter, &r);
2878 if (NT_STATUS_IS_ERR(status)) {
2882 /* Return variables */
2883 *handle = *r.out.handle;
2887 *werror = r.out.result;
2890 return werror_to_ntstatus(r.out.result);
2893 NTSTATUS rpccli_spoolss_AddPortEx(struct rpc_pipe_client *cli,
2894 TALLOC_CTX *mem_ctx,
2897 struct spoolss_AddPortEx r;
2902 if (DEBUGLEVEL >= 10) {
2903 NDR_PRINT_IN_DEBUG(spoolss_AddPortEx, &r);
2906 status = cli->dispatch(cli,
2909 NDR_SPOOLSS_ADDPORTEX,
2912 if (!NT_STATUS_IS_OK(status)) {
2916 if (DEBUGLEVEL >= 10) {
2917 NDR_PRINT_OUT_DEBUG(spoolss_AddPortEx, &r);
2920 if (NT_STATUS_IS_ERR(status)) {
2924 /* Return variables */
2928 *werror = r.out.result;
2931 return werror_to_ntstatus(r.out.result);
2934 NTSTATUS rpccli_spoolss_RouterFindFirstPrinterChangeNotification(struct rpc_pipe_client *cli,
2935 TALLOC_CTX *mem_ctx,
2938 struct spoolss_RouterFindFirstPrinterChangeNotification r;
2943 if (DEBUGLEVEL >= 10) {
2944 NDR_PRINT_IN_DEBUG(spoolss_RouterFindFirstPrinterChangeNotification, &r);
2947 status = cli->dispatch(cli,
2950 NDR_SPOOLSS_ROUTERFINDFIRSTPRINTERCHANGENOTIFICATION,
2953 if (!NT_STATUS_IS_OK(status)) {
2957 if (DEBUGLEVEL >= 10) {
2958 NDR_PRINT_OUT_DEBUG(spoolss_RouterFindFirstPrinterChangeNotification, &r);
2961 if (NT_STATUS_IS_ERR(status)) {
2965 /* Return variables */
2969 *werror = r.out.result;
2972 return werror_to_ntstatus(r.out.result);
2975 NTSTATUS rpccli_spoolss_SpoolerInit(struct rpc_pipe_client *cli,
2976 TALLOC_CTX *mem_ctx,
2979 struct spoolss_SpoolerInit r;
2984 if (DEBUGLEVEL >= 10) {
2985 NDR_PRINT_IN_DEBUG(spoolss_SpoolerInit, &r);
2988 status = cli->dispatch(cli,
2991 NDR_SPOOLSS_SPOOLERINIT,
2994 if (!NT_STATUS_IS_OK(status)) {
2998 if (DEBUGLEVEL >= 10) {
2999 NDR_PRINT_OUT_DEBUG(spoolss_SpoolerInit, &r);
3002 if (NT_STATUS_IS_ERR(status)) {
3006 /* Return variables */
3010 *werror = r.out.result;
3013 return werror_to_ntstatus(r.out.result);
3016 NTSTATUS rpccli_spoolss_ResetPrinterEx(struct rpc_pipe_client *cli,
3017 TALLOC_CTX *mem_ctx,
3020 struct spoolss_ResetPrinterEx r;
3025 if (DEBUGLEVEL >= 10) {
3026 NDR_PRINT_IN_DEBUG(spoolss_ResetPrinterEx, &r);
3029 status = cli->dispatch(cli,
3032 NDR_SPOOLSS_RESETPRINTEREX,
3035 if (!NT_STATUS_IS_OK(status)) {
3039 if (DEBUGLEVEL >= 10) {
3040 NDR_PRINT_OUT_DEBUG(spoolss_ResetPrinterEx, &r);
3043 if (NT_STATUS_IS_ERR(status)) {
3047 /* Return variables */
3051 *werror = r.out.result;
3054 return werror_to_ntstatus(r.out.result);
3057 NTSTATUS rpccli_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct rpc_pipe_client *cli,
3058 TALLOC_CTX *mem_ctx,
3059 struct policy_handle *handle /* [in] [ref] */,
3060 uint32_t flags /* [in] */,
3061 uint32_t options /* [in] */,
3062 const char *str /* [in] [unique,charset(UTF16)] */,
3063 uint32_t printer_local /* [in] */,
3064 struct spoolss_NotifyOptionsContainer *t1 /* [in] [unique] */,
3067 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx r;
3071 r.in.handle = handle;
3073 r.in.options = options;
3075 r.in.printer_local = printer_local;
3078 if (DEBUGLEVEL >= 10) {
3079 NDR_PRINT_IN_DEBUG(spoolss_RemoteFindFirstPrinterChangeNotifyEx, &r);
3082 status = cli->dispatch(cli,
3085 NDR_SPOOLSS_REMOTEFINDFIRSTPRINTERCHANGENOTIFYEX,
3088 if (!NT_STATUS_IS_OK(status)) {
3092 if (DEBUGLEVEL >= 10) {
3093 NDR_PRINT_OUT_DEBUG(spoolss_RemoteFindFirstPrinterChangeNotifyEx, &r);
3096 if (NT_STATUS_IS_ERR(status)) {
3100 /* Return variables */
3104 *werror = r.out.result;
3107 return werror_to_ntstatus(r.out.result);
3110 NTSTATUS rpccli_spoolss_RouterReplyPrinterEx(struct rpc_pipe_client *cli,
3111 TALLOC_CTX *mem_ctx,
3112 struct policy_handle *handle /* [in] [ref] */,
3113 uint32_t color /* [in] */,
3114 uint32_t flags /* [in] */,
3115 uint32_t *reply_result /* [out] [ref] */,
3116 uint32_t reply_type /* [in] */,
3117 union spoolss_ReplyPrinterInfo info /* [in] [switch_is(reply_type)] */,
3120 struct spoolss_RouterReplyPrinterEx r;
3124 r.in.handle = handle;
3127 r.in.reply_type = reply_type;
3130 if (DEBUGLEVEL >= 10) {
3131 NDR_PRINT_IN_DEBUG(spoolss_RouterReplyPrinterEx, &r);
3134 status = cli->dispatch(cli,
3137 NDR_SPOOLSS_ROUTERREPLYPRINTEREX,
3140 if (!NT_STATUS_IS_OK(status)) {
3144 if (DEBUGLEVEL >= 10) {
3145 NDR_PRINT_OUT_DEBUG(spoolss_RouterReplyPrinterEx, &r);
3148 if (NT_STATUS_IS_ERR(status)) {
3152 /* Return variables */
3153 *reply_result = *r.out.reply_result;
3157 *werror = r.out.result;
3160 return werror_to_ntstatus(r.out.result);
3163 NTSTATUS rpccli_spoolss_RouterRefreshPrinterChangeNotify(struct rpc_pipe_client *cli,
3164 TALLOC_CTX *mem_ctx,
3165 struct policy_handle *handle /* [in] [ref] */,
3166 uint32_t change_low /* [in] */,
3167 struct spoolss_NotifyOptionsContainer *container /* [in] [unique] */,
3168 struct spoolss_NotifyInfo **info /* [out] [ref] */,
3171 struct spoolss_RouterRefreshPrinterChangeNotify r;
3175 r.in.handle = handle;
3176 r.in.change_low = change_low;
3177 r.in.container = container;
3179 if (DEBUGLEVEL >= 10) {
3180 NDR_PRINT_IN_DEBUG(spoolss_RouterRefreshPrinterChangeNotify, &r);
3183 status = cli->dispatch(cli,
3186 NDR_SPOOLSS_ROUTERREFRESHPRINTERCHANGENOTIFY,
3189 if (!NT_STATUS_IS_OK(status)) {
3193 if (DEBUGLEVEL >= 10) {
3194 NDR_PRINT_OUT_DEBUG(spoolss_RouterRefreshPrinterChangeNotify, &r);
3197 if (NT_STATUS_IS_ERR(status)) {
3201 /* Return variables */
3202 *info = *r.out.info;
3206 *werror = r.out.result;
3209 return werror_to_ntstatus(r.out.result);
3212 NTSTATUS rpccli_spoolss_44(struct rpc_pipe_client *cli,
3213 TALLOC_CTX *mem_ctx,
3216 struct spoolss_44 r;
3221 if (DEBUGLEVEL >= 10) {
3222 NDR_PRINT_IN_DEBUG(spoolss_44, &r);
3225 status = cli->dispatch(cli,
3231 if (!NT_STATUS_IS_OK(status)) {
3235 if (DEBUGLEVEL >= 10) {
3236 NDR_PRINT_OUT_DEBUG(spoolss_44, &r);
3239 if (NT_STATUS_IS_ERR(status)) {
3243 /* Return variables */
3247 *werror = r.out.result;
3250 return werror_to_ntstatus(r.out.result);
3253 NTSTATUS rpccli_spoolss_OpenPrinterEx(struct rpc_pipe_client *cli,
3254 TALLOC_CTX *mem_ctx,
3255 const char *printername /* [in] [unique,charset(UTF16)] */,
3256 const char *datatype /* [in] [unique,charset(UTF16)] */,
3257 struct spoolss_DevmodeContainer devmode_ctr /* [in] */,
3258 uint32_t access_mask /* [in] */,
3259 uint32_t level /* [in] */,
3260 union spoolss_UserLevel userlevel /* [in] [switch_is(level)] */,
3261 struct policy_handle *handle /* [out] [ref] */,
3264 struct spoolss_OpenPrinterEx r;
3268 r.in.printername = printername;
3269 r.in.datatype = datatype;
3270 r.in.devmode_ctr = devmode_ctr;
3271 r.in.access_mask = access_mask;
3273 r.in.userlevel = userlevel;
3275 if (DEBUGLEVEL >= 10) {
3276 NDR_PRINT_IN_DEBUG(spoolss_OpenPrinterEx, &r);
3279 status = cli->dispatch(cli,
3282 NDR_SPOOLSS_OPENPRINTEREX,
3285 if (!NT_STATUS_IS_OK(status)) {
3289 if (DEBUGLEVEL >= 10) {
3290 NDR_PRINT_OUT_DEBUG(spoolss_OpenPrinterEx, &r);
3293 if (NT_STATUS_IS_ERR(status)) {
3297 /* Return variables */
3298 *handle = *r.out.handle;
3302 *werror = r.out.result;
3305 return werror_to_ntstatus(r.out.result);
3308 NTSTATUS rpccli_spoolss_AddPrinterEx(struct rpc_pipe_client *cli,
3309 TALLOC_CTX *mem_ctx,
3310 const char *server /* [in] [unique,charset(UTF16)] */,
3311 uint32_t level /* [in] */,
3312 union spoolss_PrinterInfo *info /* [in] [unique,switch_is(level)] */,
3313 struct spoolss_DevmodeContainer devmode_ctr /* [in] */,
3314 struct security_descriptor *secdesc /* [in] [unique] */,
3315 uint32_t ulevel /* [in] */,
3316 union spoolss_UserLevel userlevel /* [in] [switch_is(ulevel)] */,
3319 struct spoolss_AddPrinterEx r;
3323 r.in.server = server;
3326 r.in.devmode_ctr = devmode_ctr;
3327 r.in.secdesc = secdesc;
3328 r.in.ulevel = ulevel;
3329 r.in.userlevel = userlevel;
3331 if (DEBUGLEVEL >= 10) {
3332 NDR_PRINT_IN_DEBUG(spoolss_AddPrinterEx, &r);
3335 status = cli->dispatch(cli,
3338 NDR_SPOOLSS_ADDPRINTEREX,
3341 if (!NT_STATUS_IS_OK(status)) {
3345 if (DEBUGLEVEL >= 10) {
3346 NDR_PRINT_OUT_DEBUG(spoolss_AddPrinterEx, &r);
3349 if (NT_STATUS_IS_ERR(status)) {
3353 /* Return variables */
3357 *werror = r.out.result;
3360 return werror_to_ntstatus(r.out.result);
3363 NTSTATUS rpccli_spoolss_47(struct rpc_pipe_client *cli,
3364 TALLOC_CTX *mem_ctx,
3367 struct spoolss_47 r;
3372 if (DEBUGLEVEL >= 10) {
3373 NDR_PRINT_IN_DEBUG(spoolss_47, &r);
3376 status = cli->dispatch(cli,
3382 if (!NT_STATUS_IS_OK(status)) {
3386 if (DEBUGLEVEL >= 10) {
3387 NDR_PRINT_OUT_DEBUG(spoolss_47, &r);
3390 if (NT_STATUS_IS_ERR(status)) {
3394 /* Return variables */
3398 *werror = r.out.result;
3401 return werror_to_ntstatus(r.out.result);
3404 NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
3405 TALLOC_CTX *mem_ctx,
3406 struct policy_handle *handle /* [in] [ref] */,
3407 uint32_t enum_index /* [in] */,
3408 const char *value_name /* [out] [charset(UTF16),size_is(value_offered/2)] */,
3409 uint32_t value_offered /* [in] */,
3410 uint32_t *value_needed /* [out] [ref] */,
3411 uint32_t *printerdata_type /* [out] [ref] */,
3412 DATA_BLOB *buffer /* [out] [ref] */,
3413 uint32_t data_offered /* [in] */,
3414 uint32_t *data_needed /* [out] [ref] */,
3417 struct spoolss_EnumPrinterData r;
3421 r.in.handle = handle;
3422 r.in.enum_index = enum_index;
3423 r.in.value_offered = value_offered;
3424 r.in.data_offered = data_offered;
3426 if (DEBUGLEVEL >= 10) {
3427 NDR_PRINT_IN_DEBUG(spoolss_EnumPrinterData, &r);
3430 status = cli->dispatch(cli,
3433 NDR_SPOOLSS_ENUMPRINTERDATA,
3436 if (!NT_STATUS_IS_OK(status)) {
3440 if (DEBUGLEVEL >= 10) {
3441 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrinterData, &r);
3444 if (NT_STATUS_IS_ERR(status)) {
3448 /* Return variables */
3449 memcpy(CONST_DISCARD(char *, value_name), r.out.value_name, r.in.value_offered / 2 * sizeof(*value_name));
3450 *value_needed = *r.out.value_needed;
3451 *printerdata_type = *r.out.printerdata_type;
3452 *buffer = *r.out.buffer;
3453 *data_needed = *r.out.data_needed;
3457 *werror = r.out.result;
3460 return werror_to_ntstatus(r.out.result);
3463 NTSTATUS rpccli_spoolss_DeletePrinterData(struct rpc_pipe_client *cli,
3464 TALLOC_CTX *mem_ctx,
3465 struct policy_handle *handle /* [in] [ref] */,
3466 const char *value_name /* [in] [charset(UTF16)] */,
3469 struct spoolss_DeletePrinterData r;
3473 r.in.handle = handle;
3474 r.in.value_name = value_name;
3476 if (DEBUGLEVEL >= 10) {
3477 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterData, &r);
3480 status = cli->dispatch(cli,
3483 NDR_SPOOLSS_DELETEPRINTERDATA,
3486 if (!NT_STATUS_IS_OK(status)) {
3490 if (DEBUGLEVEL >= 10) {
3491 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterData, &r);
3494 if (NT_STATUS_IS_ERR(status)) {
3498 /* Return variables */
3502 *werror = r.out.result;
3505 return werror_to_ntstatus(r.out.result);
3508 NTSTATUS rpccli_spoolss_4a(struct rpc_pipe_client *cli,
3509 TALLOC_CTX *mem_ctx,
3512 struct spoolss_4a r;
3517 if (DEBUGLEVEL >= 10) {
3518 NDR_PRINT_IN_DEBUG(spoolss_4a, &r);
3521 status = cli->dispatch(cli,
3527 if (!NT_STATUS_IS_OK(status)) {
3531 if (DEBUGLEVEL >= 10) {
3532 NDR_PRINT_OUT_DEBUG(spoolss_4a, &r);
3535 if (NT_STATUS_IS_ERR(status)) {
3539 /* Return variables */
3543 *werror = r.out.result;
3546 return werror_to_ntstatus(r.out.result);
3549 NTSTATUS rpccli_spoolss_4b(struct rpc_pipe_client *cli,
3550 TALLOC_CTX *mem_ctx,
3553 struct spoolss_4b r;
3558 if (DEBUGLEVEL >= 10) {
3559 NDR_PRINT_IN_DEBUG(spoolss_4b, &r);
3562 status = cli->dispatch(cli,
3568 if (!NT_STATUS_IS_OK(status)) {
3572 if (DEBUGLEVEL >= 10) {
3573 NDR_PRINT_OUT_DEBUG(spoolss_4b, &r);
3576 if (NT_STATUS_IS_ERR(status)) {
3580 /* Return variables */
3584 *werror = r.out.result;
3587 return werror_to_ntstatus(r.out.result);
3590 NTSTATUS rpccli_spoolss_4c(struct rpc_pipe_client *cli,
3591 TALLOC_CTX *mem_ctx,
3594 struct spoolss_4c r;
3599 if (DEBUGLEVEL >= 10) {
3600 NDR_PRINT_IN_DEBUG(spoolss_4c, &r);
3603 status = cli->dispatch(cli,
3609 if (!NT_STATUS_IS_OK(status)) {
3613 if (DEBUGLEVEL >= 10) {
3614 NDR_PRINT_OUT_DEBUG(spoolss_4c, &r);
3617 if (NT_STATUS_IS_ERR(status)) {
3621 /* Return variables */
3625 *werror = r.out.result;
3628 return werror_to_ntstatus(r.out.result);
3631 NTSTATUS rpccli_spoolss_SetPrinterDataEx(struct rpc_pipe_client *cli,
3632 TALLOC_CTX *mem_ctx,
3633 struct policy_handle *handle /* [in] [ref] */,
3634 const char *key_name /* [in] [charset(UTF16)] */,
3635 const char *value_name /* [in] [charset(UTF16)] */,
3636 uint32_t type /* [in] */,
3637 DATA_BLOB buffer /* [in] */,
3638 uint32_t offered /* [in] */,
3641 struct spoolss_SetPrinterDataEx r;
3645 r.in.handle = handle;
3646 r.in.key_name = key_name;
3647 r.in.value_name = value_name;
3649 r.in.buffer = buffer;
3650 r.in.offered = offered;
3652 if (DEBUGLEVEL >= 10) {
3653 NDR_PRINT_IN_DEBUG(spoolss_SetPrinterDataEx, &r);
3656 status = cli->dispatch(cli,
3659 NDR_SPOOLSS_SETPRINTERDATAEX,
3662 if (!NT_STATUS_IS_OK(status)) {
3666 if (DEBUGLEVEL >= 10) {
3667 NDR_PRINT_OUT_DEBUG(spoolss_SetPrinterDataEx, &r);
3670 if (NT_STATUS_IS_ERR(status)) {
3674 /* Return variables */
3678 *werror = r.out.result;
3681 return werror_to_ntstatus(r.out.result);
3684 NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
3685 TALLOC_CTX *mem_ctx,
3686 struct policy_handle *handle /* [in] [ref] */,
3687 const char *key_name /* [in] [charset(UTF16)] */,
3688 const char *value_name /* [in] [charset(UTF16)] */,
3689 uint32_t *type /* [out] [ref] */,
3690 uint8_t *buffer /* [out] [ref,size_is(offered)] */,
3691 uint32_t offered /* [in] */,
3692 uint32_t *needed /* [out] [ref] */,
3695 struct spoolss_GetPrinterDataEx r;
3699 r.in.handle = handle;
3700 r.in.key_name = key_name;
3701 r.in.value_name = value_name;
3702 r.in.offered = offered;
3704 if (DEBUGLEVEL >= 10) {
3705 NDR_PRINT_IN_DEBUG(spoolss_GetPrinterDataEx, &r);
3708 status = cli->dispatch(cli,
3711 NDR_SPOOLSS_GETPRINTERDATAEX,
3714 if (!NT_STATUS_IS_OK(status)) {
3718 if (DEBUGLEVEL >= 10) {
3719 NDR_PRINT_OUT_DEBUG(spoolss_GetPrinterDataEx, &r);
3722 if (NT_STATUS_IS_ERR(status)) {
3726 /* Return variables */
3727 *type = *r.out.type;
3728 memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
3729 *needed = *r.out.needed;
3733 *werror = r.out.result;
3736 return werror_to_ntstatus(r.out.result);
3739 NTSTATUS rpccli_spoolss_EnumPrinterDataEx(struct rpc_pipe_client *cli,
3740 TALLOC_CTX *mem_ctx,
3741 struct policy_handle *handle /* [in] [ref] */,
3742 const char *key_name /* [in] [charset(UTF16)] */,
3743 uint8_t *buffer /* [out] [ref,size_is(offered)] */,
3744 uint32_t offered /* [in] */,
3745 uint32_t *needed /* [out] [ref] */,
3746 uint32_t *count /* [out] [ref] */,
3749 struct spoolss_EnumPrinterDataEx r;
3753 r.in.handle = handle;
3754 r.in.key_name = key_name;
3755 r.in.offered = offered;
3757 if (DEBUGLEVEL >= 10) {
3758 NDR_PRINT_IN_DEBUG(spoolss_EnumPrinterDataEx, &r);
3761 status = cli->dispatch(cli,
3764 NDR_SPOOLSS_ENUMPRINTERDATAEX,
3767 if (!NT_STATUS_IS_OK(status)) {
3771 if (DEBUGLEVEL >= 10) {
3772 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrinterDataEx, &r);
3775 if (NT_STATUS_IS_ERR(status)) {
3779 /* Return variables */
3780 memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
3781 *needed = *r.out.needed;
3782 *count = *r.out.count;
3786 *werror = r.out.result;
3789 return werror_to_ntstatus(r.out.result);
3792 NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
3793 TALLOC_CTX *mem_ctx,
3794 struct policy_handle *handle /* [in] [ref] */,
3795 const char *key_name /* [in] [charset(UTF16)] */,
3796 uint16_t *key_buffer /* [out] [ref,size_is(key_buffer_size/2)] */,
3797 uint32_t key_buffer_size /* [in] */,
3798 uint32_t *needed /* [out] [ref] */,
3801 struct spoolss_EnumPrinterKey r;
3805 r.in.handle = handle;
3806 r.in.key_name = key_name;
3807 r.in.key_buffer_size = key_buffer_size;
3809 if (DEBUGLEVEL >= 10) {
3810 NDR_PRINT_IN_DEBUG(spoolss_EnumPrinterKey, &r);
3813 status = cli->dispatch(cli,
3816 NDR_SPOOLSS_ENUMPRINTERKEY,
3819 if (!NT_STATUS_IS_OK(status)) {
3823 if (DEBUGLEVEL >= 10) {
3824 NDR_PRINT_OUT_DEBUG(spoolss_EnumPrinterKey, &r);
3827 if (NT_STATUS_IS_ERR(status)) {
3831 /* Return variables */
3832 memcpy(key_buffer, r.out.key_buffer, r.in.key_buffer_size / 2 * sizeof(*key_buffer));
3833 *needed = *r.out.needed;
3837 *werror = r.out.result;
3840 return werror_to_ntstatus(r.out.result);
3843 NTSTATUS rpccli_spoolss_DeletePrinterDataEx(struct rpc_pipe_client *cli,
3844 TALLOC_CTX *mem_ctx,
3845 struct policy_handle *handle /* [in] [ref] */,
3846 const char *key_name /* [in] [charset(UTF16)] */,
3847 const char *value_name /* [in] [charset(UTF16)] */,
3850 struct spoolss_DeletePrinterDataEx r;
3854 r.in.handle = handle;
3855 r.in.key_name = key_name;
3856 r.in.value_name = value_name;
3858 if (DEBUGLEVEL >= 10) {
3859 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterDataEx, &r);
3862 status = cli->dispatch(cli,
3865 NDR_SPOOLSS_DELETEPRINTERDATAEX,
3868 if (!NT_STATUS_IS_OK(status)) {
3872 if (DEBUGLEVEL >= 10) {
3873 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterDataEx, &r);
3876 if (NT_STATUS_IS_ERR(status)) {
3880 /* Return variables */
3884 *werror = r.out.result;
3887 return werror_to_ntstatus(r.out.result);
3890 NTSTATUS rpccli_spoolss_DeletePrinterKey(struct rpc_pipe_client *cli,
3891 TALLOC_CTX *mem_ctx,
3892 struct policy_handle *handle /* [in] [ref] */,
3893 const char *key_name /* [in] [charset(UTF16)] */,
3896 struct spoolss_DeletePrinterKey r;
3900 r.in.handle = handle;
3901 r.in.key_name = key_name;
3903 if (DEBUGLEVEL >= 10) {
3904 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterKey, &r);
3907 status = cli->dispatch(cli,
3910 NDR_SPOOLSS_DELETEPRINTERKEY,
3913 if (!NT_STATUS_IS_OK(status)) {
3917 if (DEBUGLEVEL >= 10) {
3918 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterKey, &r);
3921 if (NT_STATUS_IS_ERR(status)) {
3925 /* Return variables */
3929 *werror = r.out.result;
3932 return werror_to_ntstatus(r.out.result);
3935 NTSTATUS rpccli_spoolss_53(struct rpc_pipe_client *cli,
3936 TALLOC_CTX *mem_ctx,
3939 struct spoolss_53 r;
3944 if (DEBUGLEVEL >= 10) {
3945 NDR_PRINT_IN_DEBUG(spoolss_53, &r);
3948 status = cli->dispatch(cli,
3954 if (!NT_STATUS_IS_OK(status)) {
3958 if (DEBUGLEVEL >= 10) {
3959 NDR_PRINT_OUT_DEBUG(spoolss_53, &r);
3962 if (NT_STATUS_IS_ERR(status)) {
3966 /* Return variables */
3970 *werror = r.out.result;
3973 return werror_to_ntstatus(r.out.result);
3976 NTSTATUS rpccli_spoolss_DeletePrinterDriverEx(struct rpc_pipe_client *cli,
3977 TALLOC_CTX *mem_ctx,
3978 const char *server /* [in] [unique,charset(UTF16)] */,
3979 const char *architecture /* [in] [charset(UTF16)] */,
3980 const char *driver /* [in] [charset(UTF16)] */,
3981 uint32_t delete_flags /* [in] */,
3982 uint32_t version /* [in] */,
3985 struct spoolss_DeletePrinterDriverEx r;
3989 r.in.server = server;
3990 r.in.architecture = architecture;
3991 r.in.driver = driver;
3992 r.in.delete_flags = delete_flags;
3993 r.in.version = version;
3995 if (DEBUGLEVEL >= 10) {
3996 NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterDriverEx, &r);
3999 status = cli->dispatch(cli,
4002 NDR_SPOOLSS_DELETEPRINTERDRIVEREX,
4005 if (!NT_STATUS_IS_OK(status)) {
4009 if (DEBUGLEVEL >= 10) {
4010 NDR_PRINT_OUT_DEBUG(spoolss_DeletePrinterDriverEx, &r);
4013 if (NT_STATUS_IS_ERR(status)) {
4017 /* Return variables */
4021 *werror = r.out.result;
4024 return werror_to_ntstatus(r.out.result);
4027 NTSTATUS rpccli_spoolss_55(struct rpc_pipe_client *cli,
4028 TALLOC_CTX *mem_ctx,
4031 struct spoolss_55 r;
4036 if (DEBUGLEVEL >= 10) {
4037 NDR_PRINT_IN_DEBUG(spoolss_55, &r);
4040 status = cli->dispatch(cli,
4046 if (!NT_STATUS_IS_OK(status)) {
4050 if (DEBUGLEVEL >= 10) {
4051 NDR_PRINT_OUT_DEBUG(spoolss_55, &r);
4054 if (NT_STATUS_IS_ERR(status)) {
4058 /* Return variables */
4062 *werror = r.out.result;
4065 return werror_to_ntstatus(r.out.result);
4068 NTSTATUS rpccli_spoolss_56(struct rpc_pipe_client *cli,
4069 TALLOC_CTX *mem_ctx,
4072 struct spoolss_56 r;
4077 if (DEBUGLEVEL >= 10) {
4078 NDR_PRINT_IN_DEBUG(spoolss_56, &r);
4081 status = cli->dispatch(cli,
4087 if (!NT_STATUS_IS_OK(status)) {
4091 if (DEBUGLEVEL >= 10) {
4092 NDR_PRINT_OUT_DEBUG(spoolss_56, &r);
4095 if (NT_STATUS_IS_ERR(status)) {
4099 /* Return variables */
4103 *werror = r.out.result;
4106 return werror_to_ntstatus(r.out.result);
4109 NTSTATUS rpccli_spoolss_57(struct rpc_pipe_client *cli,
4110 TALLOC_CTX *mem_ctx,
4113 struct spoolss_57 r;
4118 if (DEBUGLEVEL >= 10) {
4119 NDR_PRINT_IN_DEBUG(spoolss_57, &r);
4122 status = cli->dispatch(cli,
4128 if (!NT_STATUS_IS_OK(status)) {
4132 if (DEBUGLEVEL >= 10) {
4133 NDR_PRINT_OUT_DEBUG(spoolss_57, &r);
4136 if (NT_STATUS_IS_ERR(status)) {
4140 /* Return variables */
4144 *werror = r.out.result;
4147 return werror_to_ntstatus(r.out.result);
4150 NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
4151 TALLOC_CTX *mem_ctx,
4152 struct policy_handle *handle /* [in] [ref] */,
4153 const char *function_name /* [in] [charset(UTF16)] */,
4154 DATA_BLOB in_data /* [in] */,
4155 uint32_t _in_data_length /* [in] [value(r->in.in_data.length)] */,
4156 uint8_t *out_data /* [out] [ref,size_is(out_data_size)] */,
4157 uint32_t out_data_size /* [in] */,
4158 uint32_t *needed /* [out] [ref] */,
4159 uint32_t *status_code /* [in,out] [ref] */,
4162 struct spoolss_XcvData r;
4166 r.in.handle = handle;
4167 r.in.function_name = function_name;
4168 r.in.in_data = in_data;
4169 r.in._in_data_length = _in_data_length;
4170 r.in.out_data_size = out_data_size;
4171 r.in.status_code = status_code;
4173 if (DEBUGLEVEL >= 10) {
4174 NDR_PRINT_IN_DEBUG(spoolss_XcvData, &r);
4177 status = cli->dispatch(cli,
4180 NDR_SPOOLSS_XCVDATA,
4183 if (!NT_STATUS_IS_OK(status)) {
4187 if (DEBUGLEVEL >= 10) {
4188 NDR_PRINT_OUT_DEBUG(spoolss_XcvData, &r);
4191 if (NT_STATUS_IS_ERR(status)) {
4195 /* Return variables */
4196 memcpy(out_data, r.out.out_data, r.in.out_data_size * sizeof(*out_data));
4197 *needed = *r.out.needed;
4198 *status_code = *r.out.status_code;
4202 *werror = r.out.result;
4205 return werror_to_ntstatus(r.out.result);
4208 NTSTATUS rpccli_spoolss_AddPrinterDriverEx(struct rpc_pipe_client *cli,
4209 TALLOC_CTX *mem_ctx,
4210 const char *servername /* [in] [ref,charset(UTF16)] */,
4211 uint32_t level /* [in] */,
4212 union spoolss_AddDriverInfo info /* [in] [switch_is(level)] */,
4213 uint32_t flags /* [in] */,
4216 struct spoolss_AddPrinterDriverEx r;
4220 r.in.servername = servername;
4225 if (DEBUGLEVEL >= 10) {
4226 NDR_PRINT_IN_DEBUG(spoolss_AddPrinterDriverEx, &r);
4229 status = cli->dispatch(cli,
4232 NDR_SPOOLSS_ADDPRINTERDRIVEREX,
4235 if (!NT_STATUS_IS_OK(status)) {
4239 if (DEBUGLEVEL >= 10) {
4240 NDR_PRINT_OUT_DEBUG(spoolss_AddPrinterDriverEx, &r);
4243 if (NT_STATUS_IS_ERR(status)) {
4247 /* Return variables */
4251 *werror = r.out.result;
4254 return werror_to_ntstatus(r.out.result);
4257 NTSTATUS rpccli_spoolss_5a(struct rpc_pipe_client *cli,
4258 TALLOC_CTX *mem_ctx,
4261 struct spoolss_5a r;
4266 if (DEBUGLEVEL >= 10) {
4267 NDR_PRINT_IN_DEBUG(spoolss_5a, &r);
4270 status = cli->dispatch(cli,
4276 if (!NT_STATUS_IS_OK(status)) {
4280 if (DEBUGLEVEL >= 10) {
4281 NDR_PRINT_OUT_DEBUG(spoolss_5a, &r);
4284 if (NT_STATUS_IS_ERR(status)) {
4288 /* Return variables */
4292 *werror = r.out.result;
4295 return werror_to_ntstatus(r.out.result);
4298 NTSTATUS rpccli_spoolss_5b(struct rpc_pipe_client *cli,
4299 TALLOC_CTX *mem_ctx,
4302 struct spoolss_5b r;
4307 if (DEBUGLEVEL >= 10) {
4308 NDR_PRINT_IN_DEBUG(spoolss_5b, &r);
4311 status = cli->dispatch(cli,
4317 if (!NT_STATUS_IS_OK(status)) {
4321 if (DEBUGLEVEL >= 10) {
4322 NDR_PRINT_OUT_DEBUG(spoolss_5b, &r);
4325 if (NT_STATUS_IS_ERR(status)) {
4329 /* Return variables */
4333 *werror = r.out.result;
4336 return werror_to_ntstatus(r.out.result);
4339 NTSTATUS rpccli_spoolss_5c(struct rpc_pipe_client *cli,
4340 TALLOC_CTX *mem_ctx,
4343 struct spoolss_5c r;
4348 if (DEBUGLEVEL >= 10) {
4349 NDR_PRINT_IN_DEBUG(spoolss_5c, &r);
4352 status = cli->dispatch(cli,
4358 if (!NT_STATUS_IS_OK(status)) {
4362 if (DEBUGLEVEL >= 10) {
4363 NDR_PRINT_OUT_DEBUG(spoolss_5c, &r);
4366 if (NT_STATUS_IS_ERR(status)) {
4370 /* Return variables */
4374 *werror = r.out.result;
4377 return werror_to_ntstatus(r.out.result);
4380 NTSTATUS rpccli_spoolss_5d(struct rpc_pipe_client *cli,
4381 TALLOC_CTX *mem_ctx,
4384 struct spoolss_5d r;
4389 if (DEBUGLEVEL >= 10) {
4390 NDR_PRINT_IN_DEBUG(spoolss_5d, &r);
4393 status = cli->dispatch(cli,
4399 if (!NT_STATUS_IS_OK(status)) {
4403 if (DEBUGLEVEL >= 10) {
4404 NDR_PRINT_OUT_DEBUG(spoolss_5d, &r);
4407 if (NT_STATUS_IS_ERR(status)) {
4411 /* Return variables */
4415 *werror = r.out.result;
4418 return werror_to_ntstatus(r.out.result);
4421 NTSTATUS rpccli_spoolss_5e(struct rpc_pipe_client *cli,
4422 TALLOC_CTX *mem_ctx,
4425 struct spoolss_5e r;
4430 if (DEBUGLEVEL >= 10) {
4431 NDR_PRINT_IN_DEBUG(spoolss_5e, &r);
4434 status = cli->dispatch(cli,
4440 if (!NT_STATUS_IS_OK(status)) {
4444 if (DEBUGLEVEL >= 10) {
4445 NDR_PRINT_OUT_DEBUG(spoolss_5e, &r);
4448 if (NT_STATUS_IS_ERR(status)) {
4452 /* Return variables */
4456 *werror = r.out.result;
4459 return werror_to_ntstatus(r.out.result);
4462 NTSTATUS rpccli_spoolss_5f(struct rpc_pipe_client *cli,
4463 TALLOC_CTX *mem_ctx,
4466 struct spoolss_5f r;
4471 if (DEBUGLEVEL >= 10) {
4472 NDR_PRINT_IN_DEBUG(spoolss_5f, &r);
4475 status = cli->dispatch(cli,
4481 if (!NT_STATUS_IS_OK(status)) {
4485 if (DEBUGLEVEL >= 10) {
4486 NDR_PRINT_OUT_DEBUG(spoolss_5f, &r);
4489 if (NT_STATUS_IS_ERR(status)) {
4493 /* Return variables */
4497 *werror = r.out.result;
4500 return werror_to_ntstatus(r.out.result);