s3: re-run make samba3-idl.
[Samba/ekacnet.git] / librpc / gen_ndr / ndr_spoolss.c
blob035444b2fde5aaa1ec22da5757c6845361d8c439
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Time *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 2));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
21 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
23 if (ndr_flags & NDR_BUFFERS) {
25 return NDR_ERR_SUCCESS;
28 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
30 if (ndr_flags & NDR_SCALARS) {
31 NDR_CHECK(ndr_pull_align(ndr, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
39 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
42 if (ndr_flags & NDR_BUFFERS) {
44 return NDR_ERR_SUCCESS;
47 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
49 ndr_print_struct(ndr, name, "spoolss_Time");
50 ndr->depth++;
51 ndr_print_uint16(ndr, "year", r->year);
52 ndr_print_uint16(ndr, "month", r->month);
53 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
54 ndr_print_uint16(ndr, "day", r->day);
55 ndr_print_uint16(ndr, "hour", r->hour);
56 ndr_print_uint16(ndr, "minute", r->minute);
57 ndr_print_uint16(ndr, "second", r->second);
58 ndr_print_uint16(ndr, "millisecond", r->millisecond);
59 ndr->depth--;
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
64 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
67 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
69 if (ndr_flags & NDR_SCALARS) {
70 NDR_CHECK(ndr_push_align(ndr, 5));
71 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
73 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
75 if (ndr_flags & NDR_BUFFERS) {
76 if (r->time) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
80 return NDR_ERR_SUCCESS;
83 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
85 uint32_t _ptr_time;
86 TALLOC_CTX *_mem_save_time_0;
87 if (ndr_flags & NDR_SCALARS) {
88 NDR_CHECK(ndr_pull_align(ndr, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
91 if (_ptr_time) {
92 NDR_PULL_ALLOC(ndr, r->time);
93 } else {
94 r->time = NULL;
96 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
98 if (ndr_flags & NDR_BUFFERS) {
99 if (r->time) {
100 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
101 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
106 return NDR_ERR_SUCCESS;
109 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
111 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
112 ndr->depth++;
113 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
114 ndr_print_ptr(ndr, "time", r->time);
115 ndr->depth++;
116 if (r->time) {
117 ndr_print_spoolss_Time(ndr, "time", r->time);
119 ndr->depth--;
120 ndr->depth--;
123 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
126 return NDR_ERR_SUCCESS;
129 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
131 uint16_t v;
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
133 *r = v;
134 return NDR_ERR_SUCCESS;
137 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
139 const char *val = NULL;
141 switch (r) {
142 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr, name, "ENUM", val, r);
149 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
151 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
152 return NDR_ERR_SUCCESS;
155 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
157 uint32_t v;
158 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
159 *r = v;
160 return NDR_ERR_SUCCESS;
163 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
165 const char *val = NULL;
167 switch (r) {
168 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr, name, "ENUM", val, r);
177 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
179 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
180 return NDR_ERR_SUCCESS;
183 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
185 uint32_t v;
186 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
187 *r = v;
188 return NDR_ERR_SUCCESS;
191 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
193 const char *val = NULL;
195 switch (r) {
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr, name, "ENUM", val, r);
203 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
205 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
206 return NDR_ERR_SUCCESS;
209 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
211 uint32_t v;
212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
213 *r = v;
214 return NDR_ERR_SUCCESS;
217 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
219 const char *val = NULL;
221 switch (r) {
222 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr, name, "ENUM", val, r);
231 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
234 return NDR_ERR_SUCCESS;
237 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
239 uint32_t v;
240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
241 *r = v;
242 return NDR_ERR_SUCCESS;
245 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
247 ndr_print_uint32(ndr, name, r);
248 ndr->depth++;
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
274 ndr->depth--;
277 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280 return NDR_ERR_SUCCESS;
283 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 uint32_t v;
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287 *r = v;
288 return NDR_ERR_SUCCESS;
291 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
293 ndr_print_uint32(ndr, name, r);
294 ndr->depth++;
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
308 ndr->depth--;
311 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
313 if (ndr_flags & NDR_SCALARS) {
314 NDR_CHECK(ndr_push_align(ndr, 5));
316 uint32_t _flags_save_string = ndr->flags;
317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
319 ndr->flags = _flags_save_string;
322 uint32_t _flags_save_string = ndr->flags;
323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
325 ndr->flags = _flags_save_string;
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
345 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
354 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
356 if (ndr_flags & NDR_BUFFERS) {
358 uint32_t _flags_save_string = ndr->flags;
359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
360 if (r->printername) {
361 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
363 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
365 ndr->flags = _flags_save_string;
368 uint32_t _flags_save_string = ndr->flags;
369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
370 if (r->servername) {
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
372 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
375 ndr->flags = _flags_save_string;
378 return NDR_ERR_SUCCESS;
381 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
383 uint32_t _ptr_printername;
384 TALLOC_CTX *_mem_save_printername_0;
385 uint32_t _ptr_servername;
386 TALLOC_CTX *_mem_save_servername_0;
387 if (ndr_flags & NDR_SCALARS) {
388 NDR_CHECK(ndr_pull_align(ndr, 5));
390 uint32_t _flags_save_string = ndr->flags;
391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
393 if (_ptr_printername) {
394 NDR_PULL_ALLOC(ndr, r->printername);
395 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
396 } else {
397 r->printername = NULL;
399 ndr->flags = _flags_save_string;
402 uint32_t _flags_save_string = ndr->flags;
403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
405 if (_ptr_servername) {
406 NDR_PULL_ALLOC(ndr, r->servername);
407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
408 } else {
409 r->servername = NULL;
411 ndr->flags = _flags_save_string;
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
416 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
426 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
432 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
435 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
436 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
440 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
442 if (ndr_flags & NDR_BUFFERS) {
444 uint32_t _flags_save_string = ndr->flags;
445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
446 if (r->printername) {
447 uint32_t _relative_save_offset;
448 _relative_save_offset = ndr->offset;
449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
450 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
451 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
452 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
454 if (ndr->offset > ndr->relative_highest_offset) {
455 ndr->relative_highest_offset = ndr->offset;
457 ndr->offset = _relative_save_offset;
459 ndr->flags = _flags_save_string;
462 uint32_t _flags_save_string = ndr->flags;
463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
464 if (r->servername) {
465 uint32_t _relative_save_offset;
466 _relative_save_offset = ndr->offset;
467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
468 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
469 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
472 if (ndr->offset > ndr->relative_highest_offset) {
473 ndr->relative_highest_offset = ndr->offset;
475 ndr->offset = _relative_save_offset;
477 ndr->flags = _flags_save_string;
480 return NDR_ERR_SUCCESS;
483 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
485 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
486 ndr->depth++;
487 ndr_print_ptr(ndr, "printername", r->printername);
488 ndr->depth++;
489 if (r->printername) {
490 ndr_print_string(ndr, "printername", r->printername);
492 ndr->depth--;
493 ndr_print_ptr(ndr, "servername", r->servername);
494 ndr->depth++;
495 if (r->servername) {
496 ndr_print_string(ndr, "servername", r->servername);
498 ndr->depth--;
499 ndr_print_uint32(ndr, "cjobs", r->cjobs);
500 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
501 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
502 ndr_print_spoolss_Time(ndr, "time", &r->time);
503 ndr_print_uint32(ndr, "global_counter", r->global_counter);
504 ndr_print_uint32(ndr, "total_pages", r->total_pages);
505 ndr_print_uint32(ndr, "version", r->version);
506 ndr_print_uint32(ndr, "free_build", r->free_build);
507 ndr_print_uint32(ndr, "spooling", r->spooling);
508 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
509 ndr_print_uint32(ndr, "session_counter", r->session_counter);
510 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
511 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
512 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
513 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
514 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
515 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
516 ndr_print_uint32(ndr, "change_id", r->change_id);
517 ndr_print_WERROR(ndr, "last_error", r->last_error);
518 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
519 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
520 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
521 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
522 ndr_print_uint16(ndr, "processor_level", r->processor_level);
523 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
524 ndr_print_uint32(ndr, "reserved2", r->reserved2);
525 ndr_print_uint32(ndr, "reserved3", r->reserved3);
526 ndr->depth--;
529 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
531 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
534 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
537 return NDR_ERR_SUCCESS;
540 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
542 uint32_t v;
543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
544 *r = v;
545 return NDR_ERR_SUCCESS;
548 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
550 ndr_print_uint32(ndr, name, r);
551 ndr->depth++;
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
580 ndr->depth--;
583 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
585 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
586 return NDR_ERR_SUCCESS;
589 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
591 uint16_t v;
592 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
593 *r = v;
594 return NDR_ERR_SUCCESS;
597 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
599 const char *val = NULL;
601 switch (r) {
602 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
603 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
604 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
606 ndr_print_enum(ndr, name, "ENUM", val, r);
609 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
611 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
612 return NDR_ERR_SUCCESS;
615 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
617 uint16_t v;
618 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
619 *r = v;
620 return NDR_ERR_SUCCESS;
623 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
625 const char *val = NULL;
627 switch (r) {
628 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
629 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
631 ndr_print_enum(ndr, name, "ENUM", val, r);
634 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
636 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
637 return NDR_ERR_SUCCESS;
640 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
642 uint16_t v;
643 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
644 *r = v;
645 return NDR_ERR_SUCCESS;
648 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
650 const char *val = NULL;
652 switch (r) {
653 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
654 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
655 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
656 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
657 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
658 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
659 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
660 case DMPAPER_A3: val = "DMPAPER_A3"; break;
661 case DMPAPER_A4: val = "DMPAPER_A4"; break;
662 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
663 case DMPAPER_A5: val = "DMPAPER_A5"; break;
664 case DMPAPER_B4: val = "DMPAPER_B4"; break;
665 case DMPAPER_B5: val = "DMPAPER_B5"; break;
666 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
667 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
668 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
669 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
670 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
671 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
672 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
673 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
674 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
675 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
676 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
677 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
678 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
679 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
680 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
681 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
682 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
683 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
684 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
685 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
686 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
687 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
688 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
689 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
690 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
691 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
692 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
693 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
694 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
695 case DMPAPER_A6: val = "DMPAPER_A6"; break;
696 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
697 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
698 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
699 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
700 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
701 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
702 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
703 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
704 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
705 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
706 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
707 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
708 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
709 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
710 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
711 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
712 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
713 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
714 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
715 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
716 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
717 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
718 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
719 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
720 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
721 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
722 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
723 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
724 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
725 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
726 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
727 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
728 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
729 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
730 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
731 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
732 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
733 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
734 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
735 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
736 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
737 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
738 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
739 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
740 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
741 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
742 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
743 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
745 ndr_print_enum(ndr, name, "ENUM", val, r);
748 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
750 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
751 return NDR_ERR_SUCCESS;
754 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
756 uint16_t v;
757 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
758 *r = v;
759 return NDR_ERR_SUCCESS;
762 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
764 const char *val = NULL;
766 switch (r) {
767 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
768 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
769 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
770 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
771 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
772 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
773 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
774 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
775 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
776 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
777 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
778 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
779 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
781 ndr_print_enum(ndr, name, "ENUM", val, r);
784 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
786 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
787 return NDR_ERR_SUCCESS;
790 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
792 uint16_t v;
793 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
794 *r = v;
795 return NDR_ERR_SUCCESS;
798 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
800 const char *val = NULL;
802 switch (r) {
803 case DMRES_HIGH: val = "DMRES_HIGH"; break;
804 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
805 case DMRES_LOW: val = "DMRES_LOW"; break;
806 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
808 ndr_print_enum(ndr, name, "ENUM", val, r);
811 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
813 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
814 return NDR_ERR_SUCCESS;
817 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
819 uint16_t v;
820 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
821 *r = v;
822 return NDR_ERR_SUCCESS;
825 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
827 const char *val = NULL;
829 switch (r) {
830 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
831 case DMRES_COLOR: val = "DMRES_COLOR"; break;
833 ndr_print_enum(ndr, name, "ENUM", val, r);
836 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
838 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
839 return NDR_ERR_SUCCESS;
842 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
844 uint16_t v;
845 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
846 *r = v;
847 return NDR_ERR_SUCCESS;
850 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
852 const char *val = NULL;
854 switch (r) {
855 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
856 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
857 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
859 ndr_print_enum(ndr, name, "ENUM", val, r);
862 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
864 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
865 return NDR_ERR_SUCCESS;
868 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
870 uint16_t v;
871 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
872 *r = v;
873 return NDR_ERR_SUCCESS;
876 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
878 const char *val = NULL;
880 switch (r) {
881 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
882 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
883 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
884 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
886 ndr_print_enum(ndr, name, "ENUM", val, r);
889 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
891 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
892 return NDR_ERR_SUCCESS;
895 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
897 uint16_t v;
898 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
899 *r = v;
900 return NDR_ERR_SUCCESS;
903 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
905 const char *val = NULL;
907 switch (r) {
908 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
909 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
911 ndr_print_enum(ndr, name, "ENUM", val, r);
914 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
916 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
917 return NDR_ERR_SUCCESS;
920 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
922 uint32_t v;
923 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
924 *r = v;
925 return NDR_ERR_SUCCESS;
928 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
930 const char *val = NULL;
932 switch (r) {
933 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
934 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
936 ndr_print_enum(ndr, name, "ENUM", val, r);
939 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
941 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
942 return NDR_ERR_SUCCESS;
945 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
947 uint32_t v;
948 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
949 *r = v;
950 return NDR_ERR_SUCCESS;
953 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
955 const char *val = NULL;
957 switch (r) {
958 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
959 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
960 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
961 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
963 ndr_print_enum(ndr, name, "ENUM", val, r);
966 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
968 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
969 return NDR_ERR_SUCCESS;
972 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
974 uint32_t v;
975 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
976 *r = v;
977 return NDR_ERR_SUCCESS;
980 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
982 const char *val = NULL;
984 switch (r) {
985 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
986 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
987 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
988 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
990 ndr_print_enum(ndr, name, "ENUM", val, r);
993 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
995 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
996 return NDR_ERR_SUCCESS;
999 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1001 uint32_t v;
1002 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1003 *r = v;
1004 return NDR_ERR_SUCCESS;
1007 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1009 const char *val = NULL;
1011 switch (r) {
1012 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1013 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1014 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1016 ndr_print_enum(ndr, name, "ENUM", val, r);
1019 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1021 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1022 return NDR_ERR_SUCCESS;
1025 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1027 uint32_t v;
1028 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1029 *r = v;
1030 return NDR_ERR_SUCCESS;
1033 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1035 const char *val = NULL;
1037 switch (r) {
1038 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1039 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1040 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1041 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1042 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1043 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1044 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1045 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1046 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1047 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1049 ndr_print_enum(ndr, name, "ENUM", val, r);
1052 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1054 if (ndr_flags & NDR_SCALARS) {
1055 NDR_CHECK(ndr_push_align(ndr, 4));
1056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1057 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1059 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1060 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1066 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1067 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1070 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1072 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1073 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1075 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1076 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1080 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1082 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1083 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1084 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1085 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1091 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1094 struct ndr_push *_ndr_driverextra_data;
1095 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1096 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1097 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1099 ndr->flags = _flags_save_DATA_BLOB;
1101 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1103 if (ndr_flags & NDR_BUFFERS) {
1105 return NDR_ERR_SUCCESS;
1108 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1110 if (ndr_flags & NDR_SCALARS) {
1111 NDR_CHECK(ndr_pull_align(ndr, 4));
1112 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1113 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1115 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1116 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1122 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1123 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1126 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1127 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1129 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1131 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1132 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1136 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1138 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1139 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1140 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1141 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1147 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1150 struct ndr_pull *_ndr_driverextra_data;
1151 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1152 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1153 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1155 ndr->flags = _flags_save_DATA_BLOB;
1157 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1159 if (ndr_flags & NDR_BUFFERS) {
1161 return NDR_ERR_SUCCESS;
1164 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1166 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1167 ndr->depth++;
1168 ndr_print_string(ndr, "devicename", r->devicename);
1169 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1170 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1171 ndr_print_uint16(ndr, "size", r->size);
1172 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1173 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1174 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1175 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1176 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1177 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1178 ndr_print_uint16(ndr, "scale", r->scale);
1179 ndr_print_uint16(ndr, "copies", r->copies);
1180 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1181 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1182 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1183 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1184 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1185 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1186 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1187 ndr_print_string(ndr, "formname", r->formname);
1188 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1189 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1190 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1191 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1192 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1193 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1194 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1195 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1196 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1197 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1198 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1199 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1200 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1201 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1202 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1203 ndr->depth--;
1206 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1208 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1211 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1214 return NDR_ERR_SUCCESS;
1217 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1219 uint32_t v;
1220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1221 *r = v;
1222 return NDR_ERR_SUCCESS;
1225 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1227 ndr_print_uint32(ndr, name, r);
1228 ndr->depth++;
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1248 ndr->depth--;
1251 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1254 return NDR_ERR_SUCCESS;
1257 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1259 uint32_t v;
1260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1261 *r = v;
1262 return NDR_ERR_SUCCESS;
1265 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1267 ndr_print_uint32(ndr, name, r);
1268 ndr->depth++;
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1283 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1284 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1285 ndr->depth--;
1288 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1290 if (ndr_flags & NDR_SCALARS) {
1291 NDR_CHECK(ndr_push_align(ndr, 5));
1292 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1294 uint32_t _flags_save_string = ndr->flags;
1295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1297 ndr->flags = _flags_save_string;
1300 uint32_t _flags_save_string = ndr->flags;
1301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1303 ndr->flags = _flags_save_string;
1306 uint32_t _flags_save_string = ndr->flags;
1307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1308 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1309 ndr->flags = _flags_save_string;
1311 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1313 if (ndr_flags & NDR_BUFFERS) {
1315 uint32_t _flags_save_string = ndr->flags;
1316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1317 if (r->description) {
1318 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1319 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1320 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1327 if (r->name) {
1328 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1330 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
1332 ndr->flags = _flags_save_string;
1335 uint32_t _flags_save_string = ndr->flags;
1336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1337 if (r->comment) {
1338 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1340 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1342 ndr->flags = _flags_save_string;
1345 return NDR_ERR_SUCCESS;
1348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1350 uint32_t _ptr_description;
1351 TALLOC_CTX *_mem_save_description_0;
1352 uint32_t _ptr_name;
1353 TALLOC_CTX *_mem_save_name_0;
1354 uint32_t _ptr_comment;
1355 TALLOC_CTX *_mem_save_comment_0;
1356 if (ndr_flags & NDR_SCALARS) {
1357 NDR_CHECK(ndr_pull_align(ndr, 5));
1358 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1360 uint32_t _flags_save_string = ndr->flags;
1361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1363 if (_ptr_description) {
1364 NDR_PULL_ALLOC(ndr, r->description);
1365 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1366 } else {
1367 r->description = NULL;
1369 ndr->flags = _flags_save_string;
1372 uint32_t _flags_save_string = ndr->flags;
1373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1375 if (_ptr_name) {
1376 NDR_PULL_ALLOC(ndr, r->name);
1377 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1378 } else {
1379 r->name = NULL;
1381 ndr->flags = _flags_save_string;
1384 uint32_t _flags_save_string = ndr->flags;
1385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1387 if (_ptr_comment) {
1388 NDR_PULL_ALLOC(ndr, r->comment);
1389 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1390 } else {
1391 r->comment = NULL;
1393 ndr->flags = _flags_save_string;
1395 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1397 if (ndr_flags & NDR_BUFFERS) {
1399 uint32_t _flags_save_string = ndr->flags;
1400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1401 if (r->description) {
1402 uint32_t _relative_save_offset;
1403 _relative_save_offset = ndr->offset;
1404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1405 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1406 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1409 if (ndr->offset > ndr->relative_highest_offset) {
1410 ndr->relative_highest_offset = ndr->offset;
1412 ndr->offset = _relative_save_offset;
1414 ndr->flags = _flags_save_string;
1417 uint32_t _flags_save_string = ndr->flags;
1418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1419 if (r->name) {
1420 uint32_t _relative_save_offset;
1421 _relative_save_offset = ndr->offset;
1422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1423 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1424 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1427 if (ndr->offset > ndr->relative_highest_offset) {
1428 ndr->relative_highest_offset = ndr->offset;
1430 ndr->offset = _relative_save_offset;
1432 ndr->flags = _flags_save_string;
1435 uint32_t _flags_save_string = ndr->flags;
1436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1437 if (r->comment) {
1438 uint32_t _relative_save_offset;
1439 _relative_save_offset = ndr->offset;
1440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1441 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1442 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1445 if (ndr->offset > ndr->relative_highest_offset) {
1446 ndr->relative_highest_offset = ndr->offset;
1448 ndr->offset = _relative_save_offset;
1450 ndr->flags = _flags_save_string;
1453 return NDR_ERR_SUCCESS;
1456 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1458 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1459 ndr->depth++;
1460 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1461 ndr_print_ptr(ndr, "description", r->description);
1462 ndr->depth++;
1463 if (r->description) {
1464 ndr_print_string(ndr, "description", r->description);
1466 ndr->depth--;
1467 ndr_print_ptr(ndr, "name", r->name);
1468 ndr->depth++;
1469 if (r->name) {
1470 ndr_print_string(ndr, "name", r->name);
1472 ndr->depth--;
1473 ndr_print_ptr(ndr, "comment", r->comment);
1474 ndr->depth++;
1475 if (r->comment) {
1476 ndr_print_string(ndr, "comment", r->comment);
1478 ndr->depth--;
1479 ndr->depth--;
1482 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1484 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1487 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1489 if (ndr_flags & NDR_SCALARS) {
1490 NDR_CHECK(ndr_push_align(ndr, 5));
1492 uint32_t _flags_save_string = ndr->flags;
1493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1494 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1495 ndr->flags = _flags_save_string;
1498 uint32_t _flags_save_string = ndr->flags;
1499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1500 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1501 ndr->flags = _flags_save_string;
1504 uint32_t _flags_save_string = ndr->flags;
1505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1506 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1507 ndr->flags = _flags_save_string;
1510 uint32_t _flags_save_string = ndr->flags;
1511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1512 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1513 ndr->flags = _flags_save_string;
1516 uint32_t _flags_save_string = ndr->flags;
1517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1518 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1519 ndr->flags = _flags_save_string;
1522 uint32_t _flags_save_string = ndr->flags;
1523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1524 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1525 ndr->flags = _flags_save_string;
1528 uint32_t _flags_save_string = ndr->flags;
1529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1530 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1531 ndr->flags = _flags_save_string;
1534 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1536 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1537 ndr->flags = _flags_save_spoolss_DeviceMode;
1540 uint32_t _flags_save_string = ndr->flags;
1541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1542 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1543 ndr->flags = _flags_save_string;
1546 uint32_t _flags_save_string = ndr->flags;
1547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1548 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1549 ndr->flags = _flags_save_string;
1552 uint32_t _flags_save_string = ndr->flags;
1553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1554 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1555 ndr->flags = _flags_save_string;
1558 uint32_t _flags_save_string = ndr->flags;
1559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1560 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1561 ndr->flags = _flags_save_string;
1564 uint32_t _flags_save_security_descriptor = ndr->flags;
1565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1566 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1567 ndr->flags = _flags_save_security_descriptor;
1569 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1574 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1577 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1579 if (ndr_flags & NDR_BUFFERS) {
1581 uint32_t _flags_save_string = ndr->flags;
1582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1583 if (r->servername) {
1584 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
1585 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1586 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
1588 ndr->flags = _flags_save_string;
1591 uint32_t _flags_save_string = ndr->flags;
1592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1593 if (r->printername) {
1594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1598 ndr->flags = _flags_save_string;
1601 uint32_t _flags_save_string = ndr->flags;
1602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1603 if (r->sharename) {
1604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sharename));
1605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->sharename));
1608 ndr->flags = _flags_save_string;
1611 uint32_t _flags_save_string = ndr->flags;
1612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1613 if (r->portname) {
1614 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
1615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1616 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
1618 ndr->flags = _flags_save_string;
1621 uint32_t _flags_save_string = ndr->flags;
1622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1623 if (r->drivername) {
1624 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->drivername));
1625 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1626 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->drivername));
1628 ndr->flags = _flags_save_string;
1631 uint32_t _flags_save_string = ndr->flags;
1632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1633 if (r->comment) {
1634 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1635 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1636 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1638 ndr->flags = _flags_save_string;
1641 uint32_t _flags_save_string = ndr->flags;
1642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1643 if (r->location) {
1644 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->location));
1645 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1646 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->location));
1648 ndr->flags = _flags_save_string;
1651 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1653 if (r->devmode) {
1654 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
1656 struct ndr_push *_ndr_devmode;
1657 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1658 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1659 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1661 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
1663 ndr->flags = _flags_save_spoolss_DeviceMode;
1666 uint32_t _flags_save_string = ndr->flags;
1667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1668 if (r->sepfile) {
1669 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sepfile));
1670 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1671 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->sepfile));
1673 ndr->flags = _flags_save_string;
1676 uint32_t _flags_save_string = ndr->flags;
1677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1678 if (r->printprocessor) {
1679 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printprocessor));
1680 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1681 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printprocessor));
1683 ndr->flags = _flags_save_string;
1686 uint32_t _flags_save_string = ndr->flags;
1687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1688 if (r->datatype) {
1689 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->datatype));
1690 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1691 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->datatype));
1693 ndr->flags = _flags_save_string;
1696 uint32_t _flags_save_string = ndr->flags;
1697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1698 if (r->parameters) {
1699 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
1700 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1701 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
1703 ndr->flags = _flags_save_string;
1706 uint32_t _flags_save_security_descriptor = ndr->flags;
1707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1708 if (r->secdesc) {
1709 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
1711 struct ndr_push *_ndr_secdesc;
1712 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1713 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1714 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1716 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
1718 ndr->flags = _flags_save_security_descriptor;
1721 return NDR_ERR_SUCCESS;
1724 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1726 uint32_t _ptr_servername;
1727 TALLOC_CTX *_mem_save_servername_0;
1728 uint32_t _ptr_printername;
1729 TALLOC_CTX *_mem_save_printername_0;
1730 uint32_t _ptr_sharename;
1731 TALLOC_CTX *_mem_save_sharename_0;
1732 uint32_t _ptr_portname;
1733 TALLOC_CTX *_mem_save_portname_0;
1734 uint32_t _ptr_drivername;
1735 TALLOC_CTX *_mem_save_drivername_0;
1736 uint32_t _ptr_comment;
1737 TALLOC_CTX *_mem_save_comment_0;
1738 uint32_t _ptr_location;
1739 TALLOC_CTX *_mem_save_location_0;
1740 uint32_t _ptr_devmode;
1741 TALLOC_CTX *_mem_save_devmode_0;
1742 uint32_t _ptr_sepfile;
1743 TALLOC_CTX *_mem_save_sepfile_0;
1744 uint32_t _ptr_printprocessor;
1745 TALLOC_CTX *_mem_save_printprocessor_0;
1746 uint32_t _ptr_datatype;
1747 TALLOC_CTX *_mem_save_datatype_0;
1748 uint32_t _ptr_parameters;
1749 TALLOC_CTX *_mem_save_parameters_0;
1750 uint32_t _ptr_secdesc;
1751 TALLOC_CTX *_mem_save_secdesc_0;
1752 if (ndr_flags & NDR_SCALARS) {
1753 NDR_CHECK(ndr_pull_align(ndr, 5));
1755 uint32_t _flags_save_string = ndr->flags;
1756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1758 if (_ptr_servername) {
1759 NDR_PULL_ALLOC(ndr, r->servername);
1760 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1761 } else {
1762 r->servername = NULL;
1764 ndr->flags = _flags_save_string;
1767 uint32_t _flags_save_string = ndr->flags;
1768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1770 if (_ptr_printername) {
1771 NDR_PULL_ALLOC(ndr, r->printername);
1772 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1773 } else {
1774 r->printername = NULL;
1776 ndr->flags = _flags_save_string;
1779 uint32_t _flags_save_string = ndr->flags;
1780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1782 if (_ptr_sharename) {
1783 NDR_PULL_ALLOC(ndr, r->sharename);
1784 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1785 } else {
1786 r->sharename = NULL;
1788 ndr->flags = _flags_save_string;
1791 uint32_t _flags_save_string = ndr->flags;
1792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1794 if (_ptr_portname) {
1795 NDR_PULL_ALLOC(ndr, r->portname);
1796 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1797 } else {
1798 r->portname = NULL;
1800 ndr->flags = _flags_save_string;
1803 uint32_t _flags_save_string = ndr->flags;
1804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1806 if (_ptr_drivername) {
1807 NDR_PULL_ALLOC(ndr, r->drivername);
1808 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1809 } else {
1810 r->drivername = NULL;
1812 ndr->flags = _flags_save_string;
1815 uint32_t _flags_save_string = ndr->flags;
1816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1818 if (_ptr_comment) {
1819 NDR_PULL_ALLOC(ndr, r->comment);
1820 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1821 } else {
1822 r->comment = NULL;
1824 ndr->flags = _flags_save_string;
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1830 if (_ptr_location) {
1831 NDR_PULL_ALLOC(ndr, r->location);
1832 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1833 } else {
1834 r->location = NULL;
1836 ndr->flags = _flags_save_string;
1839 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1842 if (_ptr_devmode) {
1843 NDR_PULL_ALLOC(ndr, r->devmode);
1844 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1845 } else {
1846 r->devmode = NULL;
1848 ndr->flags = _flags_save_spoolss_DeviceMode;
1851 uint32_t _flags_save_string = ndr->flags;
1852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1854 if (_ptr_sepfile) {
1855 NDR_PULL_ALLOC(ndr, r->sepfile);
1856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1857 } else {
1858 r->sepfile = NULL;
1860 ndr->flags = _flags_save_string;
1863 uint32_t _flags_save_string = ndr->flags;
1864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1866 if (_ptr_printprocessor) {
1867 NDR_PULL_ALLOC(ndr, r->printprocessor);
1868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1869 } else {
1870 r->printprocessor = NULL;
1872 ndr->flags = _flags_save_string;
1875 uint32_t _flags_save_string = ndr->flags;
1876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1878 if (_ptr_datatype) {
1879 NDR_PULL_ALLOC(ndr, r->datatype);
1880 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1881 } else {
1882 r->datatype = NULL;
1884 ndr->flags = _flags_save_string;
1887 uint32_t _flags_save_string = ndr->flags;
1888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1890 if (_ptr_parameters) {
1891 NDR_PULL_ALLOC(ndr, r->parameters);
1892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1893 } else {
1894 r->parameters = NULL;
1896 ndr->flags = _flags_save_string;
1899 uint32_t _flags_save_security_descriptor = ndr->flags;
1900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1902 if (_ptr_secdesc) {
1903 NDR_PULL_ALLOC(ndr, r->secdesc);
1904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1905 } else {
1906 r->secdesc = NULL;
1908 ndr->flags = _flags_save_security_descriptor;
1910 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1912 if (r->priority > 99) {
1913 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1918 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1921 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1923 if (ndr_flags & NDR_BUFFERS) {
1925 uint32_t _flags_save_string = ndr->flags;
1926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1927 if (r->servername) {
1928 uint32_t _relative_save_offset;
1929 _relative_save_offset = ndr->offset;
1930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1931 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1932 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1935 if (ndr->offset > ndr->relative_highest_offset) {
1936 ndr->relative_highest_offset = ndr->offset;
1938 ndr->offset = _relative_save_offset;
1940 ndr->flags = _flags_save_string;
1943 uint32_t _flags_save_string = ndr->flags;
1944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1945 if (r->printername) {
1946 uint32_t _relative_save_offset;
1947 _relative_save_offset = ndr->offset;
1948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1949 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1950 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1953 if (ndr->offset > ndr->relative_highest_offset) {
1954 ndr->relative_highest_offset = ndr->offset;
1956 ndr->offset = _relative_save_offset;
1958 ndr->flags = _flags_save_string;
1961 uint32_t _flags_save_string = ndr->flags;
1962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1963 if (r->sharename) {
1964 uint32_t _relative_save_offset;
1965 _relative_save_offset = ndr->offset;
1966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1967 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1968 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1969 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1971 if (ndr->offset > ndr->relative_highest_offset) {
1972 ndr->relative_highest_offset = ndr->offset;
1974 ndr->offset = _relative_save_offset;
1976 ndr->flags = _flags_save_string;
1979 uint32_t _flags_save_string = ndr->flags;
1980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1981 if (r->portname) {
1982 uint32_t _relative_save_offset;
1983 _relative_save_offset = ndr->offset;
1984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1985 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1986 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1989 if (ndr->offset > ndr->relative_highest_offset) {
1990 ndr->relative_highest_offset = ndr->offset;
1992 ndr->offset = _relative_save_offset;
1994 ndr->flags = _flags_save_string;
1997 uint32_t _flags_save_string = ndr->flags;
1998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1999 if (r->drivername) {
2000 uint32_t _relative_save_offset;
2001 _relative_save_offset = ndr->offset;
2002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
2003 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2004 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
2005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
2006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
2007 if (ndr->offset > ndr->relative_highest_offset) {
2008 ndr->relative_highest_offset = ndr->offset;
2010 ndr->offset = _relative_save_offset;
2012 ndr->flags = _flags_save_string;
2015 uint32_t _flags_save_string = ndr->flags;
2016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2017 if (r->comment) {
2018 uint32_t _relative_save_offset;
2019 _relative_save_offset = ndr->offset;
2020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
2021 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
2022 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
2023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
2024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
2025 if (ndr->offset > ndr->relative_highest_offset) {
2026 ndr->relative_highest_offset = ndr->offset;
2028 ndr->offset = _relative_save_offset;
2030 ndr->flags = _flags_save_string;
2033 uint32_t _flags_save_string = ndr->flags;
2034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2035 if (r->location) {
2036 uint32_t _relative_save_offset;
2037 _relative_save_offset = ndr->offset;
2038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
2039 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
2040 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
2041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
2042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
2043 if (ndr->offset > ndr->relative_highest_offset) {
2044 ndr->relative_highest_offset = ndr->offset;
2046 ndr->offset = _relative_save_offset;
2048 ndr->flags = _flags_save_string;
2051 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2053 if (r->devmode) {
2054 uint32_t _relative_save_offset;
2055 _relative_save_offset = ndr->offset;
2056 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2057 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2058 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2060 struct ndr_pull *_ndr_devmode;
2061 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2062 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2063 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2066 if (ndr->offset > ndr->relative_highest_offset) {
2067 ndr->relative_highest_offset = ndr->offset;
2069 ndr->offset = _relative_save_offset;
2071 ndr->flags = _flags_save_spoolss_DeviceMode;
2074 uint32_t _flags_save_string = ndr->flags;
2075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2076 if (r->sepfile) {
2077 uint32_t _relative_save_offset;
2078 _relative_save_offset = ndr->offset;
2079 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2080 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2081 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2082 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2084 if (ndr->offset > ndr->relative_highest_offset) {
2085 ndr->relative_highest_offset = ndr->offset;
2087 ndr->offset = _relative_save_offset;
2089 ndr->flags = _flags_save_string;
2092 uint32_t _flags_save_string = ndr->flags;
2093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2094 if (r->printprocessor) {
2095 uint32_t _relative_save_offset;
2096 _relative_save_offset = ndr->offset;
2097 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2098 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2099 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2100 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2102 if (ndr->offset > ndr->relative_highest_offset) {
2103 ndr->relative_highest_offset = ndr->offset;
2105 ndr->offset = _relative_save_offset;
2107 ndr->flags = _flags_save_string;
2110 uint32_t _flags_save_string = ndr->flags;
2111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2112 if (r->datatype) {
2113 uint32_t _relative_save_offset;
2114 _relative_save_offset = ndr->offset;
2115 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2116 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2117 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2118 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2120 if (ndr->offset > ndr->relative_highest_offset) {
2121 ndr->relative_highest_offset = ndr->offset;
2123 ndr->offset = _relative_save_offset;
2125 ndr->flags = _flags_save_string;
2128 uint32_t _flags_save_string = ndr->flags;
2129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2130 if (r->parameters) {
2131 uint32_t _relative_save_offset;
2132 _relative_save_offset = ndr->offset;
2133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2134 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2135 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2138 if (ndr->offset > ndr->relative_highest_offset) {
2139 ndr->relative_highest_offset = ndr->offset;
2141 ndr->offset = _relative_save_offset;
2143 ndr->flags = _flags_save_string;
2146 uint32_t _flags_save_security_descriptor = ndr->flags;
2147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2148 if (r->secdesc) {
2149 uint32_t _relative_save_offset;
2150 _relative_save_offset = ndr->offset;
2151 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2152 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2153 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2155 struct ndr_pull *_ndr_secdesc;
2156 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2157 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2158 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2161 if (ndr->offset > ndr->relative_highest_offset) {
2162 ndr->relative_highest_offset = ndr->offset;
2164 ndr->offset = _relative_save_offset;
2166 ndr->flags = _flags_save_security_descriptor;
2169 return NDR_ERR_SUCCESS;
2172 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2174 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2175 ndr->depth++;
2176 ndr_print_ptr(ndr, "servername", r->servername);
2177 ndr->depth++;
2178 if (r->servername) {
2179 ndr_print_string(ndr, "servername", r->servername);
2181 ndr->depth--;
2182 ndr_print_ptr(ndr, "printername", r->printername);
2183 ndr->depth++;
2184 if (r->printername) {
2185 ndr_print_string(ndr, "printername", r->printername);
2187 ndr->depth--;
2188 ndr_print_ptr(ndr, "sharename", r->sharename);
2189 ndr->depth++;
2190 if (r->sharename) {
2191 ndr_print_string(ndr, "sharename", r->sharename);
2193 ndr->depth--;
2194 ndr_print_ptr(ndr, "portname", r->portname);
2195 ndr->depth++;
2196 if (r->portname) {
2197 ndr_print_string(ndr, "portname", r->portname);
2199 ndr->depth--;
2200 ndr_print_ptr(ndr, "drivername", r->drivername);
2201 ndr->depth++;
2202 if (r->drivername) {
2203 ndr_print_string(ndr, "drivername", r->drivername);
2205 ndr->depth--;
2206 ndr_print_ptr(ndr, "comment", r->comment);
2207 ndr->depth++;
2208 if (r->comment) {
2209 ndr_print_string(ndr, "comment", r->comment);
2211 ndr->depth--;
2212 ndr_print_ptr(ndr, "location", r->location);
2213 ndr->depth++;
2214 if (r->location) {
2215 ndr_print_string(ndr, "location", r->location);
2217 ndr->depth--;
2218 ndr_print_ptr(ndr, "devmode", r->devmode);
2219 ndr->depth++;
2220 if (r->devmode) {
2221 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2223 ndr->depth--;
2224 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2225 ndr->depth++;
2226 if (r->sepfile) {
2227 ndr_print_string(ndr, "sepfile", r->sepfile);
2229 ndr->depth--;
2230 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2231 ndr->depth++;
2232 if (r->printprocessor) {
2233 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2235 ndr->depth--;
2236 ndr_print_ptr(ndr, "datatype", r->datatype);
2237 ndr->depth++;
2238 if (r->datatype) {
2239 ndr_print_string(ndr, "datatype", r->datatype);
2241 ndr->depth--;
2242 ndr_print_ptr(ndr, "parameters", r->parameters);
2243 ndr->depth++;
2244 if (r->parameters) {
2245 ndr_print_string(ndr, "parameters", r->parameters);
2247 ndr->depth--;
2248 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2249 ndr->depth++;
2250 if (r->secdesc) {
2251 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2253 ndr->depth--;
2254 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2255 ndr_print_uint32(ndr, "priority", r->priority);
2256 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2257 ndr_print_uint32(ndr, "starttime", r->starttime);
2258 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2259 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2260 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2261 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2262 ndr->depth--;
2265 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2267 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2270 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2272 if (ndr_flags & NDR_SCALARS) {
2273 NDR_CHECK(ndr_push_align(ndr, 5));
2275 uint32_t _flags_save_security_descriptor = ndr->flags;
2276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2277 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2278 ndr->flags = _flags_save_security_descriptor;
2280 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2282 if (ndr_flags & NDR_BUFFERS) {
2284 uint32_t _flags_save_security_descriptor = ndr->flags;
2285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2286 if (r->secdesc) {
2287 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2289 struct ndr_push *_ndr_secdesc;
2290 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2291 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2292 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2294 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2296 ndr->flags = _flags_save_security_descriptor;
2299 return NDR_ERR_SUCCESS;
2302 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2304 uint32_t _ptr_secdesc;
2305 TALLOC_CTX *_mem_save_secdesc_0;
2306 if (ndr_flags & NDR_SCALARS) {
2307 NDR_CHECK(ndr_pull_align(ndr, 5));
2309 uint32_t _flags_save_security_descriptor = ndr->flags;
2310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2312 if (_ptr_secdesc) {
2313 NDR_PULL_ALLOC(ndr, r->secdesc);
2314 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2315 } else {
2316 r->secdesc = NULL;
2318 ndr->flags = _flags_save_security_descriptor;
2320 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2322 if (ndr_flags & NDR_BUFFERS) {
2324 uint32_t _flags_save_security_descriptor = ndr->flags;
2325 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2326 if (r->secdesc) {
2327 uint32_t _relative_save_offset;
2328 _relative_save_offset = ndr->offset;
2329 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2330 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2331 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2333 struct ndr_pull *_ndr_secdesc;
2334 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2335 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2336 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2339 if (ndr->offset > ndr->relative_highest_offset) {
2340 ndr->relative_highest_offset = ndr->offset;
2342 ndr->offset = _relative_save_offset;
2344 ndr->flags = _flags_save_security_descriptor;
2347 return NDR_ERR_SUCCESS;
2350 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2352 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2353 ndr->depth++;
2354 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2355 ndr->depth++;
2356 if (r->secdesc) {
2357 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2359 ndr->depth--;
2360 ndr->depth--;
2363 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2365 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2368 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2370 if (ndr_flags & NDR_SCALARS) {
2371 NDR_CHECK(ndr_push_align(ndr, 5));
2373 uint32_t _flags_save_string = ndr->flags;
2374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2375 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2376 ndr->flags = _flags_save_string;
2379 uint32_t _flags_save_string = ndr->flags;
2380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2381 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2382 ndr->flags = _flags_save_string;
2384 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2385 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2387 if (ndr_flags & NDR_BUFFERS) {
2389 uint32_t _flags_save_string = ndr->flags;
2390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2391 if (r->printername) {
2392 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2394 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2396 ndr->flags = _flags_save_string;
2399 uint32_t _flags_save_string = ndr->flags;
2400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2401 if (r->servername) {
2402 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2404 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2406 ndr->flags = _flags_save_string;
2409 return NDR_ERR_SUCCESS;
2412 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2414 uint32_t _ptr_printername;
2415 TALLOC_CTX *_mem_save_printername_0;
2416 uint32_t _ptr_servername;
2417 TALLOC_CTX *_mem_save_servername_0;
2418 if (ndr_flags & NDR_SCALARS) {
2419 NDR_CHECK(ndr_pull_align(ndr, 5));
2421 uint32_t _flags_save_string = ndr->flags;
2422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2424 if (_ptr_printername) {
2425 NDR_PULL_ALLOC(ndr, r->printername);
2426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2427 } else {
2428 r->printername = NULL;
2430 ndr->flags = _flags_save_string;
2433 uint32_t _flags_save_string = ndr->flags;
2434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2436 if (_ptr_servername) {
2437 NDR_PULL_ALLOC(ndr, r->servername);
2438 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2439 } else {
2440 r->servername = NULL;
2442 ndr->flags = _flags_save_string;
2444 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2445 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2447 if (ndr_flags & NDR_BUFFERS) {
2449 uint32_t _flags_save_string = ndr->flags;
2450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2451 if (r->printername) {
2452 uint32_t _relative_save_offset;
2453 _relative_save_offset = ndr->offset;
2454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2455 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2456 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2459 if (ndr->offset > ndr->relative_highest_offset) {
2460 ndr->relative_highest_offset = ndr->offset;
2462 ndr->offset = _relative_save_offset;
2464 ndr->flags = _flags_save_string;
2467 uint32_t _flags_save_string = ndr->flags;
2468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2469 if (r->servername) {
2470 uint32_t _relative_save_offset;
2471 _relative_save_offset = ndr->offset;
2472 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2473 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2474 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2475 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2477 if (ndr->offset > ndr->relative_highest_offset) {
2478 ndr->relative_highest_offset = ndr->offset;
2480 ndr->offset = _relative_save_offset;
2482 ndr->flags = _flags_save_string;
2485 return NDR_ERR_SUCCESS;
2488 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2490 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2491 ndr->depth++;
2492 ndr_print_ptr(ndr, "printername", r->printername);
2493 ndr->depth++;
2494 if (r->printername) {
2495 ndr_print_string(ndr, "printername", r->printername);
2497 ndr->depth--;
2498 ndr_print_ptr(ndr, "servername", r->servername);
2499 ndr->depth++;
2500 if (r->servername) {
2501 ndr_print_string(ndr, "servername", r->servername);
2503 ndr->depth--;
2504 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2505 ndr->depth--;
2508 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2510 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2513 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2515 if (ndr_flags & NDR_SCALARS) {
2516 NDR_CHECK(ndr_push_align(ndr, 5));
2518 uint32_t _flags_save_string = ndr->flags;
2519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2520 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2521 ndr->flags = _flags_save_string;
2524 uint32_t _flags_save_string = ndr->flags;
2525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2527 ndr->flags = _flags_save_string;
2529 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2532 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2534 if (ndr_flags & NDR_BUFFERS) {
2536 uint32_t _flags_save_string = ndr->flags;
2537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2538 if (r->printername) {
2539 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2540 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2541 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2543 ndr->flags = _flags_save_string;
2546 uint32_t _flags_save_string = ndr->flags;
2547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2548 if (r->portname) {
2549 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2550 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2551 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2553 ndr->flags = _flags_save_string;
2556 return NDR_ERR_SUCCESS;
2559 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2561 uint32_t _ptr_printername;
2562 TALLOC_CTX *_mem_save_printername_0;
2563 uint32_t _ptr_portname;
2564 TALLOC_CTX *_mem_save_portname_0;
2565 if (ndr_flags & NDR_SCALARS) {
2566 NDR_CHECK(ndr_pull_align(ndr, 5));
2568 uint32_t _flags_save_string = ndr->flags;
2569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2570 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2571 if (_ptr_printername) {
2572 NDR_PULL_ALLOC(ndr, r->printername);
2573 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2574 } else {
2575 r->printername = NULL;
2577 ndr->flags = _flags_save_string;
2580 uint32_t _flags_save_string = ndr->flags;
2581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2583 if (_ptr_portname) {
2584 NDR_PULL_ALLOC(ndr, r->portname);
2585 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2586 } else {
2587 r->portname = NULL;
2589 ndr->flags = _flags_save_string;
2591 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2594 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2596 if (ndr_flags & NDR_BUFFERS) {
2598 uint32_t _flags_save_string = ndr->flags;
2599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2600 if (r->printername) {
2601 uint32_t _relative_save_offset;
2602 _relative_save_offset = ndr->offset;
2603 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2604 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2605 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2606 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2608 if (ndr->offset > ndr->relative_highest_offset) {
2609 ndr->relative_highest_offset = ndr->offset;
2611 ndr->offset = _relative_save_offset;
2613 ndr->flags = _flags_save_string;
2616 uint32_t _flags_save_string = ndr->flags;
2617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2618 if (r->portname) {
2619 uint32_t _relative_save_offset;
2620 _relative_save_offset = ndr->offset;
2621 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2622 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2623 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2624 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2626 if (ndr->offset > ndr->relative_highest_offset) {
2627 ndr->relative_highest_offset = ndr->offset;
2629 ndr->offset = _relative_save_offset;
2631 ndr->flags = _flags_save_string;
2634 return NDR_ERR_SUCCESS;
2637 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2639 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2640 ndr->depth++;
2641 ndr_print_ptr(ndr, "printername", r->printername);
2642 ndr->depth++;
2643 if (r->printername) {
2644 ndr_print_string(ndr, "printername", r->printername);
2646 ndr->depth--;
2647 ndr_print_ptr(ndr, "portname", r->portname);
2648 ndr->depth++;
2649 if (r->portname) {
2650 ndr_print_string(ndr, "portname", r->portname);
2652 ndr->depth--;
2653 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2654 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2655 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2656 ndr->depth--;
2659 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2661 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2664 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2666 if (ndr_flags & NDR_SCALARS) {
2667 NDR_CHECK(ndr_push_align(ndr, 4));
2668 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2669 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2671 if (ndr_flags & NDR_BUFFERS) {
2673 return NDR_ERR_SUCCESS;
2676 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2678 if (ndr_flags & NDR_SCALARS) {
2679 NDR_CHECK(ndr_pull_align(ndr, 4));
2680 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2681 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2683 if (ndr_flags & NDR_BUFFERS) {
2685 return NDR_ERR_SUCCESS;
2688 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2690 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2691 ndr->depth++;
2692 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2693 ndr->depth--;
2696 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2698 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2701 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2704 return NDR_ERR_SUCCESS;
2707 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2709 uint32_t v;
2710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2711 *r = v;
2712 return NDR_ERR_SUCCESS;
2715 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2717 ndr_print_uint32(ndr, name, r);
2718 ndr->depth++;
2719 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2720 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2721 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2722 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2723 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2724 ndr->depth--;
2727 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2729 if (ndr_flags & NDR_SCALARS) {
2730 NDR_CHECK(ndr_push_align(ndr, 5));
2732 uint32_t _flags_save_string = ndr->flags;
2733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2735 ndr->flags = _flags_save_string;
2737 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2738 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2740 if (ndr_flags & NDR_BUFFERS) {
2742 uint32_t _flags_save_string = ndr->flags;
2743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2744 if (r->guid) {
2745 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2746 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2747 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2749 ndr->flags = _flags_save_string;
2752 return NDR_ERR_SUCCESS;
2755 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2757 uint32_t _ptr_guid;
2758 TALLOC_CTX *_mem_save_guid_0;
2759 if (ndr_flags & NDR_SCALARS) {
2760 NDR_CHECK(ndr_pull_align(ndr, 5));
2762 uint32_t _flags_save_string = ndr->flags;
2763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2765 if (_ptr_guid) {
2766 NDR_PULL_ALLOC(ndr, r->guid);
2767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2768 } else {
2769 r->guid = NULL;
2771 ndr->flags = _flags_save_string;
2773 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2774 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2776 if (ndr_flags & NDR_BUFFERS) {
2778 uint32_t _flags_save_string = ndr->flags;
2779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2780 if (r->guid) {
2781 uint32_t _relative_save_offset;
2782 _relative_save_offset = ndr->offset;
2783 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2784 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2785 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2786 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2787 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2788 if (ndr->offset > ndr->relative_highest_offset) {
2789 ndr->relative_highest_offset = ndr->offset;
2791 ndr->offset = _relative_save_offset;
2793 ndr->flags = _flags_save_string;
2796 return NDR_ERR_SUCCESS;
2799 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2801 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2802 ndr->depth++;
2803 ndr_print_ptr(ndr, "guid", r->guid);
2804 ndr->depth++;
2805 if (r->guid) {
2806 ndr_print_string(ndr, "guid", r->guid);
2808 ndr->depth--;
2809 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2810 ndr->depth--;
2813 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2815 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2818 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2820 if (ndr_flags & NDR_SCALARS) {
2821 NDR_CHECK(ndr_push_align(ndr, 5));
2823 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2825 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2826 ndr->flags = _flags_save_spoolss_DeviceMode;
2828 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2830 if (ndr_flags & NDR_BUFFERS) {
2832 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2834 if (r->devmode) {
2835 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2837 struct ndr_push *_ndr_devmode;
2838 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2839 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2840 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2842 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2844 ndr->flags = _flags_save_spoolss_DeviceMode;
2847 return NDR_ERR_SUCCESS;
2850 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2852 uint32_t _ptr_devmode;
2853 TALLOC_CTX *_mem_save_devmode_0;
2854 if (ndr_flags & NDR_SCALARS) {
2855 NDR_CHECK(ndr_pull_align(ndr, 5));
2857 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2860 if (_ptr_devmode) {
2861 NDR_PULL_ALLOC(ndr, r->devmode);
2862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2863 } else {
2864 r->devmode = NULL;
2866 ndr->flags = _flags_save_spoolss_DeviceMode;
2868 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2870 if (ndr_flags & NDR_BUFFERS) {
2872 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2874 if (r->devmode) {
2875 uint32_t _relative_save_offset;
2876 _relative_save_offset = ndr->offset;
2877 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2878 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2879 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2881 struct ndr_pull *_ndr_devmode;
2882 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2883 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2884 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2887 if (ndr->offset > ndr->relative_highest_offset) {
2888 ndr->relative_highest_offset = ndr->offset;
2890 ndr->offset = _relative_save_offset;
2892 ndr->flags = _flags_save_spoolss_DeviceMode;
2895 return NDR_ERR_SUCCESS;
2898 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2900 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2901 ndr->depth++;
2902 ndr_print_ptr(ndr, "devmode", r->devmode);
2903 ndr->depth++;
2904 if (r->devmode) {
2905 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2907 ndr->depth--;
2908 ndr->depth--;
2911 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2913 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2915 uint32_t _flags_save_UNION = ndr->flags;
2916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2917 if (ndr_flags & NDR_SCALARS) {
2918 int level = ndr_push_get_switch_value(ndr, r);
2919 NDR_CHECK(ndr_push_union_align(ndr, 5));
2920 switch (level) {
2921 case 0: {
2922 NDR_CHECK(ndr_push_align(ndr, 5));
2923 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2924 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2925 break; }
2927 case 1: {
2928 NDR_CHECK(ndr_push_align(ndr, 5));
2929 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2930 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2931 break; }
2933 case 2: {
2934 NDR_CHECK(ndr_push_align(ndr, 5));
2935 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2936 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2937 break; }
2939 case 3: {
2940 NDR_CHECK(ndr_push_align(ndr, 5));
2941 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2942 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2943 break; }
2945 case 4: {
2946 NDR_CHECK(ndr_push_align(ndr, 5));
2947 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2948 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2949 break; }
2951 case 5: {
2952 NDR_CHECK(ndr_push_align(ndr, 5));
2953 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2954 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2955 break; }
2957 case 6: {
2958 NDR_CHECK(ndr_push_align(ndr, 4));
2959 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2960 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2961 break; }
2963 case 7: {
2964 NDR_CHECK(ndr_push_align(ndr, 5));
2965 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2966 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2967 break; }
2969 case 8: {
2970 NDR_CHECK(ndr_push_align(ndr, 5));
2971 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2972 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2973 break; }
2975 case 9: {
2976 NDR_CHECK(ndr_push_align(ndr, 5));
2977 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2978 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2979 break; }
2981 default: {
2982 break; }
2986 if (ndr_flags & NDR_BUFFERS) {
2987 int level = ndr_push_get_switch_value(ndr, r);
2988 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2989 switch (level) {
2990 case 0:
2991 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2992 break;
2994 case 1:
2995 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2996 break;
2998 case 2:
2999 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3000 break;
3002 case 3:
3003 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3004 break;
3006 case 4:
3007 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3008 break;
3010 case 5:
3011 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3012 break;
3014 case 6:
3015 break;
3017 case 7:
3018 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3019 break;
3021 case 8:
3022 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3023 break;
3025 case 9:
3026 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3027 break;
3029 default:
3030 break;
3034 ndr->flags = _flags_save_UNION;
3036 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
3037 return NDR_ERR_SUCCESS;
3040 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
3042 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
3043 int level;
3045 uint32_t _flags_save_UNION = ndr->flags;
3046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3047 level = ndr_pull_get_switch_value(ndr, r);
3048 if (ndr_flags & NDR_SCALARS) {
3049 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3050 switch (level) {
3051 case 0: {
3052 NDR_CHECK(ndr_pull_align(ndr, 5));
3053 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3054 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3055 break; }
3057 case 1: {
3058 NDR_CHECK(ndr_pull_align(ndr, 5));
3059 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3060 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3061 break; }
3063 case 2: {
3064 NDR_CHECK(ndr_pull_align(ndr, 5));
3065 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3066 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3067 break; }
3069 case 3: {
3070 NDR_CHECK(ndr_pull_align(ndr, 5));
3071 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3072 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3073 break; }
3075 case 4: {
3076 NDR_CHECK(ndr_pull_align(ndr, 5));
3077 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3078 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3079 break; }
3081 case 5: {
3082 NDR_CHECK(ndr_pull_align(ndr, 5));
3083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3084 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3085 break; }
3087 case 6: {
3088 NDR_CHECK(ndr_pull_align(ndr, 4));
3089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3090 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3091 break; }
3093 case 7: {
3094 NDR_CHECK(ndr_pull_align(ndr, 5));
3095 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3096 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3097 break; }
3099 case 8: {
3100 NDR_CHECK(ndr_pull_align(ndr, 5));
3101 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3102 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3103 break; }
3105 case 9: {
3106 NDR_CHECK(ndr_pull_align(ndr, 5));
3107 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3108 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3109 break; }
3111 default: {
3112 break; }
3116 if (ndr_flags & NDR_BUFFERS) {
3117 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3118 switch (level) {
3119 case 0:
3120 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3121 break;
3123 case 1:
3124 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3125 break;
3127 case 2:
3128 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3129 break;
3131 case 3:
3132 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3133 break;
3135 case 4:
3136 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3137 break;
3139 case 5:
3140 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3141 break;
3143 case 6:
3144 break;
3146 case 7:
3147 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3148 break;
3150 case 8:
3151 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3152 break;
3154 case 9:
3155 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3156 break;
3158 default:
3159 break;
3163 ndr->flags = _flags_save_UNION;
3165 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3166 return NDR_ERR_SUCCESS;
3169 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3171 int level;
3173 uint32_t _flags_save_UNION = ndr->flags;
3174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3175 level = ndr_print_get_switch_value(ndr, r);
3176 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3177 switch (level) {
3178 case 0:
3179 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3180 break;
3182 case 1:
3183 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3184 break;
3186 case 2:
3187 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3188 break;
3190 case 3:
3191 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3192 break;
3194 case 4:
3195 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3196 break;
3198 case 5:
3199 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3200 break;
3202 case 6:
3203 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3204 break;
3206 case 7:
3207 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3208 break;
3210 case 8:
3211 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3212 break;
3214 case 9:
3215 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3216 break;
3218 default:
3219 break;
3222 ndr->flags = _flags_save_UNION;
3226 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3228 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
3229 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3232 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3234 if (ndr_flags & NDR_SCALARS) {
3235 NDR_CHECK(ndr_push_align(ndr, 5));
3236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3238 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3240 if (ndr_flags & NDR_BUFFERS) {
3241 if (r->devmode) {
3243 struct ndr_push *_ndr_devmode;
3244 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3245 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3246 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3250 return NDR_ERR_SUCCESS;
3253 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3255 uint32_t _ptr_devmode;
3256 TALLOC_CTX *_mem_save_devmode_0;
3257 if (ndr_flags & NDR_SCALARS) {
3258 NDR_CHECK(ndr_pull_align(ndr, 5));
3259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3261 if (_ptr_devmode) {
3262 NDR_PULL_ALLOC(ndr, r->devmode);
3263 } else {
3264 r->devmode = NULL;
3266 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3268 if (ndr_flags & NDR_BUFFERS) {
3269 if (r->devmode) {
3270 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3271 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3273 struct ndr_pull *_ndr_devmode;
3274 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3275 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3276 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3281 return NDR_ERR_SUCCESS;
3284 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3286 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3287 ndr->depth++;
3288 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
3289 ndr_print_ptr(ndr, "devmode", r->devmode);
3290 ndr->depth++;
3291 if (r->devmode) {
3292 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3294 ndr->depth--;
3295 ndr->depth--;
3298 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3300 if (ndr_flags & NDR_SCALARS) {
3301 NDR_CHECK(ndr_push_align(ndr, 5));
3302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3304 uint32_t _flags_save_string = ndr->flags;
3305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3307 ndr->flags = _flags_save_string;
3310 uint32_t _flags_save_string = ndr->flags;
3311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3312 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3313 ndr->flags = _flags_save_string;
3316 uint32_t _flags_save_string = ndr->flags;
3317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3319 ndr->flags = _flags_save_string;
3322 uint32_t _flags_save_string = ndr->flags;
3323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3325 ndr->flags = _flags_save_string;
3328 uint32_t _flags_save_string = ndr->flags;
3329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3330 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3331 ndr->flags = _flags_save_string;
3334 uint32_t _flags_save_string = ndr->flags;
3335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3336 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3337 ndr->flags = _flags_save_string;
3339 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3344 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3345 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3347 if (ndr_flags & NDR_BUFFERS) {
3349 uint32_t _flags_save_string = ndr->flags;
3350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3351 if (r->printer_name) {
3352 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3353 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3354 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3356 ndr->flags = _flags_save_string;
3359 uint32_t _flags_save_string = ndr->flags;
3360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3361 if (r->server_name) {
3362 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3363 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3364 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3366 ndr->flags = _flags_save_string;
3369 uint32_t _flags_save_string = ndr->flags;
3370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3371 if (r->user_name) {
3372 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3373 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3374 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3376 ndr->flags = _flags_save_string;
3379 uint32_t _flags_save_string = ndr->flags;
3380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3381 if (r->document_name) {
3382 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3383 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3384 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3386 ndr->flags = _flags_save_string;
3389 uint32_t _flags_save_string = ndr->flags;
3390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3391 if (r->data_type) {
3392 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3394 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3396 ndr->flags = _flags_save_string;
3399 uint32_t _flags_save_string = ndr->flags;
3400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3401 if (r->text_status) {
3402 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3404 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3406 ndr->flags = _flags_save_string;
3409 return NDR_ERR_SUCCESS;
3412 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3414 uint32_t _ptr_printer_name;
3415 TALLOC_CTX *_mem_save_printer_name_0;
3416 uint32_t _ptr_server_name;
3417 TALLOC_CTX *_mem_save_server_name_0;
3418 uint32_t _ptr_user_name;
3419 TALLOC_CTX *_mem_save_user_name_0;
3420 uint32_t _ptr_document_name;
3421 TALLOC_CTX *_mem_save_document_name_0;
3422 uint32_t _ptr_data_type;
3423 TALLOC_CTX *_mem_save_data_type_0;
3424 uint32_t _ptr_text_status;
3425 TALLOC_CTX *_mem_save_text_status_0;
3426 if (ndr_flags & NDR_SCALARS) {
3427 NDR_CHECK(ndr_pull_align(ndr, 5));
3428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3430 uint32_t _flags_save_string = ndr->flags;
3431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3433 if (_ptr_printer_name) {
3434 NDR_PULL_ALLOC(ndr, r->printer_name);
3435 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3436 } else {
3437 r->printer_name = NULL;
3439 ndr->flags = _flags_save_string;
3442 uint32_t _flags_save_string = ndr->flags;
3443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3445 if (_ptr_server_name) {
3446 NDR_PULL_ALLOC(ndr, r->server_name);
3447 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3448 } else {
3449 r->server_name = NULL;
3451 ndr->flags = _flags_save_string;
3454 uint32_t _flags_save_string = ndr->flags;
3455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3457 if (_ptr_user_name) {
3458 NDR_PULL_ALLOC(ndr, r->user_name);
3459 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3460 } else {
3461 r->user_name = NULL;
3463 ndr->flags = _flags_save_string;
3466 uint32_t _flags_save_string = ndr->flags;
3467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3469 if (_ptr_document_name) {
3470 NDR_PULL_ALLOC(ndr, r->document_name);
3471 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3472 } else {
3473 r->document_name = NULL;
3475 ndr->flags = _flags_save_string;
3478 uint32_t _flags_save_string = ndr->flags;
3479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3481 if (_ptr_data_type) {
3482 NDR_PULL_ALLOC(ndr, r->data_type);
3483 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3484 } else {
3485 r->data_type = NULL;
3487 ndr->flags = _flags_save_string;
3490 uint32_t _flags_save_string = ndr->flags;
3491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3493 if (_ptr_text_status) {
3494 NDR_PULL_ALLOC(ndr, r->text_status);
3495 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3496 } else {
3497 r->text_status = NULL;
3499 ndr->flags = _flags_save_string;
3501 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3503 if (r->priority > 99) {
3504 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3509 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3510 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3512 if (ndr_flags & NDR_BUFFERS) {
3514 uint32_t _flags_save_string = ndr->flags;
3515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3516 if (r->printer_name) {
3517 uint32_t _relative_save_offset;
3518 _relative_save_offset = ndr->offset;
3519 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3520 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3521 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3522 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3524 if (ndr->offset > ndr->relative_highest_offset) {
3525 ndr->relative_highest_offset = ndr->offset;
3527 ndr->offset = _relative_save_offset;
3529 ndr->flags = _flags_save_string;
3532 uint32_t _flags_save_string = ndr->flags;
3533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3534 if (r->server_name) {
3535 uint32_t _relative_save_offset;
3536 _relative_save_offset = ndr->offset;
3537 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3538 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3539 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3540 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3542 if (ndr->offset > ndr->relative_highest_offset) {
3543 ndr->relative_highest_offset = ndr->offset;
3545 ndr->offset = _relative_save_offset;
3547 ndr->flags = _flags_save_string;
3550 uint32_t _flags_save_string = ndr->flags;
3551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3552 if (r->user_name) {
3553 uint32_t _relative_save_offset;
3554 _relative_save_offset = ndr->offset;
3555 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3556 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3557 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3558 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3560 if (ndr->offset > ndr->relative_highest_offset) {
3561 ndr->relative_highest_offset = ndr->offset;
3563 ndr->offset = _relative_save_offset;
3565 ndr->flags = _flags_save_string;
3568 uint32_t _flags_save_string = ndr->flags;
3569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3570 if (r->document_name) {
3571 uint32_t _relative_save_offset;
3572 _relative_save_offset = ndr->offset;
3573 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3574 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3575 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3576 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3578 if (ndr->offset > ndr->relative_highest_offset) {
3579 ndr->relative_highest_offset = ndr->offset;
3581 ndr->offset = _relative_save_offset;
3583 ndr->flags = _flags_save_string;
3586 uint32_t _flags_save_string = ndr->flags;
3587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3588 if (r->data_type) {
3589 uint32_t _relative_save_offset;
3590 _relative_save_offset = ndr->offset;
3591 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3592 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3593 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3594 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3596 if (ndr->offset > ndr->relative_highest_offset) {
3597 ndr->relative_highest_offset = ndr->offset;
3599 ndr->offset = _relative_save_offset;
3601 ndr->flags = _flags_save_string;
3604 uint32_t _flags_save_string = ndr->flags;
3605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3606 if (r->text_status) {
3607 uint32_t _relative_save_offset;
3608 _relative_save_offset = ndr->offset;
3609 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3610 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3611 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3612 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3614 if (ndr->offset > ndr->relative_highest_offset) {
3615 ndr->relative_highest_offset = ndr->offset;
3617 ndr->offset = _relative_save_offset;
3619 ndr->flags = _flags_save_string;
3622 return NDR_ERR_SUCCESS;
3625 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3627 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3628 ndr->depth++;
3629 ndr_print_uint32(ndr, "job_id", r->job_id);
3630 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3631 ndr->depth++;
3632 if (r->printer_name) {
3633 ndr_print_string(ndr, "printer_name", r->printer_name);
3635 ndr->depth--;
3636 ndr_print_ptr(ndr, "server_name", r->server_name);
3637 ndr->depth++;
3638 if (r->server_name) {
3639 ndr_print_string(ndr, "server_name", r->server_name);
3641 ndr->depth--;
3642 ndr_print_ptr(ndr, "user_name", r->user_name);
3643 ndr->depth++;
3644 if (r->user_name) {
3645 ndr_print_string(ndr, "user_name", r->user_name);
3647 ndr->depth--;
3648 ndr_print_ptr(ndr, "document_name", r->document_name);
3649 ndr->depth++;
3650 if (r->document_name) {
3651 ndr_print_string(ndr, "document_name", r->document_name);
3653 ndr->depth--;
3654 ndr_print_ptr(ndr, "data_type", r->data_type);
3655 ndr->depth++;
3656 if (r->data_type) {
3657 ndr_print_string(ndr, "data_type", r->data_type);
3659 ndr->depth--;
3660 ndr_print_ptr(ndr, "text_status", r->text_status);
3661 ndr->depth++;
3662 if (r->text_status) {
3663 ndr_print_string(ndr, "text_status", r->text_status);
3665 ndr->depth--;
3666 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3667 ndr_print_uint32(ndr, "priority", r->priority);
3668 ndr_print_uint32(ndr, "position", r->position);
3669 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3670 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3671 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3672 ndr->depth--;
3675 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3677 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3680 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3682 if (ndr_flags & NDR_SCALARS) {
3683 NDR_CHECK(ndr_push_align(ndr, 5));
3684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3686 uint32_t _flags_save_string = ndr->flags;
3687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3688 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3689 ndr->flags = _flags_save_string;
3692 uint32_t _flags_save_string = ndr->flags;
3693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3694 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3695 ndr->flags = _flags_save_string;
3698 uint32_t _flags_save_string = ndr->flags;
3699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3700 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3701 ndr->flags = _flags_save_string;
3704 uint32_t _flags_save_string = ndr->flags;
3705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3706 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3707 ndr->flags = _flags_save_string;
3710 uint32_t _flags_save_string = ndr->flags;
3711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3712 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3713 ndr->flags = _flags_save_string;
3716 uint32_t _flags_save_string = ndr->flags;
3717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3718 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3719 ndr->flags = _flags_save_string;
3722 uint32_t _flags_save_string = ndr->flags;
3723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3724 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3725 ndr->flags = _flags_save_string;
3728 uint32_t _flags_save_string = ndr->flags;
3729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3730 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3731 ndr->flags = _flags_save_string;
3734 uint32_t _flags_save_string = ndr->flags;
3735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3736 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3737 ndr->flags = _flags_save_string;
3740 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3742 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3743 ndr->flags = _flags_save_spoolss_DeviceMode;
3746 uint32_t _flags_save_string = ndr->flags;
3747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3748 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3749 ndr->flags = _flags_save_string;
3752 uint32_t _flags_save_security_descriptor = ndr->flags;
3753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3754 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3755 ndr->flags = _flags_save_security_descriptor;
3757 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3764 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3767 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3769 if (ndr_flags & NDR_BUFFERS) {
3771 uint32_t _flags_save_string = ndr->flags;
3772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3773 if (r->printer_name) {
3774 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3775 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3776 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3778 ndr->flags = _flags_save_string;
3781 uint32_t _flags_save_string = ndr->flags;
3782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3783 if (r->server_name) {
3784 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3785 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3786 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3788 ndr->flags = _flags_save_string;
3791 uint32_t _flags_save_string = ndr->flags;
3792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3793 if (r->user_name) {
3794 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3795 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3796 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3798 ndr->flags = _flags_save_string;
3801 uint32_t _flags_save_string = ndr->flags;
3802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3803 if (r->document_name) {
3804 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3806 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3808 ndr->flags = _flags_save_string;
3811 uint32_t _flags_save_string = ndr->flags;
3812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3813 if (r->notify_name) {
3814 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3815 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3816 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3818 ndr->flags = _flags_save_string;
3821 uint32_t _flags_save_string = ndr->flags;
3822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3823 if (r->data_type) {
3824 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3825 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3826 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3828 ndr->flags = _flags_save_string;
3831 uint32_t _flags_save_string = ndr->flags;
3832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3833 if (r->print_processor) {
3834 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3835 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3836 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3838 ndr->flags = _flags_save_string;
3841 uint32_t _flags_save_string = ndr->flags;
3842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3843 if (r->parameters) {
3844 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3845 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3846 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3848 ndr->flags = _flags_save_string;
3851 uint32_t _flags_save_string = ndr->flags;
3852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3853 if (r->driver_name) {
3854 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3855 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3856 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3858 ndr->flags = _flags_save_string;
3861 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3863 if (r->devmode) {
3864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3866 struct ndr_push *_ndr_devmode;
3867 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3868 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3869 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3871 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3873 ndr->flags = _flags_save_spoolss_DeviceMode;
3876 uint32_t _flags_save_string = ndr->flags;
3877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3878 if (r->text_status) {
3879 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3881 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3883 ndr->flags = _flags_save_string;
3886 uint32_t _flags_save_security_descriptor = ndr->flags;
3887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3888 if (r->secdesc) {
3889 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3891 struct ndr_push *_ndr_secdesc;
3892 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3893 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3894 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3896 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3898 ndr->flags = _flags_save_security_descriptor;
3901 return NDR_ERR_SUCCESS;
3904 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3906 uint32_t _ptr_printer_name;
3907 TALLOC_CTX *_mem_save_printer_name_0;
3908 uint32_t _ptr_server_name;
3909 TALLOC_CTX *_mem_save_server_name_0;
3910 uint32_t _ptr_user_name;
3911 TALLOC_CTX *_mem_save_user_name_0;
3912 uint32_t _ptr_document_name;
3913 TALLOC_CTX *_mem_save_document_name_0;
3914 uint32_t _ptr_notify_name;
3915 TALLOC_CTX *_mem_save_notify_name_0;
3916 uint32_t _ptr_data_type;
3917 TALLOC_CTX *_mem_save_data_type_0;
3918 uint32_t _ptr_print_processor;
3919 TALLOC_CTX *_mem_save_print_processor_0;
3920 uint32_t _ptr_parameters;
3921 TALLOC_CTX *_mem_save_parameters_0;
3922 uint32_t _ptr_driver_name;
3923 TALLOC_CTX *_mem_save_driver_name_0;
3924 uint32_t _ptr_devmode;
3925 TALLOC_CTX *_mem_save_devmode_0;
3926 uint32_t _ptr_text_status;
3927 TALLOC_CTX *_mem_save_text_status_0;
3928 uint32_t _ptr_secdesc;
3929 TALLOC_CTX *_mem_save_secdesc_0;
3930 if (ndr_flags & NDR_SCALARS) {
3931 NDR_CHECK(ndr_pull_align(ndr, 5));
3932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3934 uint32_t _flags_save_string = ndr->flags;
3935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3936 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3937 if (_ptr_printer_name) {
3938 NDR_PULL_ALLOC(ndr, r->printer_name);
3939 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3940 } else {
3941 r->printer_name = NULL;
3943 ndr->flags = _flags_save_string;
3946 uint32_t _flags_save_string = ndr->flags;
3947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3949 if (_ptr_server_name) {
3950 NDR_PULL_ALLOC(ndr, r->server_name);
3951 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3952 } else {
3953 r->server_name = NULL;
3955 ndr->flags = _flags_save_string;
3958 uint32_t _flags_save_string = ndr->flags;
3959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3960 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3961 if (_ptr_user_name) {
3962 NDR_PULL_ALLOC(ndr, r->user_name);
3963 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3964 } else {
3965 r->user_name = NULL;
3967 ndr->flags = _flags_save_string;
3970 uint32_t _flags_save_string = ndr->flags;
3971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3973 if (_ptr_document_name) {
3974 NDR_PULL_ALLOC(ndr, r->document_name);
3975 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3976 } else {
3977 r->document_name = NULL;
3979 ndr->flags = _flags_save_string;
3982 uint32_t _flags_save_string = ndr->flags;
3983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3985 if (_ptr_notify_name) {
3986 NDR_PULL_ALLOC(ndr, r->notify_name);
3987 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3988 } else {
3989 r->notify_name = NULL;
3991 ndr->flags = _flags_save_string;
3994 uint32_t _flags_save_string = ndr->flags;
3995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3997 if (_ptr_data_type) {
3998 NDR_PULL_ALLOC(ndr, r->data_type);
3999 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4000 } else {
4001 r->data_type = NULL;
4003 ndr->flags = _flags_save_string;
4006 uint32_t _flags_save_string = ndr->flags;
4007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4009 if (_ptr_print_processor) {
4010 NDR_PULL_ALLOC(ndr, r->print_processor);
4011 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4012 } else {
4013 r->print_processor = NULL;
4015 ndr->flags = _flags_save_string;
4018 uint32_t _flags_save_string = ndr->flags;
4019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4021 if (_ptr_parameters) {
4022 NDR_PULL_ALLOC(ndr, r->parameters);
4023 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4024 } else {
4025 r->parameters = NULL;
4027 ndr->flags = _flags_save_string;
4030 uint32_t _flags_save_string = ndr->flags;
4031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4033 if (_ptr_driver_name) {
4034 NDR_PULL_ALLOC(ndr, r->driver_name);
4035 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4036 } else {
4037 r->driver_name = NULL;
4039 ndr->flags = _flags_save_string;
4042 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4045 if (_ptr_devmode) {
4046 NDR_PULL_ALLOC(ndr, r->devmode);
4047 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4048 } else {
4049 r->devmode = NULL;
4051 ndr->flags = _flags_save_spoolss_DeviceMode;
4054 uint32_t _flags_save_string = ndr->flags;
4055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4057 if (_ptr_text_status) {
4058 NDR_PULL_ALLOC(ndr, r->text_status);
4059 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4060 } else {
4061 r->text_status = NULL;
4063 ndr->flags = _flags_save_string;
4066 uint32_t _flags_save_security_descriptor = ndr->flags;
4067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4069 if (_ptr_secdesc) {
4070 NDR_PULL_ALLOC(ndr, r->secdesc);
4071 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4072 } else {
4073 r->secdesc = NULL;
4075 ndr->flags = _flags_save_security_descriptor;
4077 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4078 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4079 if (r->priority > 99) {
4080 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4087 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4088 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4090 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4092 if (ndr_flags & NDR_BUFFERS) {
4094 uint32_t _flags_save_string = ndr->flags;
4095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4096 if (r->printer_name) {
4097 uint32_t _relative_save_offset;
4098 _relative_save_offset = ndr->offset;
4099 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4100 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4101 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4102 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4104 if (ndr->offset > ndr->relative_highest_offset) {
4105 ndr->relative_highest_offset = ndr->offset;
4107 ndr->offset = _relative_save_offset;
4109 ndr->flags = _flags_save_string;
4112 uint32_t _flags_save_string = ndr->flags;
4113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4114 if (r->server_name) {
4115 uint32_t _relative_save_offset;
4116 _relative_save_offset = ndr->offset;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4118 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4119 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4122 if (ndr->offset > ndr->relative_highest_offset) {
4123 ndr->relative_highest_offset = ndr->offset;
4125 ndr->offset = _relative_save_offset;
4127 ndr->flags = _flags_save_string;
4130 uint32_t _flags_save_string = ndr->flags;
4131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4132 if (r->user_name) {
4133 uint32_t _relative_save_offset;
4134 _relative_save_offset = ndr->offset;
4135 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4136 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4137 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4138 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4140 if (ndr->offset > ndr->relative_highest_offset) {
4141 ndr->relative_highest_offset = ndr->offset;
4143 ndr->offset = _relative_save_offset;
4145 ndr->flags = _flags_save_string;
4148 uint32_t _flags_save_string = ndr->flags;
4149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4150 if (r->document_name) {
4151 uint32_t _relative_save_offset;
4152 _relative_save_offset = ndr->offset;
4153 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4154 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4155 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4156 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4158 if (ndr->offset > ndr->relative_highest_offset) {
4159 ndr->relative_highest_offset = ndr->offset;
4161 ndr->offset = _relative_save_offset;
4163 ndr->flags = _flags_save_string;
4166 uint32_t _flags_save_string = ndr->flags;
4167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4168 if (r->notify_name) {
4169 uint32_t _relative_save_offset;
4170 _relative_save_offset = ndr->offset;
4171 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4172 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4173 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4174 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4176 if (ndr->offset > ndr->relative_highest_offset) {
4177 ndr->relative_highest_offset = ndr->offset;
4179 ndr->offset = _relative_save_offset;
4181 ndr->flags = _flags_save_string;
4184 uint32_t _flags_save_string = ndr->flags;
4185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4186 if (r->data_type) {
4187 uint32_t _relative_save_offset;
4188 _relative_save_offset = ndr->offset;
4189 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4190 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4191 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4192 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4194 if (ndr->offset > ndr->relative_highest_offset) {
4195 ndr->relative_highest_offset = ndr->offset;
4197 ndr->offset = _relative_save_offset;
4199 ndr->flags = _flags_save_string;
4202 uint32_t _flags_save_string = ndr->flags;
4203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4204 if (r->print_processor) {
4205 uint32_t _relative_save_offset;
4206 _relative_save_offset = ndr->offset;
4207 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4208 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4209 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4210 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4212 if (ndr->offset > ndr->relative_highest_offset) {
4213 ndr->relative_highest_offset = ndr->offset;
4215 ndr->offset = _relative_save_offset;
4217 ndr->flags = _flags_save_string;
4220 uint32_t _flags_save_string = ndr->flags;
4221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4222 if (r->parameters) {
4223 uint32_t _relative_save_offset;
4224 _relative_save_offset = ndr->offset;
4225 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4226 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4227 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4228 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4230 if (ndr->offset > ndr->relative_highest_offset) {
4231 ndr->relative_highest_offset = ndr->offset;
4233 ndr->offset = _relative_save_offset;
4235 ndr->flags = _flags_save_string;
4238 uint32_t _flags_save_string = ndr->flags;
4239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4240 if (r->driver_name) {
4241 uint32_t _relative_save_offset;
4242 _relative_save_offset = ndr->offset;
4243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4244 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4245 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4248 if (ndr->offset > ndr->relative_highest_offset) {
4249 ndr->relative_highest_offset = ndr->offset;
4251 ndr->offset = _relative_save_offset;
4253 ndr->flags = _flags_save_string;
4256 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4258 if (r->devmode) {
4259 uint32_t _relative_save_offset;
4260 _relative_save_offset = ndr->offset;
4261 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4262 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4263 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4265 struct ndr_pull *_ndr_devmode;
4266 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4267 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4268 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4271 if (ndr->offset > ndr->relative_highest_offset) {
4272 ndr->relative_highest_offset = ndr->offset;
4274 ndr->offset = _relative_save_offset;
4276 ndr->flags = _flags_save_spoolss_DeviceMode;
4279 uint32_t _flags_save_string = ndr->flags;
4280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4281 if (r->text_status) {
4282 uint32_t _relative_save_offset;
4283 _relative_save_offset = ndr->offset;
4284 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4285 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4286 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4287 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4289 if (ndr->offset > ndr->relative_highest_offset) {
4290 ndr->relative_highest_offset = ndr->offset;
4292 ndr->offset = _relative_save_offset;
4294 ndr->flags = _flags_save_string;
4297 uint32_t _flags_save_security_descriptor = ndr->flags;
4298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4299 if (r->secdesc) {
4300 uint32_t _relative_save_offset;
4301 _relative_save_offset = ndr->offset;
4302 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4303 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4304 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4306 struct ndr_pull *_ndr_secdesc;
4307 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4308 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4309 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4312 if (ndr->offset > ndr->relative_highest_offset) {
4313 ndr->relative_highest_offset = ndr->offset;
4315 ndr->offset = _relative_save_offset;
4317 ndr->flags = _flags_save_security_descriptor;
4320 return NDR_ERR_SUCCESS;
4323 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4325 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4326 ndr->depth++;
4327 ndr_print_uint32(ndr, "job_id", r->job_id);
4328 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4329 ndr->depth++;
4330 if (r->printer_name) {
4331 ndr_print_string(ndr, "printer_name", r->printer_name);
4333 ndr->depth--;
4334 ndr_print_ptr(ndr, "server_name", r->server_name);
4335 ndr->depth++;
4336 if (r->server_name) {
4337 ndr_print_string(ndr, "server_name", r->server_name);
4339 ndr->depth--;
4340 ndr_print_ptr(ndr, "user_name", r->user_name);
4341 ndr->depth++;
4342 if (r->user_name) {
4343 ndr_print_string(ndr, "user_name", r->user_name);
4345 ndr->depth--;
4346 ndr_print_ptr(ndr, "document_name", r->document_name);
4347 ndr->depth++;
4348 if (r->document_name) {
4349 ndr_print_string(ndr, "document_name", r->document_name);
4351 ndr->depth--;
4352 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4353 ndr->depth++;
4354 if (r->notify_name) {
4355 ndr_print_string(ndr, "notify_name", r->notify_name);
4357 ndr->depth--;
4358 ndr_print_ptr(ndr, "data_type", r->data_type);
4359 ndr->depth++;
4360 if (r->data_type) {
4361 ndr_print_string(ndr, "data_type", r->data_type);
4363 ndr->depth--;
4364 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4365 ndr->depth++;
4366 if (r->print_processor) {
4367 ndr_print_string(ndr, "print_processor", r->print_processor);
4369 ndr->depth--;
4370 ndr_print_ptr(ndr, "parameters", r->parameters);
4371 ndr->depth++;
4372 if (r->parameters) {
4373 ndr_print_string(ndr, "parameters", r->parameters);
4375 ndr->depth--;
4376 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4377 ndr->depth++;
4378 if (r->driver_name) {
4379 ndr_print_string(ndr, "driver_name", r->driver_name);
4381 ndr->depth--;
4382 ndr_print_ptr(ndr, "devmode", r->devmode);
4383 ndr->depth++;
4384 if (r->devmode) {
4385 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4387 ndr->depth--;
4388 ndr_print_ptr(ndr, "text_status", r->text_status);
4389 ndr->depth++;
4390 if (r->text_status) {
4391 ndr_print_string(ndr, "text_status", r->text_status);
4393 ndr->depth--;
4394 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4395 ndr->depth++;
4396 if (r->secdesc) {
4397 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4399 ndr->depth--;
4400 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4401 ndr_print_uint32(ndr, "priority", r->priority);
4402 ndr_print_uint32(ndr, "position", r->position);
4403 ndr_print_uint32(ndr, "start_time", r->start_time);
4404 ndr_print_uint32(ndr, "until_time", r->until_time);
4405 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4406 ndr_print_uint32(ndr, "size", r->size);
4407 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4408 ndr_print_uint32(ndr, "time", r->time);
4409 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4410 ndr->depth--;
4413 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4415 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4418 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4420 if (ndr_flags & NDR_SCALARS) {
4421 NDR_CHECK(ndr_push_align(ndr, 4));
4422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4425 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4427 if (ndr_flags & NDR_BUFFERS) {
4429 return NDR_ERR_SUCCESS;
4432 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4434 if (ndr_flags & NDR_SCALARS) {
4435 NDR_CHECK(ndr_pull_align(ndr, 4));
4436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4439 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4441 if (ndr_flags & NDR_BUFFERS) {
4443 return NDR_ERR_SUCCESS;
4446 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4448 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4449 ndr->depth++;
4450 ndr_print_uint32(ndr, "job_id", r->job_id);
4451 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4452 ndr_print_uint32(ndr, "reserved", r->reserved);
4453 ndr->depth--;
4456 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4458 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4461 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4463 if (ndr_flags & NDR_SCALARS) {
4464 NDR_CHECK(ndr_push_align(ndr, 5));
4465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4467 uint32_t _flags_save_string = ndr->flags;
4468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4469 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4470 ndr->flags = _flags_save_string;
4473 uint32_t _flags_save_string = ndr->flags;
4474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4475 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4476 ndr->flags = _flags_save_string;
4479 uint32_t _flags_save_string = ndr->flags;
4480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4481 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4482 ndr->flags = _flags_save_string;
4485 uint32_t _flags_save_string = ndr->flags;
4486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4487 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4488 ndr->flags = _flags_save_string;
4491 uint32_t _flags_save_string = ndr->flags;
4492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4493 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4494 ndr->flags = _flags_save_string;
4497 uint32_t _flags_save_string = ndr->flags;
4498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4499 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4500 ndr->flags = _flags_save_string;
4503 uint32_t _flags_save_string = ndr->flags;
4504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4505 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4506 ndr->flags = _flags_save_string;
4509 uint32_t _flags_save_string = ndr->flags;
4510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4512 ndr->flags = _flags_save_string;
4515 uint32_t _flags_save_string = ndr->flags;
4516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4518 ndr->flags = _flags_save_string;
4521 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4524 ndr->flags = _flags_save_spoolss_DeviceMode;
4527 uint32_t _flags_save_string = ndr->flags;
4528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4530 ndr->flags = _flags_save_string;
4533 uint32_t _flags_save_security_descriptor = ndr->flags;
4534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4536 ndr->flags = _flags_save_security_descriptor;
4538 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4545 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4549 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4551 if (ndr_flags & NDR_BUFFERS) {
4553 uint32_t _flags_save_string = ndr->flags;
4554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4555 if (r->printer_name) {
4556 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4558 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4560 ndr->flags = _flags_save_string;
4563 uint32_t _flags_save_string = ndr->flags;
4564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4565 if (r->server_name) {
4566 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4567 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4568 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
4570 ndr->flags = _flags_save_string;
4573 uint32_t _flags_save_string = ndr->flags;
4574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4575 if (r->user_name) {
4576 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4578 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
4580 ndr->flags = _flags_save_string;
4583 uint32_t _flags_save_string = ndr->flags;
4584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4585 if (r->document_name) {
4586 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4587 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4588 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
4590 ndr->flags = _flags_save_string;
4593 uint32_t _flags_save_string = ndr->flags;
4594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4595 if (r->notify_name) {
4596 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4597 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4598 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
4600 ndr->flags = _flags_save_string;
4603 uint32_t _flags_save_string = ndr->flags;
4604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4605 if (r->data_type) {
4606 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4607 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4608 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
4610 ndr->flags = _flags_save_string;
4613 uint32_t _flags_save_string = ndr->flags;
4614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4615 if (r->print_processor) {
4616 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4617 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4618 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
4620 ndr->flags = _flags_save_string;
4623 uint32_t _flags_save_string = ndr->flags;
4624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4625 if (r->parameters) {
4626 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4628 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
4630 ndr->flags = _flags_save_string;
4633 uint32_t _flags_save_string = ndr->flags;
4634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4635 if (r->driver_name) {
4636 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4637 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4638 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4640 ndr->flags = _flags_save_string;
4643 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4645 if (r->devmode) {
4646 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4648 struct ndr_push *_ndr_devmode;
4649 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4650 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4651 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4653 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4655 ndr->flags = _flags_save_spoolss_DeviceMode;
4658 uint32_t _flags_save_string = ndr->flags;
4659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4660 if (r->text_status) {
4661 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4662 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4663 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4665 ndr->flags = _flags_save_string;
4668 uint32_t _flags_save_security_descriptor = ndr->flags;
4669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4670 if (r->secdesc) {
4671 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4673 struct ndr_push *_ndr_secdesc;
4674 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4675 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4676 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4678 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4680 ndr->flags = _flags_save_security_descriptor;
4683 return NDR_ERR_SUCCESS;
4686 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4688 uint32_t _ptr_printer_name;
4689 TALLOC_CTX *_mem_save_printer_name_0;
4690 uint32_t _ptr_server_name;
4691 TALLOC_CTX *_mem_save_server_name_0;
4692 uint32_t _ptr_user_name;
4693 TALLOC_CTX *_mem_save_user_name_0;
4694 uint32_t _ptr_document_name;
4695 TALLOC_CTX *_mem_save_document_name_0;
4696 uint32_t _ptr_notify_name;
4697 TALLOC_CTX *_mem_save_notify_name_0;
4698 uint32_t _ptr_data_type;
4699 TALLOC_CTX *_mem_save_data_type_0;
4700 uint32_t _ptr_print_processor;
4701 TALLOC_CTX *_mem_save_print_processor_0;
4702 uint32_t _ptr_parameters;
4703 TALLOC_CTX *_mem_save_parameters_0;
4704 uint32_t _ptr_driver_name;
4705 TALLOC_CTX *_mem_save_driver_name_0;
4706 uint32_t _ptr_devmode;
4707 TALLOC_CTX *_mem_save_devmode_0;
4708 uint32_t _ptr_text_status;
4709 TALLOC_CTX *_mem_save_text_status_0;
4710 uint32_t _ptr_secdesc;
4711 TALLOC_CTX *_mem_save_secdesc_0;
4712 if (ndr_flags & NDR_SCALARS) {
4713 NDR_CHECK(ndr_pull_align(ndr, 5));
4714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4716 uint32_t _flags_save_string = ndr->flags;
4717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4719 if (_ptr_printer_name) {
4720 NDR_PULL_ALLOC(ndr, r->printer_name);
4721 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4722 } else {
4723 r->printer_name = NULL;
4725 ndr->flags = _flags_save_string;
4728 uint32_t _flags_save_string = ndr->flags;
4729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4731 if (_ptr_server_name) {
4732 NDR_PULL_ALLOC(ndr, r->server_name);
4733 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4734 } else {
4735 r->server_name = NULL;
4737 ndr->flags = _flags_save_string;
4740 uint32_t _flags_save_string = ndr->flags;
4741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4743 if (_ptr_user_name) {
4744 NDR_PULL_ALLOC(ndr, r->user_name);
4745 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4746 } else {
4747 r->user_name = NULL;
4749 ndr->flags = _flags_save_string;
4752 uint32_t _flags_save_string = ndr->flags;
4753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4755 if (_ptr_document_name) {
4756 NDR_PULL_ALLOC(ndr, r->document_name);
4757 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4758 } else {
4759 r->document_name = NULL;
4761 ndr->flags = _flags_save_string;
4764 uint32_t _flags_save_string = ndr->flags;
4765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4767 if (_ptr_notify_name) {
4768 NDR_PULL_ALLOC(ndr, r->notify_name);
4769 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4770 } else {
4771 r->notify_name = NULL;
4773 ndr->flags = _flags_save_string;
4776 uint32_t _flags_save_string = ndr->flags;
4777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4779 if (_ptr_data_type) {
4780 NDR_PULL_ALLOC(ndr, r->data_type);
4781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4782 } else {
4783 r->data_type = NULL;
4785 ndr->flags = _flags_save_string;
4788 uint32_t _flags_save_string = ndr->flags;
4789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4791 if (_ptr_print_processor) {
4792 NDR_PULL_ALLOC(ndr, r->print_processor);
4793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4794 } else {
4795 r->print_processor = NULL;
4797 ndr->flags = _flags_save_string;
4800 uint32_t _flags_save_string = ndr->flags;
4801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4803 if (_ptr_parameters) {
4804 NDR_PULL_ALLOC(ndr, r->parameters);
4805 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4806 } else {
4807 r->parameters = NULL;
4809 ndr->flags = _flags_save_string;
4812 uint32_t _flags_save_string = ndr->flags;
4813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4815 if (_ptr_driver_name) {
4816 NDR_PULL_ALLOC(ndr, r->driver_name);
4817 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4818 } else {
4819 r->driver_name = NULL;
4821 ndr->flags = _flags_save_string;
4824 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4827 if (_ptr_devmode) {
4828 NDR_PULL_ALLOC(ndr, r->devmode);
4829 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4830 } else {
4831 r->devmode = NULL;
4833 ndr->flags = _flags_save_spoolss_DeviceMode;
4836 uint32_t _flags_save_string = ndr->flags;
4837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4839 if (_ptr_text_status) {
4840 NDR_PULL_ALLOC(ndr, r->text_status);
4841 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4842 } else {
4843 r->text_status = NULL;
4845 ndr->flags = _flags_save_string;
4848 uint32_t _flags_save_security_descriptor = ndr->flags;
4849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4851 if (_ptr_secdesc) {
4852 NDR_PULL_ALLOC(ndr, r->secdesc);
4853 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4854 } else {
4855 r->secdesc = NULL;
4857 ndr->flags = _flags_save_security_descriptor;
4859 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4861 if (r->priority > 99) {
4862 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4869 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4873 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4875 if (ndr_flags & NDR_BUFFERS) {
4877 uint32_t _flags_save_string = ndr->flags;
4878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4879 if (r->printer_name) {
4880 uint32_t _relative_save_offset;
4881 _relative_save_offset = ndr->offset;
4882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4883 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4884 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4887 if (ndr->offset > ndr->relative_highest_offset) {
4888 ndr->relative_highest_offset = ndr->offset;
4890 ndr->offset = _relative_save_offset;
4892 ndr->flags = _flags_save_string;
4895 uint32_t _flags_save_string = ndr->flags;
4896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4897 if (r->server_name) {
4898 uint32_t _relative_save_offset;
4899 _relative_save_offset = ndr->offset;
4900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4901 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4902 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4905 if (ndr->offset > ndr->relative_highest_offset) {
4906 ndr->relative_highest_offset = ndr->offset;
4908 ndr->offset = _relative_save_offset;
4910 ndr->flags = _flags_save_string;
4913 uint32_t _flags_save_string = ndr->flags;
4914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4915 if (r->user_name) {
4916 uint32_t _relative_save_offset;
4917 _relative_save_offset = ndr->offset;
4918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4919 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4920 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4923 if (ndr->offset > ndr->relative_highest_offset) {
4924 ndr->relative_highest_offset = ndr->offset;
4926 ndr->offset = _relative_save_offset;
4928 ndr->flags = _flags_save_string;
4931 uint32_t _flags_save_string = ndr->flags;
4932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4933 if (r->document_name) {
4934 uint32_t _relative_save_offset;
4935 _relative_save_offset = ndr->offset;
4936 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4937 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4938 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4939 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4941 if (ndr->offset > ndr->relative_highest_offset) {
4942 ndr->relative_highest_offset = ndr->offset;
4944 ndr->offset = _relative_save_offset;
4946 ndr->flags = _flags_save_string;
4949 uint32_t _flags_save_string = ndr->flags;
4950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4951 if (r->notify_name) {
4952 uint32_t _relative_save_offset;
4953 _relative_save_offset = ndr->offset;
4954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4955 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4956 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4959 if (ndr->offset > ndr->relative_highest_offset) {
4960 ndr->relative_highest_offset = ndr->offset;
4962 ndr->offset = _relative_save_offset;
4964 ndr->flags = _flags_save_string;
4967 uint32_t _flags_save_string = ndr->flags;
4968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4969 if (r->data_type) {
4970 uint32_t _relative_save_offset;
4971 _relative_save_offset = ndr->offset;
4972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4973 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4974 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4977 if (ndr->offset > ndr->relative_highest_offset) {
4978 ndr->relative_highest_offset = ndr->offset;
4980 ndr->offset = _relative_save_offset;
4982 ndr->flags = _flags_save_string;
4985 uint32_t _flags_save_string = ndr->flags;
4986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4987 if (r->print_processor) {
4988 uint32_t _relative_save_offset;
4989 _relative_save_offset = ndr->offset;
4990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4991 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4992 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4995 if (ndr->offset > ndr->relative_highest_offset) {
4996 ndr->relative_highest_offset = ndr->offset;
4998 ndr->offset = _relative_save_offset;
5000 ndr->flags = _flags_save_string;
5003 uint32_t _flags_save_string = ndr->flags;
5004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5005 if (r->parameters) {
5006 uint32_t _relative_save_offset;
5007 _relative_save_offset = ndr->offset;
5008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
5009 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5010 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
5012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5013 if (ndr->offset > ndr->relative_highest_offset) {
5014 ndr->relative_highest_offset = ndr->offset;
5016 ndr->offset = _relative_save_offset;
5018 ndr->flags = _flags_save_string;
5021 uint32_t _flags_save_string = ndr->flags;
5022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5023 if (r->driver_name) {
5024 uint32_t _relative_save_offset;
5025 _relative_save_offset = ndr->offset;
5026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
5027 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5028 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
5030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5031 if (ndr->offset > ndr->relative_highest_offset) {
5032 ndr->relative_highest_offset = ndr->offset;
5034 ndr->offset = _relative_save_offset;
5036 ndr->flags = _flags_save_string;
5039 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
5040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5041 if (r->devmode) {
5042 uint32_t _relative_save_offset;
5043 _relative_save_offset = ndr->offset;
5044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
5045 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
5046 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
5048 struct ndr_pull *_ndr_devmode;
5049 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
5050 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
5051 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
5053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
5054 if (ndr->offset > ndr->relative_highest_offset) {
5055 ndr->relative_highest_offset = ndr->offset;
5057 ndr->offset = _relative_save_offset;
5059 ndr->flags = _flags_save_spoolss_DeviceMode;
5062 uint32_t _flags_save_string = ndr->flags;
5063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5064 if (r->text_status) {
5065 uint32_t _relative_save_offset;
5066 _relative_save_offset = ndr->offset;
5067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
5068 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5069 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
5071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5072 if (ndr->offset > ndr->relative_highest_offset) {
5073 ndr->relative_highest_offset = ndr->offset;
5075 ndr->offset = _relative_save_offset;
5077 ndr->flags = _flags_save_string;
5080 uint32_t _flags_save_security_descriptor = ndr->flags;
5081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5082 if (r->secdesc) {
5083 uint32_t _relative_save_offset;
5084 _relative_save_offset = ndr->offset;
5085 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
5086 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
5087 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
5089 struct ndr_pull *_ndr_secdesc;
5090 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
5091 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5092 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
5094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
5095 if (ndr->offset > ndr->relative_highest_offset) {
5096 ndr->relative_highest_offset = ndr->offset;
5098 ndr->offset = _relative_save_offset;
5100 ndr->flags = _flags_save_security_descriptor;
5103 return NDR_ERR_SUCCESS;
5106 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
5108 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
5109 ndr->depth++;
5110 ndr_print_uint32(ndr, "job_id", r->job_id);
5111 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5112 ndr->depth++;
5113 if (r->printer_name) {
5114 ndr_print_string(ndr, "printer_name", r->printer_name);
5116 ndr->depth--;
5117 ndr_print_ptr(ndr, "server_name", r->server_name);
5118 ndr->depth++;
5119 if (r->server_name) {
5120 ndr_print_string(ndr, "server_name", r->server_name);
5122 ndr->depth--;
5123 ndr_print_ptr(ndr, "user_name", r->user_name);
5124 ndr->depth++;
5125 if (r->user_name) {
5126 ndr_print_string(ndr, "user_name", r->user_name);
5128 ndr->depth--;
5129 ndr_print_ptr(ndr, "document_name", r->document_name);
5130 ndr->depth++;
5131 if (r->document_name) {
5132 ndr_print_string(ndr, "document_name", r->document_name);
5134 ndr->depth--;
5135 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5136 ndr->depth++;
5137 if (r->notify_name) {
5138 ndr_print_string(ndr, "notify_name", r->notify_name);
5140 ndr->depth--;
5141 ndr_print_ptr(ndr, "data_type", r->data_type);
5142 ndr->depth++;
5143 if (r->data_type) {
5144 ndr_print_string(ndr, "data_type", r->data_type);
5146 ndr->depth--;
5147 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5148 ndr->depth++;
5149 if (r->print_processor) {
5150 ndr_print_string(ndr, "print_processor", r->print_processor);
5152 ndr->depth--;
5153 ndr_print_ptr(ndr, "parameters", r->parameters);
5154 ndr->depth++;
5155 if (r->parameters) {
5156 ndr_print_string(ndr, "parameters", r->parameters);
5158 ndr->depth--;
5159 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5160 ndr->depth++;
5161 if (r->driver_name) {
5162 ndr_print_string(ndr, "driver_name", r->driver_name);
5164 ndr->depth--;
5165 ndr_print_ptr(ndr, "devmode", r->devmode);
5166 ndr->depth++;
5167 if (r->devmode) {
5168 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
5170 ndr->depth--;
5171 ndr_print_ptr(ndr, "text_status", r->text_status);
5172 ndr->depth++;
5173 if (r->text_status) {
5174 ndr_print_string(ndr, "text_status", r->text_status);
5176 ndr->depth--;
5177 ndr_print_ptr(ndr, "secdesc", r->secdesc);
5178 ndr->depth++;
5179 if (r->secdesc) {
5180 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
5182 ndr->depth--;
5183 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5184 ndr_print_uint32(ndr, "priority", r->priority);
5185 ndr_print_uint32(ndr, "position", r->position);
5186 ndr_print_uint32(ndr, "start_time", r->start_time);
5187 ndr_print_uint32(ndr, "until_time", r->until_time);
5188 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5189 ndr_print_uint32(ndr, "size", r->size);
5190 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5191 ndr_print_uint32(ndr, "time", r->time);
5192 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5193 ndr_print_uint32(ndr, "size_high", r->size_high);
5194 ndr->depth--;
5197 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
5199 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
5202 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
5204 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5206 uint32_t _flags_save_UNION = ndr->flags;
5207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5208 if (ndr_flags & NDR_SCALARS) {
5209 int level = ndr_push_get_switch_value(ndr, r);
5210 NDR_CHECK(ndr_push_union_align(ndr, 5));
5211 switch (level) {
5212 case 1: {
5213 NDR_CHECK(ndr_push_align(ndr, 5));
5214 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5215 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5216 break; }
5218 case 2: {
5219 NDR_CHECK(ndr_push_align(ndr, 5));
5220 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5221 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5222 break; }
5224 case 3: {
5225 NDR_CHECK(ndr_push_align(ndr, 4));
5226 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5227 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5228 break; }
5230 case 4: {
5231 NDR_CHECK(ndr_push_align(ndr, 5));
5232 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5233 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5234 break; }
5236 default: {
5237 break; }
5241 if (ndr_flags & NDR_BUFFERS) {
5242 int level = ndr_push_get_switch_value(ndr, r);
5243 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5244 switch (level) {
5245 case 1:
5246 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5247 break;
5249 case 2:
5250 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5251 break;
5253 case 3:
5254 break;
5256 case 4:
5257 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5258 break;
5260 default:
5261 break;
5265 ndr->flags = _flags_save_UNION;
5267 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5268 return NDR_ERR_SUCCESS;
5271 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
5273 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5274 int level;
5276 uint32_t _flags_save_UNION = ndr->flags;
5277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5278 level = ndr_pull_get_switch_value(ndr, r);
5279 if (ndr_flags & NDR_SCALARS) {
5280 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5281 switch (level) {
5282 case 1: {
5283 NDR_CHECK(ndr_pull_align(ndr, 5));
5284 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5285 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5286 break; }
5288 case 2: {
5289 NDR_CHECK(ndr_pull_align(ndr, 5));
5290 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5291 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5292 break; }
5294 case 3: {
5295 NDR_CHECK(ndr_pull_align(ndr, 4));
5296 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5297 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5298 break; }
5300 case 4: {
5301 NDR_CHECK(ndr_pull_align(ndr, 5));
5302 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5303 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5304 break; }
5306 default: {
5307 break; }
5311 if (ndr_flags & NDR_BUFFERS) {
5312 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5313 switch (level) {
5314 case 1:
5315 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5316 break;
5318 case 2:
5319 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5320 break;
5322 case 3:
5323 break;
5325 case 4:
5326 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5327 break;
5329 default:
5330 break;
5334 ndr->flags = _flags_save_UNION;
5336 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5337 return NDR_ERR_SUCCESS;
5340 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5342 int level;
5344 uint32_t _flags_save_UNION = ndr->flags;
5345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5346 level = ndr_print_get_switch_value(ndr, r);
5347 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5348 switch (level) {
5349 case 1:
5350 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5351 break;
5353 case 2:
5354 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5355 break;
5357 case 3:
5358 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5359 break;
5361 case 4:
5362 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5363 break;
5365 default:
5366 break;
5369 ndr->flags = _flags_save_UNION;
5373 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5375 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
5376 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5379 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5381 if (ndr_flags & NDR_SCALARS) {
5382 NDR_CHECK(ndr_push_align(ndr, 5));
5383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5390 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5395 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5396 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5398 if (ndr_flags & NDR_BUFFERS) {
5399 if (r->printer_name) {
5400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5405 if (r->server_name) {
5406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5407 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5408 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5409 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5411 if (r->user_name) {
5412 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5413 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5414 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5417 if (r->document_name) {
5418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5419 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5420 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5423 if (r->data_type) {
5424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5429 if (r->text_status) {
5430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5436 return NDR_ERR_SUCCESS;
5439 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5441 uint32_t _ptr_printer_name;
5442 TALLOC_CTX *_mem_save_printer_name_0;
5443 uint32_t _ptr_server_name;
5444 TALLOC_CTX *_mem_save_server_name_0;
5445 uint32_t _ptr_user_name;
5446 TALLOC_CTX *_mem_save_user_name_0;
5447 uint32_t _ptr_document_name;
5448 TALLOC_CTX *_mem_save_document_name_0;
5449 uint32_t _ptr_data_type;
5450 TALLOC_CTX *_mem_save_data_type_0;
5451 uint32_t _ptr_text_status;
5452 TALLOC_CTX *_mem_save_text_status_0;
5453 if (ndr_flags & NDR_SCALARS) {
5454 NDR_CHECK(ndr_pull_align(ndr, 5));
5455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5457 if (_ptr_printer_name) {
5458 NDR_PULL_ALLOC(ndr, r->printer_name);
5459 } else {
5460 r->printer_name = NULL;
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5463 if (_ptr_server_name) {
5464 NDR_PULL_ALLOC(ndr, r->server_name);
5465 } else {
5466 r->server_name = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5469 if (_ptr_user_name) {
5470 NDR_PULL_ALLOC(ndr, r->user_name);
5471 } else {
5472 r->user_name = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5475 if (_ptr_document_name) {
5476 NDR_PULL_ALLOC(ndr, r->document_name);
5477 } else {
5478 r->document_name = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5481 if (_ptr_data_type) {
5482 NDR_PULL_ALLOC(ndr, r->data_type);
5483 } else {
5484 r->data_type = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5487 if (_ptr_text_status) {
5488 NDR_PULL_ALLOC(ndr, r->text_status);
5489 } else {
5490 r->text_status = NULL;
5492 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5494 if (r->priority > 99) {
5495 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5500 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5501 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5503 if (ndr_flags & NDR_BUFFERS) {
5504 if (r->printer_name) {
5505 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5506 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5507 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5508 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5509 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5510 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5512 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5513 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5516 if (r->server_name) {
5517 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5518 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5519 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5520 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5521 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5522 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5524 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5525 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5528 if (r->user_name) {
5529 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5530 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5531 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5532 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5533 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5534 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5540 if (r->document_name) {
5541 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5542 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5543 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5544 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5545 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5546 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5552 if (r->data_type) {
5553 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5554 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5555 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5556 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5557 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5558 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5564 if (r->text_status) {
5565 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5566 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5568 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5569 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5577 return NDR_ERR_SUCCESS;
5580 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5582 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5583 ndr->depth++;
5584 ndr_print_uint32(ndr, "job_id", r->job_id);
5585 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5586 ndr->depth++;
5587 if (r->printer_name) {
5588 ndr_print_string(ndr, "printer_name", r->printer_name);
5590 ndr->depth--;
5591 ndr_print_ptr(ndr, "server_name", r->server_name);
5592 ndr->depth++;
5593 if (r->server_name) {
5594 ndr_print_string(ndr, "server_name", r->server_name);
5596 ndr->depth--;
5597 ndr_print_ptr(ndr, "user_name", r->user_name);
5598 ndr->depth++;
5599 if (r->user_name) {
5600 ndr_print_string(ndr, "user_name", r->user_name);
5602 ndr->depth--;
5603 ndr_print_ptr(ndr, "document_name", r->document_name);
5604 ndr->depth++;
5605 if (r->document_name) {
5606 ndr_print_string(ndr, "document_name", r->document_name);
5608 ndr->depth--;
5609 ndr_print_ptr(ndr, "data_type", r->data_type);
5610 ndr->depth++;
5611 if (r->data_type) {
5612 ndr_print_string(ndr, "data_type", r->data_type);
5614 ndr->depth--;
5615 ndr_print_ptr(ndr, "text_status", r->text_status);
5616 ndr->depth++;
5617 if (r->text_status) {
5618 ndr_print_string(ndr, "text_status", r->text_status);
5620 ndr->depth--;
5621 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5622 ndr_print_uint32(ndr, "priority", r->priority);
5623 ndr_print_uint32(ndr, "position", r->position);
5624 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5625 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5626 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5627 ndr->depth--;
5630 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5632 if (ndr_flags & NDR_SCALARS) {
5633 NDR_CHECK(ndr_push_align(ndr, 5));
5634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5638 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5639 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5640 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5641 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5642 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5643 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5647 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5654 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5657 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5659 if (ndr_flags & NDR_BUFFERS) {
5660 if (r->printer_name) {
5661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5666 if (r->server_name) {
5667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5670 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5672 if (r->user_name) {
5673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5678 if (r->document_name) {
5679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5681 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5682 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5684 if (r->notify_name) {
5685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5688 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5690 if (r->data_type) {
5691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5694 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5696 if (r->print_processor) {
5697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5700 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5702 if (r->parameters) {
5703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5706 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5708 if (r->driver_name) {
5709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5714 if (r->text_status) {
5715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5721 return NDR_ERR_SUCCESS;
5724 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5726 uint32_t _ptr_printer_name;
5727 TALLOC_CTX *_mem_save_printer_name_0;
5728 uint32_t _ptr_server_name;
5729 TALLOC_CTX *_mem_save_server_name_0;
5730 uint32_t _ptr_user_name;
5731 TALLOC_CTX *_mem_save_user_name_0;
5732 uint32_t _ptr_document_name;
5733 TALLOC_CTX *_mem_save_document_name_0;
5734 uint32_t _ptr_notify_name;
5735 TALLOC_CTX *_mem_save_notify_name_0;
5736 uint32_t _ptr_data_type;
5737 TALLOC_CTX *_mem_save_data_type_0;
5738 uint32_t _ptr_print_processor;
5739 TALLOC_CTX *_mem_save_print_processor_0;
5740 uint32_t _ptr_parameters;
5741 TALLOC_CTX *_mem_save_parameters_0;
5742 uint32_t _ptr_driver_name;
5743 TALLOC_CTX *_mem_save_driver_name_0;
5744 uint32_t _ptr_text_status;
5745 TALLOC_CTX *_mem_save_text_status_0;
5746 if (ndr_flags & NDR_SCALARS) {
5747 NDR_CHECK(ndr_pull_align(ndr, 5));
5748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5750 if (_ptr_printer_name) {
5751 NDR_PULL_ALLOC(ndr, r->printer_name);
5752 } else {
5753 r->printer_name = NULL;
5755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5756 if (_ptr_server_name) {
5757 NDR_PULL_ALLOC(ndr, r->server_name);
5758 } else {
5759 r->server_name = NULL;
5761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5762 if (_ptr_user_name) {
5763 NDR_PULL_ALLOC(ndr, r->user_name);
5764 } else {
5765 r->user_name = NULL;
5767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5768 if (_ptr_document_name) {
5769 NDR_PULL_ALLOC(ndr, r->document_name);
5770 } else {
5771 r->document_name = NULL;
5773 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5774 if (_ptr_notify_name) {
5775 NDR_PULL_ALLOC(ndr, r->notify_name);
5776 } else {
5777 r->notify_name = NULL;
5779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5780 if (_ptr_data_type) {
5781 NDR_PULL_ALLOC(ndr, r->data_type);
5782 } else {
5783 r->data_type = NULL;
5785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5786 if (_ptr_print_processor) {
5787 NDR_PULL_ALLOC(ndr, r->print_processor);
5788 } else {
5789 r->print_processor = NULL;
5791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5792 if (_ptr_parameters) {
5793 NDR_PULL_ALLOC(ndr, r->parameters);
5794 } else {
5795 r->parameters = NULL;
5797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5798 if (_ptr_driver_name) {
5799 NDR_PULL_ALLOC(ndr, r->driver_name);
5800 } else {
5801 r->driver_name = NULL;
5803 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5804 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5805 if (_ptr_text_status) {
5806 NDR_PULL_ALLOC(ndr, r->text_status);
5807 } else {
5808 r->text_status = NULL;
5810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5811 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5813 if (r->priority > 99) {
5814 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5821 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5822 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5824 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5826 if (ndr_flags & NDR_BUFFERS) {
5827 if (r->printer_name) {
5828 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5829 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5830 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5831 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5832 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5833 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5839 if (r->server_name) {
5840 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5841 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5842 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5843 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5844 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5845 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5847 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5848 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5851 if (r->user_name) {
5852 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5853 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5854 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5855 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5856 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5857 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5859 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5860 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5863 if (r->document_name) {
5864 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5865 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5866 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5867 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5868 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5869 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5875 if (r->notify_name) {
5876 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5877 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5878 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5879 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5880 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5881 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5887 if (r->data_type) {
5888 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5889 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5890 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5891 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5892 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5893 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5895 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5896 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5899 if (r->print_processor) {
5900 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5901 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5902 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5903 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5904 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5905 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
5907 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5908 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5911 if (r->parameters) {
5912 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5913 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5914 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5915 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5916 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5917 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
5919 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5923 if (r->driver_name) {
5924 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5925 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5926 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5927 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5928 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5929 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5931 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5932 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5935 if (r->text_status) {
5936 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5937 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5938 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5939 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5940 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5941 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5943 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5948 return NDR_ERR_SUCCESS;
5951 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5953 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5954 ndr->depth++;
5955 ndr_print_uint32(ndr, "job_id", r->job_id);
5956 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5957 ndr->depth++;
5958 if (r->printer_name) {
5959 ndr_print_string(ndr, "printer_name", r->printer_name);
5961 ndr->depth--;
5962 ndr_print_ptr(ndr, "server_name", r->server_name);
5963 ndr->depth++;
5964 if (r->server_name) {
5965 ndr_print_string(ndr, "server_name", r->server_name);
5967 ndr->depth--;
5968 ndr_print_ptr(ndr, "user_name", r->user_name);
5969 ndr->depth++;
5970 if (r->user_name) {
5971 ndr_print_string(ndr, "user_name", r->user_name);
5973 ndr->depth--;
5974 ndr_print_ptr(ndr, "document_name", r->document_name);
5975 ndr->depth++;
5976 if (r->document_name) {
5977 ndr_print_string(ndr, "document_name", r->document_name);
5979 ndr->depth--;
5980 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5981 ndr->depth++;
5982 if (r->notify_name) {
5983 ndr_print_string(ndr, "notify_name", r->notify_name);
5985 ndr->depth--;
5986 ndr_print_ptr(ndr, "data_type", r->data_type);
5987 ndr->depth++;
5988 if (r->data_type) {
5989 ndr_print_string(ndr, "data_type", r->data_type);
5991 ndr->depth--;
5992 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5993 ndr->depth++;
5994 if (r->print_processor) {
5995 ndr_print_string(ndr, "print_processor", r->print_processor);
5997 ndr->depth--;
5998 ndr_print_ptr(ndr, "parameters", r->parameters);
5999 ndr->depth++;
6000 if (r->parameters) {
6001 ndr_print_string(ndr, "parameters", r->parameters);
6003 ndr->depth--;
6004 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6005 ndr->depth++;
6006 if (r->driver_name) {
6007 ndr_print_string(ndr, "driver_name", r->driver_name);
6009 ndr->depth--;
6010 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6011 ndr_print_ptr(ndr, "text_status", r->text_status);
6012 ndr->depth++;
6013 if (r->text_status) {
6014 ndr_print_string(ndr, "text_status", r->text_status);
6016 ndr->depth--;
6017 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6018 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6019 ndr_print_uint32(ndr, "priority", r->priority);
6020 ndr_print_uint32(ndr, "position", r->position);
6021 ndr_print_uint32(ndr, "start_time", r->start_time);
6022 ndr_print_uint32(ndr, "until_time", r->until_time);
6023 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6024 ndr_print_uint32(ndr, "size", r->size);
6025 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6026 ndr_print_uint32(ndr, "time", r->time);
6027 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6028 ndr->depth--;
6031 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
6033 if (ndr_flags & NDR_SCALARS) {
6034 NDR_CHECK(ndr_push_align(ndr, 5));
6035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
6036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
6037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
6038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
6039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
6041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
6042 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
6046 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
6047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
6048 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
6049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
6051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
6052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
6053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
6055 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
6057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
6058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
6059 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6061 if (ndr_flags & NDR_BUFFERS) {
6062 if (r->printer_name) {
6063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6065 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6068 if (r->server_name) {
6069 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6070 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6071 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6072 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6074 if (r->user_name) {
6075 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6080 if (r->document_name) {
6081 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6082 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6083 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6086 if (r->notify_name) {
6087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6089 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6092 if (r->data_type) {
6093 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6094 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6095 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6096 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6098 if (r->print_processor) {
6099 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6100 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6101 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6102 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6104 if (r->parameters) {
6105 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6106 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6110 if (r->driver_name) {
6111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6116 if (r->text_status) {
6117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6123 return NDR_ERR_SUCCESS;
6126 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
6128 uint32_t _ptr_printer_name;
6129 TALLOC_CTX *_mem_save_printer_name_0;
6130 uint32_t _ptr_server_name;
6131 TALLOC_CTX *_mem_save_server_name_0;
6132 uint32_t _ptr_user_name;
6133 TALLOC_CTX *_mem_save_user_name_0;
6134 uint32_t _ptr_document_name;
6135 TALLOC_CTX *_mem_save_document_name_0;
6136 uint32_t _ptr_notify_name;
6137 TALLOC_CTX *_mem_save_notify_name_0;
6138 uint32_t _ptr_data_type;
6139 TALLOC_CTX *_mem_save_data_type_0;
6140 uint32_t _ptr_print_processor;
6141 TALLOC_CTX *_mem_save_print_processor_0;
6142 uint32_t _ptr_parameters;
6143 TALLOC_CTX *_mem_save_parameters_0;
6144 uint32_t _ptr_driver_name;
6145 TALLOC_CTX *_mem_save_driver_name_0;
6146 uint32_t _ptr_text_status;
6147 TALLOC_CTX *_mem_save_text_status_0;
6148 if (ndr_flags & NDR_SCALARS) {
6149 NDR_CHECK(ndr_pull_align(ndr, 5));
6150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6152 if (_ptr_printer_name) {
6153 NDR_PULL_ALLOC(ndr, r->printer_name);
6154 } else {
6155 r->printer_name = NULL;
6157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6158 if (_ptr_server_name) {
6159 NDR_PULL_ALLOC(ndr, r->server_name);
6160 } else {
6161 r->server_name = NULL;
6163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6164 if (_ptr_user_name) {
6165 NDR_PULL_ALLOC(ndr, r->user_name);
6166 } else {
6167 r->user_name = NULL;
6169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6170 if (_ptr_document_name) {
6171 NDR_PULL_ALLOC(ndr, r->document_name);
6172 } else {
6173 r->document_name = NULL;
6175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
6176 if (_ptr_notify_name) {
6177 NDR_PULL_ALLOC(ndr, r->notify_name);
6178 } else {
6179 r->notify_name = NULL;
6181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6182 if (_ptr_data_type) {
6183 NDR_PULL_ALLOC(ndr, r->data_type);
6184 } else {
6185 r->data_type = NULL;
6187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6188 if (_ptr_print_processor) {
6189 NDR_PULL_ALLOC(ndr, r->print_processor);
6190 } else {
6191 r->print_processor = NULL;
6193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6194 if (_ptr_parameters) {
6195 NDR_PULL_ALLOC(ndr, r->parameters);
6196 } else {
6197 r->parameters = NULL;
6199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6200 if (_ptr_driver_name) {
6201 NDR_PULL_ALLOC(ndr, r->driver_name);
6202 } else {
6203 r->driver_name = NULL;
6205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
6206 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6207 if (_ptr_text_status) {
6208 NDR_PULL_ALLOC(ndr, r->text_status);
6209 } else {
6210 r->text_status = NULL;
6212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
6213 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6215 if (r->priority > 99) {
6216 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6223 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
6227 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6229 if (ndr_flags & NDR_BUFFERS) {
6230 if (r->printer_name) {
6231 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6232 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6233 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6234 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6235 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
6236 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
6238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
6239 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
6240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6242 if (r->server_name) {
6243 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6244 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6245 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6246 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6247 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
6248 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
6250 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
6251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
6252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6254 if (r->user_name) {
6255 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6256 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6257 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6258 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6259 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
6260 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
6262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
6263 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
6264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6266 if (r->document_name) {
6267 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6268 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6269 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6270 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6271 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
6272 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
6274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
6275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
6276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6278 if (r->notify_name) {
6279 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6280 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6281 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6282 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6283 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
6284 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
6286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6290 if (r->data_type) {
6291 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6292 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6293 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6294 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6295 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6296 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
6298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6302 if (r->print_processor) {
6303 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6304 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6305 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6306 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6307 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6308 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
6310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6314 if (r->parameters) {
6315 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6316 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6317 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6318 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6319 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6320 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
6322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6326 if (r->driver_name) {
6327 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6328 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6329 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6330 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6331 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6332 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
6334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6338 if (r->text_status) {
6339 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6340 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6341 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6342 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6343 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6344 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
6346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6351 return NDR_ERR_SUCCESS;
6354 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6356 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6357 ndr->depth++;
6358 ndr_print_uint32(ndr, "job_id", r->job_id);
6359 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6360 ndr->depth++;
6361 if (r->printer_name) {
6362 ndr_print_string(ndr, "printer_name", r->printer_name);
6364 ndr->depth--;
6365 ndr_print_ptr(ndr, "server_name", r->server_name);
6366 ndr->depth++;
6367 if (r->server_name) {
6368 ndr_print_string(ndr, "server_name", r->server_name);
6370 ndr->depth--;
6371 ndr_print_ptr(ndr, "user_name", r->user_name);
6372 ndr->depth++;
6373 if (r->user_name) {
6374 ndr_print_string(ndr, "user_name", r->user_name);
6376 ndr->depth--;
6377 ndr_print_ptr(ndr, "document_name", r->document_name);
6378 ndr->depth++;
6379 if (r->document_name) {
6380 ndr_print_string(ndr, "document_name", r->document_name);
6382 ndr->depth--;
6383 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6384 ndr->depth++;
6385 if (r->notify_name) {
6386 ndr_print_string(ndr, "notify_name", r->notify_name);
6388 ndr->depth--;
6389 ndr_print_ptr(ndr, "data_type", r->data_type);
6390 ndr->depth++;
6391 if (r->data_type) {
6392 ndr_print_string(ndr, "data_type", r->data_type);
6394 ndr->depth--;
6395 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6396 ndr->depth++;
6397 if (r->print_processor) {
6398 ndr_print_string(ndr, "print_processor", r->print_processor);
6400 ndr->depth--;
6401 ndr_print_ptr(ndr, "parameters", r->parameters);
6402 ndr->depth++;
6403 if (r->parameters) {
6404 ndr_print_string(ndr, "parameters", r->parameters);
6406 ndr->depth--;
6407 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6408 ndr->depth++;
6409 if (r->driver_name) {
6410 ndr_print_string(ndr, "driver_name", r->driver_name);
6412 ndr->depth--;
6413 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6414 ndr_print_ptr(ndr, "text_status", r->text_status);
6415 ndr->depth++;
6416 if (r->text_status) {
6417 ndr_print_string(ndr, "text_status", r->text_status);
6419 ndr->depth--;
6420 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6421 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6422 ndr_print_uint32(ndr, "priority", r->priority);
6423 ndr_print_uint32(ndr, "position", r->position);
6424 ndr_print_uint32(ndr, "start_time", r->start_time);
6425 ndr_print_uint32(ndr, "until_time", r->until_time);
6426 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6427 ndr_print_uint32(ndr, "size", r->size);
6428 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6429 ndr_print_uint32(ndr, "time", r->time);
6430 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6431 ndr_print_uint32(ndr, "size_high", r->size_high);
6432 ndr->depth--;
6435 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6437 if (ndr_flags & NDR_SCALARS) {
6438 int level = ndr_push_get_switch_value(ndr, r);
6439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6440 NDR_CHECK(ndr_push_union_align(ndr, 5));
6441 switch (level) {
6442 case 1: {
6443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6444 break; }
6446 case 2: {
6447 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6448 break; }
6450 case 3: {
6451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6452 break; }
6454 case 4: {
6455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6456 break; }
6458 default: {
6459 break; }
6463 if (ndr_flags & NDR_BUFFERS) {
6464 int level = ndr_push_get_switch_value(ndr, r);
6465 switch (level) {
6466 case 1:
6467 if (r->info1) {
6468 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6470 break;
6472 case 2:
6473 if (r->info2) {
6474 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6476 break;
6478 case 3:
6479 if (r->info3) {
6480 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6482 break;
6484 case 4:
6485 if (r->info4) {
6486 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6488 break;
6490 default:
6491 break;
6495 return NDR_ERR_SUCCESS;
6498 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6500 int level;
6501 uint32_t _level;
6502 TALLOC_CTX *_mem_save_info1_0;
6503 TALLOC_CTX *_mem_save_info2_0;
6504 TALLOC_CTX *_mem_save_info3_0;
6505 TALLOC_CTX *_mem_save_info4_0;
6506 level = ndr_pull_get_switch_value(ndr, r);
6507 if (ndr_flags & NDR_SCALARS) {
6508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6509 if (_level != level) {
6510 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6512 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6513 switch (level) {
6514 case 1: {
6515 uint32_t _ptr_info1;
6516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6517 if (_ptr_info1) {
6518 NDR_PULL_ALLOC(ndr, r->info1);
6519 } else {
6520 r->info1 = NULL;
6522 break; }
6524 case 2: {
6525 uint32_t _ptr_info2;
6526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6527 if (_ptr_info2) {
6528 NDR_PULL_ALLOC(ndr, r->info2);
6529 } else {
6530 r->info2 = NULL;
6532 break; }
6534 case 3: {
6535 uint32_t _ptr_info3;
6536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6537 if (_ptr_info3) {
6538 NDR_PULL_ALLOC(ndr, r->info3);
6539 } else {
6540 r->info3 = NULL;
6542 break; }
6544 case 4: {
6545 uint32_t _ptr_info4;
6546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6547 if (_ptr_info4) {
6548 NDR_PULL_ALLOC(ndr, r->info4);
6549 } else {
6550 r->info4 = NULL;
6552 break; }
6554 default: {
6555 break; }
6559 if (ndr_flags & NDR_BUFFERS) {
6560 switch (level) {
6561 case 1:
6562 if (r->info1) {
6563 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6564 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6565 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6568 break;
6570 case 2:
6571 if (r->info2) {
6572 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6573 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6574 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6577 break;
6579 case 3:
6580 if (r->info3) {
6581 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6582 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6583 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6586 break;
6588 case 4:
6589 if (r->info4) {
6590 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6591 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6592 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6595 break;
6597 default:
6598 break;
6602 return NDR_ERR_SUCCESS;
6605 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6607 int level;
6608 level = ndr_print_get_switch_value(ndr, r);
6609 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6610 switch (level) {
6611 case 1:
6612 ndr_print_ptr(ndr, "info1", r->info1);
6613 ndr->depth++;
6614 if (r->info1) {
6615 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6617 ndr->depth--;
6618 break;
6620 case 2:
6621 ndr_print_ptr(ndr, "info2", r->info2);
6622 ndr->depth++;
6623 if (r->info2) {
6624 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6626 ndr->depth--;
6627 break;
6629 case 3:
6630 ndr_print_ptr(ndr, "info3", r->info3);
6631 ndr->depth++;
6632 if (r->info3) {
6633 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6635 ndr->depth--;
6636 break;
6638 case 4:
6639 ndr_print_ptr(ndr, "info4", r->info4);
6640 ndr->depth++;
6641 if (r->info4) {
6642 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6644 ndr->depth--;
6645 break;
6647 default:
6648 break;
6653 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6655 if (ndr_flags & NDR_SCALARS) {
6656 NDR_CHECK(ndr_push_align(ndr, 5));
6657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6658 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6659 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6660 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6662 if (ndr_flags & NDR_BUFFERS) {
6663 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6665 return NDR_ERR_SUCCESS;
6668 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6670 if (ndr_flags & NDR_SCALARS) {
6671 NDR_CHECK(ndr_pull_align(ndr, 5));
6672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6673 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6674 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6675 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6677 if (ndr_flags & NDR_BUFFERS) {
6678 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6680 return NDR_ERR_SUCCESS;
6683 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6685 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6686 ndr->depth++;
6687 ndr_print_uint32(ndr, "level", r->level);
6688 ndr_print_set_switch_value(ndr, &r->info, r->level);
6689 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6690 ndr->depth--;
6693 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6695 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6696 return NDR_ERR_SUCCESS;
6699 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6701 uint32_t v;
6702 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6703 *r = v;
6704 return NDR_ERR_SUCCESS;
6707 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6709 const char *val = NULL;
6711 switch (r) {
6712 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6713 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6714 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6715 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6716 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6717 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6718 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6719 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6720 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6722 ndr_print_enum(ndr, name, "ENUM", val, r);
6725 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6727 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6728 return NDR_ERR_SUCCESS;
6731 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6733 uint32_t v;
6734 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6735 *r = v;
6736 return NDR_ERR_SUCCESS;
6739 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6741 const char *val = NULL;
6743 switch (r) {
6744 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6745 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6746 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6747 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6748 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6750 ndr_print_enum(ndr, name, "ENUM", val, r);
6753 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6755 if (ndr_flags & NDR_SCALARS) {
6756 NDR_CHECK(ndr_push_align(ndr, 5));
6757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6762 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6774 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6777 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6781 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6782 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6786 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6788 if (ndr_flags & NDR_BUFFERS) {
6789 if (r->servername) {
6790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6793 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6795 if (r->printername) {
6796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6799 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6802 return NDR_ERR_SUCCESS;
6805 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6807 uint32_t _ptr_servername;
6808 TALLOC_CTX *_mem_save_servername_0;
6809 uint32_t _ptr_printername;
6810 TALLOC_CTX *_mem_save_printername_0;
6811 if (ndr_flags & NDR_SCALARS) {
6812 NDR_CHECK(ndr_pull_align(ndr, 5));
6813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6814 if (_ptr_servername) {
6815 NDR_PULL_ALLOC(ndr, r->servername);
6816 } else {
6817 r->servername = NULL;
6819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6820 if (_ptr_printername) {
6821 NDR_PULL_ALLOC(ndr, r->printername);
6822 } else {
6823 r->printername = NULL;
6825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6828 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6840 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6843 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6847 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6848 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6852 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6854 if (ndr_flags & NDR_BUFFERS) {
6855 if (r->servername) {
6856 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6857 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6858 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6859 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6860 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6861 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
6863 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6864 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6867 if (r->printername) {
6868 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6869 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6870 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6871 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6872 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6873 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6876 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6880 return NDR_ERR_SUCCESS;
6883 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6885 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6886 ndr->depth++;
6887 ndr_print_ptr(ndr, "servername", r->servername);
6888 ndr->depth++;
6889 if (r->servername) {
6890 ndr_print_string(ndr, "servername", r->servername);
6892 ndr->depth--;
6893 ndr_print_ptr(ndr, "printername", r->printername);
6894 ndr->depth++;
6895 if (r->printername) {
6896 ndr_print_string(ndr, "printername", r->printername);
6898 ndr->depth--;
6899 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6900 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6901 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6902 ndr_print_spoolss_Time(ndr, "time", &r->time);
6903 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6904 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6905 ndr_print_uint32(ndr, "version", r->version);
6906 ndr_print_uint32(ndr, "free_build", r->free_build);
6907 ndr_print_uint32(ndr, "spooling", r->spooling);
6908 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6909 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6910 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6911 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6912 ndr_print_uint32(ndr, "job_error", r->job_error);
6913 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6914 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6915 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6916 ndr_print_uint32(ndr, "change_id", r->change_id);
6917 ndr_print_WERROR(ndr, "last_error", r->last_error);
6918 ndr_print_uint32(ndr, "status", r->status);
6919 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6920 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6921 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6922 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6923 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6924 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6925 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6926 ndr->depth--;
6929 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6931 if (ndr_flags & NDR_SCALARS) {
6932 NDR_CHECK(ndr_push_align(ndr, 5));
6933 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6934 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6935 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6936 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6937 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6939 if (ndr_flags & NDR_BUFFERS) {
6940 if (r->description) {
6941 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6943 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6944 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6946 if (r->name) {
6947 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6948 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6949 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6950 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6952 if (r->comment) {
6953 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6959 return NDR_ERR_SUCCESS;
6962 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6964 uint32_t _ptr_description;
6965 TALLOC_CTX *_mem_save_description_0;
6966 uint32_t _ptr_name;
6967 TALLOC_CTX *_mem_save_name_0;
6968 uint32_t _ptr_comment;
6969 TALLOC_CTX *_mem_save_comment_0;
6970 if (ndr_flags & NDR_SCALARS) {
6971 NDR_CHECK(ndr_pull_align(ndr, 5));
6972 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6974 if (_ptr_description) {
6975 NDR_PULL_ALLOC(ndr, r->description);
6976 } else {
6977 r->description = NULL;
6979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6980 if (_ptr_name) {
6981 NDR_PULL_ALLOC(ndr, r->name);
6982 } else {
6983 r->name = NULL;
6985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6986 if (_ptr_comment) {
6987 NDR_PULL_ALLOC(ndr, r->comment);
6988 } else {
6989 r->comment = NULL;
6991 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6993 if (ndr_flags & NDR_BUFFERS) {
6994 if (r->description) {
6995 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6996 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6997 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6998 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6999 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
7000 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
7002 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
7003 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
7004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
7006 if (r->name) {
7007 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7008 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
7009 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
7010 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
7011 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
7012 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
7014 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
7015 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
7016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
7018 if (r->comment) {
7019 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7020 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7021 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7022 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7023 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7024 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
7026 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7027 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7031 return NDR_ERR_SUCCESS;
7034 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
7036 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
7037 ndr->depth++;
7038 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
7039 ndr_print_ptr(ndr, "description", r->description);
7040 ndr->depth++;
7041 if (r->description) {
7042 ndr_print_string(ndr, "description", r->description);
7044 ndr->depth--;
7045 ndr_print_ptr(ndr, "name", r->name);
7046 ndr->depth++;
7047 if (r->name) {
7048 ndr_print_string(ndr, "name", r->name);
7050 ndr->depth--;
7051 ndr_print_ptr(ndr, "comment", r->comment);
7052 ndr->depth++;
7053 if (r->comment) {
7054 ndr_print_string(ndr, "comment", r->comment);
7056 ndr->depth--;
7057 ndr->depth--;
7060 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
7062 if (ndr_flags & NDR_SCALARS) {
7063 NDR_CHECK(ndr_push_align(ndr, 5));
7064 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7066 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
7067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7068 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
7069 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
7071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7072 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
7073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
7074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
7075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
7076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
7077 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
7079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
7080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
7081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
7082 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
7085 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7087 if (ndr_flags & NDR_BUFFERS) {
7088 if (r->servername) {
7089 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7092 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7094 if (r->printername) {
7095 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7098 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7100 if (r->sharename) {
7101 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7102 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7104 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7106 if (r->portname) {
7107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7108 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7109 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7110 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7112 if (r->drivername) {
7113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7116 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7118 if (r->comment) {
7119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7122 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7124 if (r->location) {
7125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7130 if (r->sepfile) {
7131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7136 if (r->printprocessor) {
7137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7142 if (r->datatype) {
7143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7148 if (r->parameters) {
7149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7152 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7155 return NDR_ERR_SUCCESS;
7158 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
7160 uint32_t _ptr_servername;
7161 TALLOC_CTX *_mem_save_servername_0;
7162 uint32_t _ptr_printername;
7163 TALLOC_CTX *_mem_save_printername_0;
7164 uint32_t _ptr_sharename;
7165 TALLOC_CTX *_mem_save_sharename_0;
7166 uint32_t _ptr_portname;
7167 TALLOC_CTX *_mem_save_portname_0;
7168 uint32_t _ptr_drivername;
7169 TALLOC_CTX *_mem_save_drivername_0;
7170 uint32_t _ptr_comment;
7171 TALLOC_CTX *_mem_save_comment_0;
7172 uint32_t _ptr_location;
7173 TALLOC_CTX *_mem_save_location_0;
7174 uint32_t _ptr_sepfile;
7175 TALLOC_CTX *_mem_save_sepfile_0;
7176 uint32_t _ptr_printprocessor;
7177 TALLOC_CTX *_mem_save_printprocessor_0;
7178 uint32_t _ptr_datatype;
7179 TALLOC_CTX *_mem_save_datatype_0;
7180 uint32_t _ptr_parameters;
7181 TALLOC_CTX *_mem_save_parameters_0;
7182 if (ndr_flags & NDR_SCALARS) {
7183 NDR_CHECK(ndr_pull_align(ndr, 5));
7184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7185 if (_ptr_servername) {
7186 NDR_PULL_ALLOC(ndr, r->servername);
7187 } else {
7188 r->servername = NULL;
7190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7191 if (_ptr_printername) {
7192 NDR_PULL_ALLOC(ndr, r->printername);
7193 } else {
7194 r->printername = NULL;
7196 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
7197 if (_ptr_sharename) {
7198 NDR_PULL_ALLOC(ndr, r->sharename);
7199 } else {
7200 r->sharename = NULL;
7202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7203 if (_ptr_portname) {
7204 NDR_PULL_ALLOC(ndr, r->portname);
7205 } else {
7206 r->portname = NULL;
7208 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
7209 if (_ptr_drivername) {
7210 NDR_PULL_ALLOC(ndr, r->drivername);
7211 } else {
7212 r->drivername = NULL;
7214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7215 if (_ptr_comment) {
7216 NDR_PULL_ALLOC(ndr, r->comment);
7217 } else {
7218 r->comment = NULL;
7220 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
7221 if (_ptr_location) {
7222 NDR_PULL_ALLOC(ndr, r->location);
7223 } else {
7224 r->location = NULL;
7226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
7228 if (_ptr_sepfile) {
7229 NDR_PULL_ALLOC(ndr, r->sepfile);
7230 } else {
7231 r->sepfile = NULL;
7233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
7234 if (_ptr_printprocessor) {
7235 NDR_PULL_ALLOC(ndr, r->printprocessor);
7236 } else {
7237 r->printprocessor = NULL;
7239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7240 if (_ptr_datatype) {
7241 NDR_PULL_ALLOC(ndr, r->datatype);
7242 } else {
7243 r->datatype = NULL;
7245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7246 if (_ptr_parameters) {
7247 NDR_PULL_ALLOC(ndr, r->parameters);
7248 } else {
7249 r->parameters = NULL;
7251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
7252 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
7254 if (r->priority > 99) {
7255 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7260 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7263 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7265 if (ndr_flags & NDR_BUFFERS) {
7266 if (r->servername) {
7267 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7268 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7269 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7270 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7271 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7272 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
7274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7278 if (r->printername) {
7279 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7280 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7281 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7282 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7283 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7284 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7290 if (r->sharename) {
7291 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7292 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7293 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7294 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7295 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7296 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
7298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7302 if (r->portname) {
7303 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7304 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7305 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7306 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7307 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7308 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
7310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7314 if (r->drivername) {
7315 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7316 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7317 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7318 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7319 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7320 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->drivername), ndr_get_array_length(ndr, &r->drivername));
7322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7326 if (r->comment) {
7327 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7328 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7329 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7330 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7331 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7332 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
7334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7338 if (r->location) {
7339 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7340 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7341 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7342 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7343 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7344 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
7346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7350 if (r->sepfile) {
7351 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7352 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7353 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7354 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7355 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7356 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
7358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7362 if (r->printprocessor) {
7363 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7364 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7365 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7366 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7367 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7368 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
7370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7374 if (r->datatype) {
7375 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7376 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7377 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7378 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7379 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7380 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
7382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7386 if (r->parameters) {
7387 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7388 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7389 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7390 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7391 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7392 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
7394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7399 return NDR_ERR_SUCCESS;
7402 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7404 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7405 ndr->depth++;
7406 ndr_print_ptr(ndr, "servername", r->servername);
7407 ndr->depth++;
7408 if (r->servername) {
7409 ndr_print_string(ndr, "servername", r->servername);
7411 ndr->depth--;
7412 ndr_print_ptr(ndr, "printername", r->printername);
7413 ndr->depth++;
7414 if (r->printername) {
7415 ndr_print_string(ndr, "printername", r->printername);
7417 ndr->depth--;
7418 ndr_print_ptr(ndr, "sharename", r->sharename);
7419 ndr->depth++;
7420 if (r->sharename) {
7421 ndr_print_string(ndr, "sharename", r->sharename);
7423 ndr->depth--;
7424 ndr_print_ptr(ndr, "portname", r->portname);
7425 ndr->depth++;
7426 if (r->portname) {
7427 ndr_print_string(ndr, "portname", r->portname);
7429 ndr->depth--;
7430 ndr_print_ptr(ndr, "drivername", r->drivername);
7431 ndr->depth++;
7432 if (r->drivername) {
7433 ndr_print_string(ndr, "drivername", r->drivername);
7435 ndr->depth--;
7436 ndr_print_ptr(ndr, "comment", r->comment);
7437 ndr->depth++;
7438 if (r->comment) {
7439 ndr_print_string(ndr, "comment", r->comment);
7441 ndr->depth--;
7442 ndr_print_ptr(ndr, "location", r->location);
7443 ndr->depth++;
7444 if (r->location) {
7445 ndr_print_string(ndr, "location", r->location);
7447 ndr->depth--;
7448 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7449 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7450 ndr->depth++;
7451 if (r->sepfile) {
7452 ndr_print_string(ndr, "sepfile", r->sepfile);
7454 ndr->depth--;
7455 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7456 ndr->depth++;
7457 if (r->printprocessor) {
7458 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7460 ndr->depth--;
7461 ndr_print_ptr(ndr, "datatype", r->datatype);
7462 ndr->depth++;
7463 if (r->datatype) {
7464 ndr_print_string(ndr, "datatype", r->datatype);
7466 ndr->depth--;
7467 ndr_print_ptr(ndr, "parameters", r->parameters);
7468 ndr->depth++;
7469 if (r->parameters) {
7470 ndr_print_string(ndr, "parameters", r->parameters);
7472 ndr->depth--;
7473 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
7474 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7475 ndr_print_uint32(ndr, "priority", r->priority);
7476 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7477 ndr_print_uint32(ndr, "starttime", r->starttime);
7478 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7479 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7480 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7481 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7482 ndr->depth--;
7485 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7487 if (ndr_flags & NDR_SCALARS) {
7488 NDR_CHECK(ndr_push_align(ndr, 4));
7489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7490 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7492 if (ndr_flags & NDR_BUFFERS) {
7494 return NDR_ERR_SUCCESS;
7497 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7499 if (ndr_flags & NDR_SCALARS) {
7500 NDR_CHECK(ndr_pull_align(ndr, 4));
7501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7502 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7504 if (ndr_flags & NDR_BUFFERS) {
7506 return NDR_ERR_SUCCESS;
7509 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7511 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7512 ndr->depth++;
7513 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7514 ndr->depth--;
7517 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7519 if (ndr_flags & NDR_SCALARS) {
7520 NDR_CHECK(ndr_push_align(ndr, 5));
7521 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7522 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7523 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7524 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7526 if (ndr_flags & NDR_BUFFERS) {
7527 if (r->printername) {
7528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7531 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7533 if (r->servername) {
7534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7537 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7540 return NDR_ERR_SUCCESS;
7543 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7545 uint32_t _ptr_printername;
7546 TALLOC_CTX *_mem_save_printername_0;
7547 uint32_t _ptr_servername;
7548 TALLOC_CTX *_mem_save_servername_0;
7549 if (ndr_flags & NDR_SCALARS) {
7550 NDR_CHECK(ndr_pull_align(ndr, 5));
7551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7552 if (_ptr_printername) {
7553 NDR_PULL_ALLOC(ndr, r->printername);
7554 } else {
7555 r->printername = NULL;
7557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7558 if (_ptr_servername) {
7559 NDR_PULL_ALLOC(ndr, r->servername);
7560 } else {
7561 r->servername = NULL;
7563 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7564 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7566 if (ndr_flags & NDR_BUFFERS) {
7567 if (r->printername) {
7568 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7569 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7570 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7571 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7572 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7573 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7575 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7576 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7579 if (r->servername) {
7580 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7581 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7582 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7583 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7584 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7585 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
7587 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7588 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7592 return NDR_ERR_SUCCESS;
7595 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7597 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7598 ndr->depth++;
7599 ndr_print_ptr(ndr, "printername", r->printername);
7600 ndr->depth++;
7601 if (r->printername) {
7602 ndr_print_string(ndr, "printername", r->printername);
7604 ndr->depth--;
7605 ndr_print_ptr(ndr, "servername", r->servername);
7606 ndr->depth++;
7607 if (r->servername) {
7608 ndr_print_string(ndr, "servername", r->servername);
7610 ndr->depth--;
7611 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7612 ndr->depth--;
7615 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7617 if (ndr_flags & NDR_SCALARS) {
7618 NDR_CHECK(ndr_push_align(ndr, 5));
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7621 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7624 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7626 if (ndr_flags & NDR_BUFFERS) {
7627 if (r->printername) {
7628 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7631 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7633 if (r->portname) {
7634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7637 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7640 return NDR_ERR_SUCCESS;
7643 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7645 uint32_t _ptr_printername;
7646 TALLOC_CTX *_mem_save_printername_0;
7647 uint32_t _ptr_portname;
7648 TALLOC_CTX *_mem_save_portname_0;
7649 if (ndr_flags & NDR_SCALARS) {
7650 NDR_CHECK(ndr_pull_align(ndr, 5));
7651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7652 if (_ptr_printername) {
7653 NDR_PULL_ALLOC(ndr, r->printername);
7654 } else {
7655 r->printername = NULL;
7657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7658 if (_ptr_portname) {
7659 NDR_PULL_ALLOC(ndr, r->portname);
7660 } else {
7661 r->portname = NULL;
7663 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7666 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7668 if (ndr_flags & NDR_BUFFERS) {
7669 if (r->printername) {
7670 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7671 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7672 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7673 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7674 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7675 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
7677 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7678 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7681 if (r->portname) {
7682 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7683 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7684 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7685 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7686 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7687 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
7689 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7690 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7694 return NDR_ERR_SUCCESS;
7697 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7699 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7700 ndr->depth++;
7701 ndr_print_ptr(ndr, "printername", r->printername);
7702 ndr->depth++;
7703 if (r->printername) {
7704 ndr_print_string(ndr, "printername", r->printername);
7706 ndr->depth--;
7707 ndr_print_ptr(ndr, "portname", r->portname);
7708 ndr->depth++;
7709 if (r->portname) {
7710 ndr_print_string(ndr, "portname", r->portname);
7712 ndr->depth--;
7713 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7714 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7715 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7716 ndr->depth--;
7719 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7721 if (ndr_flags & NDR_SCALARS) {
7722 NDR_CHECK(ndr_push_align(ndr, 4));
7723 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7724 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7726 if (ndr_flags & NDR_BUFFERS) {
7728 return NDR_ERR_SUCCESS;
7731 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7733 if (ndr_flags & NDR_SCALARS) {
7734 NDR_CHECK(ndr_pull_align(ndr, 4));
7735 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7736 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7738 if (ndr_flags & NDR_BUFFERS) {
7740 return NDR_ERR_SUCCESS;
7743 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7745 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7746 ndr->depth++;
7747 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7748 ndr->depth--;
7751 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7753 if (ndr_flags & NDR_SCALARS) {
7754 NDR_CHECK(ndr_push_align(ndr, 5));
7755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7756 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7757 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7759 if (ndr_flags & NDR_BUFFERS) {
7760 if (r->guid) {
7761 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7762 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7764 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7767 return NDR_ERR_SUCCESS;
7770 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7772 uint32_t _ptr_guid;
7773 TALLOC_CTX *_mem_save_guid_0;
7774 if (ndr_flags & NDR_SCALARS) {
7775 NDR_CHECK(ndr_pull_align(ndr, 5));
7776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7777 if (_ptr_guid) {
7778 NDR_PULL_ALLOC(ndr, r->guid);
7779 } else {
7780 r->guid = NULL;
7782 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7783 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7785 if (ndr_flags & NDR_BUFFERS) {
7786 if (r->guid) {
7787 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7788 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7789 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7790 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7791 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7792 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
7794 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7795 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7799 return NDR_ERR_SUCCESS;
7802 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7804 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7805 ndr->depth++;
7806 ndr_print_ptr(ndr, "guid", r->guid);
7807 ndr->depth++;
7808 if (r->guid) {
7809 ndr_print_string(ndr, "guid", r->guid);
7811 ndr->depth--;
7812 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7813 ndr->depth--;
7816 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7818 if (ndr_flags & NDR_SCALARS) {
7819 NDR_CHECK(ndr_push_align(ndr, 4));
7820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7821 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7823 if (ndr_flags & NDR_BUFFERS) {
7825 return NDR_ERR_SUCCESS;
7828 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7830 if (ndr_flags & NDR_SCALARS) {
7831 NDR_CHECK(ndr_pull_align(ndr, 4));
7832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7833 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7835 if (ndr_flags & NDR_BUFFERS) {
7837 return NDR_ERR_SUCCESS;
7840 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7842 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7843 ndr->depth++;
7844 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7845 ndr->depth--;
7848 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7850 if (ndr_flags & NDR_SCALARS) {
7851 NDR_CHECK(ndr_push_align(ndr, 4));
7852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7853 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7855 if (ndr_flags & NDR_BUFFERS) {
7857 return NDR_ERR_SUCCESS;
7860 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7862 if (ndr_flags & NDR_SCALARS) {
7863 NDR_CHECK(ndr_pull_align(ndr, 4));
7864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7865 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7867 if (ndr_flags & NDR_BUFFERS) {
7869 return NDR_ERR_SUCCESS;
7872 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7874 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7875 ndr->depth++;
7876 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7877 ndr->depth--;
7880 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7882 if (ndr_flags & NDR_SCALARS) {
7883 int level = ndr_push_get_switch_value(ndr, r);
7884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7885 NDR_CHECK(ndr_push_union_align(ndr, 5));
7886 switch (level) {
7887 case 0: {
7888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7889 break; }
7891 case 1: {
7892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7893 break; }
7895 case 2: {
7896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7897 break; }
7899 case 3: {
7900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7901 break; }
7903 case 4: {
7904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7905 break; }
7907 case 5: {
7908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7909 break; }
7911 case 6: {
7912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7913 break; }
7915 case 7: {
7916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7917 break; }
7919 case 8: {
7920 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7921 break; }
7923 case 9: {
7924 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7925 break; }
7927 default: {
7928 break; }
7932 if (ndr_flags & NDR_BUFFERS) {
7933 int level = ndr_push_get_switch_value(ndr, r);
7934 switch (level) {
7935 case 0:
7936 if (r->info0) {
7937 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7939 break;
7941 case 1:
7942 if (r->info1) {
7943 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7945 break;
7947 case 2:
7948 if (r->info2) {
7949 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7951 break;
7953 case 3:
7954 if (r->info3) {
7955 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7957 break;
7959 case 4:
7960 if (r->info4) {
7961 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7963 break;
7965 case 5:
7966 if (r->info5) {
7967 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7969 break;
7971 case 6:
7972 if (r->info6) {
7973 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7975 break;
7977 case 7:
7978 if (r->info7) {
7979 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7981 break;
7983 case 8:
7984 if (r->info8) {
7985 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7987 break;
7989 case 9:
7990 if (r->info9) {
7991 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7993 break;
7995 default:
7996 break;
8000 return NDR_ERR_SUCCESS;
8003 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
8005 int level;
8006 uint32_t _level;
8007 TALLOC_CTX *_mem_save_info0_0;
8008 TALLOC_CTX *_mem_save_info1_0;
8009 TALLOC_CTX *_mem_save_info2_0;
8010 TALLOC_CTX *_mem_save_info3_0;
8011 TALLOC_CTX *_mem_save_info4_0;
8012 TALLOC_CTX *_mem_save_info5_0;
8013 TALLOC_CTX *_mem_save_info6_0;
8014 TALLOC_CTX *_mem_save_info7_0;
8015 TALLOC_CTX *_mem_save_info8_0;
8016 TALLOC_CTX *_mem_save_info9_0;
8017 level = ndr_pull_get_switch_value(ndr, r);
8018 if (ndr_flags & NDR_SCALARS) {
8019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8020 if (_level != level) {
8021 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8023 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8024 switch (level) {
8025 case 0: {
8026 uint32_t _ptr_info0;
8027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
8028 if (_ptr_info0) {
8029 NDR_PULL_ALLOC(ndr, r->info0);
8030 } else {
8031 r->info0 = NULL;
8033 break; }
8035 case 1: {
8036 uint32_t _ptr_info1;
8037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8038 if (_ptr_info1) {
8039 NDR_PULL_ALLOC(ndr, r->info1);
8040 } else {
8041 r->info1 = NULL;
8043 break; }
8045 case 2: {
8046 uint32_t _ptr_info2;
8047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8048 if (_ptr_info2) {
8049 NDR_PULL_ALLOC(ndr, r->info2);
8050 } else {
8051 r->info2 = NULL;
8053 break; }
8055 case 3: {
8056 uint32_t _ptr_info3;
8057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
8058 if (_ptr_info3) {
8059 NDR_PULL_ALLOC(ndr, r->info3);
8060 } else {
8061 r->info3 = NULL;
8063 break; }
8065 case 4: {
8066 uint32_t _ptr_info4;
8067 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
8068 if (_ptr_info4) {
8069 NDR_PULL_ALLOC(ndr, r->info4);
8070 } else {
8071 r->info4 = NULL;
8073 break; }
8075 case 5: {
8076 uint32_t _ptr_info5;
8077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
8078 if (_ptr_info5) {
8079 NDR_PULL_ALLOC(ndr, r->info5);
8080 } else {
8081 r->info5 = NULL;
8083 break; }
8085 case 6: {
8086 uint32_t _ptr_info6;
8087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
8088 if (_ptr_info6) {
8089 NDR_PULL_ALLOC(ndr, r->info6);
8090 } else {
8091 r->info6 = NULL;
8093 break; }
8095 case 7: {
8096 uint32_t _ptr_info7;
8097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
8098 if (_ptr_info7) {
8099 NDR_PULL_ALLOC(ndr, r->info7);
8100 } else {
8101 r->info7 = NULL;
8103 break; }
8105 case 8: {
8106 uint32_t _ptr_info8;
8107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
8108 if (_ptr_info8) {
8109 NDR_PULL_ALLOC(ndr, r->info8);
8110 } else {
8111 r->info8 = NULL;
8113 break; }
8115 case 9: {
8116 uint32_t _ptr_info9;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
8118 if (_ptr_info9) {
8119 NDR_PULL_ALLOC(ndr, r->info9);
8120 } else {
8121 r->info9 = NULL;
8123 break; }
8125 default: {
8126 break; }
8130 if (ndr_flags & NDR_BUFFERS) {
8131 switch (level) {
8132 case 0:
8133 if (r->info0) {
8134 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
8135 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
8136 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
8139 break;
8141 case 1:
8142 if (r->info1) {
8143 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8144 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8145 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8148 break;
8150 case 2:
8151 if (r->info2) {
8152 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8153 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8154 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8157 break;
8159 case 3:
8160 if (r->info3) {
8161 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
8162 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
8163 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
8166 break;
8168 case 4:
8169 if (r->info4) {
8170 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
8171 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
8172 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
8175 break;
8177 case 5:
8178 if (r->info5) {
8179 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
8180 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
8181 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
8184 break;
8186 case 6:
8187 if (r->info6) {
8188 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
8189 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
8190 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
8193 break;
8195 case 7:
8196 if (r->info7) {
8197 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
8198 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
8199 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
8202 break;
8204 case 8:
8205 if (r->info8) {
8206 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
8207 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
8208 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
8209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
8211 break;
8213 case 9:
8214 if (r->info9) {
8215 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
8216 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
8217 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
8218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
8220 break;
8222 default:
8223 break;
8227 return NDR_ERR_SUCCESS;
8230 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
8232 int level;
8233 level = ndr_print_get_switch_value(ndr, r);
8234 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
8235 switch (level) {
8236 case 0:
8237 ndr_print_ptr(ndr, "info0", r->info0);
8238 ndr->depth++;
8239 if (r->info0) {
8240 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
8242 ndr->depth--;
8243 break;
8245 case 1:
8246 ndr_print_ptr(ndr, "info1", r->info1);
8247 ndr->depth++;
8248 if (r->info1) {
8249 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
8251 ndr->depth--;
8252 break;
8254 case 2:
8255 ndr_print_ptr(ndr, "info2", r->info2);
8256 ndr->depth++;
8257 if (r->info2) {
8258 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
8260 ndr->depth--;
8261 break;
8263 case 3:
8264 ndr_print_ptr(ndr, "info3", r->info3);
8265 ndr->depth++;
8266 if (r->info3) {
8267 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
8269 ndr->depth--;
8270 break;
8272 case 4:
8273 ndr_print_ptr(ndr, "info4", r->info4);
8274 ndr->depth++;
8275 if (r->info4) {
8276 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
8278 ndr->depth--;
8279 break;
8281 case 5:
8282 ndr_print_ptr(ndr, "info5", r->info5);
8283 ndr->depth++;
8284 if (r->info5) {
8285 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8287 ndr->depth--;
8288 break;
8290 case 6:
8291 ndr_print_ptr(ndr, "info6", r->info6);
8292 ndr->depth++;
8293 if (r->info6) {
8294 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8296 ndr->depth--;
8297 break;
8299 case 7:
8300 ndr_print_ptr(ndr, "info7", r->info7);
8301 ndr->depth++;
8302 if (r->info7) {
8303 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8305 ndr->depth--;
8306 break;
8308 case 8:
8309 ndr_print_ptr(ndr, "info8", r->info8);
8310 ndr->depth++;
8311 if (r->info8) {
8312 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
8314 ndr->depth--;
8315 break;
8317 case 9:
8318 ndr_print_ptr(ndr, "info9", r->info9);
8319 ndr->depth++;
8320 if (r->info9) {
8321 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
8323 ndr->depth--;
8324 break;
8326 default:
8327 break;
8332 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8334 if (ndr_flags & NDR_SCALARS) {
8335 NDR_CHECK(ndr_push_align(ndr, 5));
8336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8337 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8338 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8339 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8341 if (ndr_flags & NDR_BUFFERS) {
8342 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8344 return NDR_ERR_SUCCESS;
8347 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8349 if (ndr_flags & NDR_SCALARS) {
8350 NDR_CHECK(ndr_pull_align(ndr, 5));
8351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8352 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8353 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8354 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8356 if (ndr_flags & NDR_BUFFERS) {
8357 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8359 return NDR_ERR_SUCCESS;
8362 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8364 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8365 ndr->depth++;
8366 ndr_print_uint32(ndr, "level", r->level);
8367 ndr_print_set_switch_value(ndr, &r->info, r->level);
8368 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8369 ndr->depth--;
8372 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8374 if (ndr_flags & NDR_SCALARS) {
8375 NDR_CHECK(ndr_push_align(ndr, 4));
8376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8378 uint32_t _flags_save_string_array = ndr->flags;
8379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8380 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8381 ndr->flags = _flags_save_string_array;
8383 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8385 if (ndr_flags & NDR_BUFFERS) {
8387 return NDR_ERR_SUCCESS;
8390 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8392 if (ndr_flags & NDR_SCALARS) {
8393 NDR_CHECK(ndr_pull_align(ndr, 4));
8394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8396 uint32_t _flags_save_string_array = ndr->flags;
8397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8398 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8399 ndr->flags = _flags_save_string_array;
8401 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8403 if (ndr_flags & NDR_BUFFERS) {
8405 return NDR_ERR_SUCCESS;
8408 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8410 ndr_print_struct(ndr, name, "spoolss_StringArray");
8411 ndr->depth++;
8412 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
8413 ndr_print_string_array(ndr, "string", r->string);
8414 ndr->depth--;
8417 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8419 if (ndr_flags & NDR_SCALARS) {
8420 NDR_CHECK(ndr_push_align(ndr, 5));
8421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8422 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8424 if (ndr_flags & NDR_BUFFERS) {
8425 if (r->driver_name) {
8426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8427 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8432 return NDR_ERR_SUCCESS;
8435 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8437 uint32_t _ptr_driver_name;
8438 TALLOC_CTX *_mem_save_driver_name_0;
8439 if (ndr_flags & NDR_SCALARS) {
8440 NDR_CHECK(ndr_pull_align(ndr, 5));
8441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8442 if (_ptr_driver_name) {
8443 NDR_PULL_ALLOC(ndr, r->driver_name);
8444 } else {
8445 r->driver_name = NULL;
8447 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8449 if (ndr_flags & NDR_BUFFERS) {
8450 if (r->driver_name) {
8451 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8452 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8453 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8454 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8455 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8456 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8459 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8463 return NDR_ERR_SUCCESS;
8466 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8468 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8469 ndr->depth++;
8470 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8471 ndr->depth++;
8472 if (r->driver_name) {
8473 ndr_print_string(ndr, "driver_name", r->driver_name);
8475 ndr->depth--;
8476 ndr->depth--;
8479 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8481 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8482 return NDR_ERR_SUCCESS;
8485 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8487 uint32_t v;
8488 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8489 *r = v;
8490 return NDR_ERR_SUCCESS;
8493 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8495 const char *val = NULL;
8497 switch (r) {
8498 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8499 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8500 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8501 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8503 ndr_print_enum(ndr, name, "ENUM", val, r);
8506 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8508 if (ndr_flags & NDR_SCALARS) {
8509 NDR_CHECK(ndr_push_align(ndr, 5));
8510 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8514 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8515 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8516 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8518 if (ndr_flags & NDR_BUFFERS) {
8519 if (r->driver_name) {
8520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8523 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8525 if (r->architecture) {
8526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8529 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8531 if (r->driver_path) {
8532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8537 if (r->data_file) {
8538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8541 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8543 if (r->config_file) {
8544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8547 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8550 return NDR_ERR_SUCCESS;
8553 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8555 uint32_t _ptr_driver_name;
8556 TALLOC_CTX *_mem_save_driver_name_0;
8557 uint32_t _ptr_architecture;
8558 TALLOC_CTX *_mem_save_architecture_0;
8559 uint32_t _ptr_driver_path;
8560 TALLOC_CTX *_mem_save_driver_path_0;
8561 uint32_t _ptr_data_file;
8562 TALLOC_CTX *_mem_save_data_file_0;
8563 uint32_t _ptr_config_file;
8564 TALLOC_CTX *_mem_save_config_file_0;
8565 if (ndr_flags & NDR_SCALARS) {
8566 NDR_CHECK(ndr_pull_align(ndr, 5));
8567 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8569 if (_ptr_driver_name) {
8570 NDR_PULL_ALLOC(ndr, r->driver_name);
8571 } else {
8572 r->driver_name = NULL;
8574 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8575 if (_ptr_architecture) {
8576 NDR_PULL_ALLOC(ndr, r->architecture);
8577 } else {
8578 r->architecture = NULL;
8580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8581 if (_ptr_driver_path) {
8582 NDR_PULL_ALLOC(ndr, r->driver_path);
8583 } else {
8584 r->driver_path = NULL;
8586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8587 if (_ptr_data_file) {
8588 NDR_PULL_ALLOC(ndr, r->data_file);
8589 } else {
8590 r->data_file = NULL;
8592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8593 if (_ptr_config_file) {
8594 NDR_PULL_ALLOC(ndr, r->config_file);
8595 } else {
8596 r->config_file = NULL;
8598 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8600 if (ndr_flags & NDR_BUFFERS) {
8601 if (r->driver_name) {
8602 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8603 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8604 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8605 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8606 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8607 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8609 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8610 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8613 if (r->architecture) {
8614 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8615 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8616 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8617 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8618 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8619 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8625 if (r->driver_path) {
8626 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8627 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8628 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8629 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8630 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8631 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8637 if (r->data_file) {
8638 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8639 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8640 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8641 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8642 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8643 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8645 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8646 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8649 if (r->config_file) {
8650 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8651 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8652 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8653 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8654 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8655 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8657 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8662 return NDR_ERR_SUCCESS;
8665 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8667 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8668 ndr->depth++;
8669 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8670 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8671 ndr->depth++;
8672 if (r->driver_name) {
8673 ndr_print_string(ndr, "driver_name", r->driver_name);
8675 ndr->depth--;
8676 ndr_print_ptr(ndr, "architecture", r->architecture);
8677 ndr->depth++;
8678 if (r->architecture) {
8679 ndr_print_string(ndr, "architecture", r->architecture);
8681 ndr->depth--;
8682 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8683 ndr->depth++;
8684 if (r->driver_path) {
8685 ndr_print_string(ndr, "driver_path", r->driver_path);
8687 ndr->depth--;
8688 ndr_print_ptr(ndr, "data_file", r->data_file);
8689 ndr->depth++;
8690 if (r->data_file) {
8691 ndr_print_string(ndr, "data_file", r->data_file);
8693 ndr->depth--;
8694 ndr_print_ptr(ndr, "config_file", r->config_file);
8695 ndr->depth++;
8696 if (r->config_file) {
8697 ndr_print_string(ndr, "config_file", r->config_file);
8699 ndr->depth--;
8700 ndr->depth--;
8703 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8705 if (ndr_flags & NDR_SCALARS) {
8706 NDR_CHECK(ndr_push_align(ndr, 5));
8707 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8718 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8720 if (ndr_flags & NDR_BUFFERS) {
8721 if (r->driver_name) {
8722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8727 if (r->architecture) {
8728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8733 if (r->driver_path) {
8734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8739 if (r->data_file) {
8740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8742 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8745 if (r->config_file) {
8746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8748 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8751 if (r->help_file) {
8752 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8757 if (r->monitor_name) {
8758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8763 if (r->default_datatype) {
8764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8769 if (r->dependent_files) {
8770 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8773 return NDR_ERR_SUCCESS;
8776 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8778 uint32_t _ptr_driver_name;
8779 TALLOC_CTX *_mem_save_driver_name_0;
8780 uint32_t _ptr_architecture;
8781 TALLOC_CTX *_mem_save_architecture_0;
8782 uint32_t _ptr_driver_path;
8783 TALLOC_CTX *_mem_save_driver_path_0;
8784 uint32_t _ptr_data_file;
8785 TALLOC_CTX *_mem_save_data_file_0;
8786 uint32_t _ptr_config_file;
8787 TALLOC_CTX *_mem_save_config_file_0;
8788 uint32_t _ptr_help_file;
8789 TALLOC_CTX *_mem_save_help_file_0;
8790 uint32_t _ptr_monitor_name;
8791 TALLOC_CTX *_mem_save_monitor_name_0;
8792 uint32_t _ptr_default_datatype;
8793 TALLOC_CTX *_mem_save_default_datatype_0;
8794 uint32_t _ptr_dependent_files;
8795 TALLOC_CTX *_mem_save_dependent_files_0;
8796 if (ndr_flags & NDR_SCALARS) {
8797 NDR_CHECK(ndr_pull_align(ndr, 5));
8798 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8800 if (_ptr_driver_name) {
8801 NDR_PULL_ALLOC(ndr, r->driver_name);
8802 } else {
8803 r->driver_name = NULL;
8805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8806 if (_ptr_architecture) {
8807 NDR_PULL_ALLOC(ndr, r->architecture);
8808 } else {
8809 r->architecture = NULL;
8811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8812 if (_ptr_driver_path) {
8813 NDR_PULL_ALLOC(ndr, r->driver_path);
8814 } else {
8815 r->driver_path = NULL;
8817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8818 if (_ptr_data_file) {
8819 NDR_PULL_ALLOC(ndr, r->data_file);
8820 } else {
8821 r->data_file = NULL;
8823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8824 if (_ptr_config_file) {
8825 NDR_PULL_ALLOC(ndr, r->config_file);
8826 } else {
8827 r->config_file = NULL;
8829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8830 if (_ptr_help_file) {
8831 NDR_PULL_ALLOC(ndr, r->help_file);
8832 } else {
8833 r->help_file = NULL;
8835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8836 if (_ptr_monitor_name) {
8837 NDR_PULL_ALLOC(ndr, r->monitor_name);
8838 } else {
8839 r->monitor_name = NULL;
8841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8842 if (_ptr_default_datatype) {
8843 NDR_PULL_ALLOC(ndr, r->default_datatype);
8844 } else {
8845 r->default_datatype = NULL;
8847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8849 if (_ptr_dependent_files) {
8850 NDR_PULL_ALLOC(ndr, r->dependent_files);
8851 } else {
8852 r->dependent_files = NULL;
8854 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8856 if (ndr_flags & NDR_BUFFERS) {
8857 if (r->driver_name) {
8858 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8859 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8860 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8861 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8862 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8863 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8865 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8866 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8869 if (r->architecture) {
8870 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8871 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8872 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8873 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8874 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8875 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8877 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8878 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8881 if (r->driver_path) {
8882 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8883 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8884 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8885 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8886 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8887 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8889 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8890 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8893 if (r->data_file) {
8894 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8895 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8896 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8897 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8898 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8899 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8901 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8902 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8905 if (r->config_file) {
8906 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8907 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8908 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8909 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8910 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8911 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8913 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8914 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8917 if (r->help_file) {
8918 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8919 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8920 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8921 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8922 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8923 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8929 if (r->monitor_name) {
8930 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8931 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8932 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8933 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8934 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8935 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8941 if (r->default_datatype) {
8942 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8943 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8944 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8945 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8946 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8947 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8950 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8953 if (r->dependent_files) {
8954 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8955 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8956 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8960 return NDR_ERR_SUCCESS;
8963 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8965 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8966 ndr->depth++;
8967 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8968 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8969 ndr->depth++;
8970 if (r->driver_name) {
8971 ndr_print_string(ndr, "driver_name", r->driver_name);
8973 ndr->depth--;
8974 ndr_print_ptr(ndr, "architecture", r->architecture);
8975 ndr->depth++;
8976 if (r->architecture) {
8977 ndr_print_string(ndr, "architecture", r->architecture);
8979 ndr->depth--;
8980 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8981 ndr->depth++;
8982 if (r->driver_path) {
8983 ndr_print_string(ndr, "driver_path", r->driver_path);
8985 ndr->depth--;
8986 ndr_print_ptr(ndr, "data_file", r->data_file);
8987 ndr->depth++;
8988 if (r->data_file) {
8989 ndr_print_string(ndr, "data_file", r->data_file);
8991 ndr->depth--;
8992 ndr_print_ptr(ndr, "config_file", r->config_file);
8993 ndr->depth++;
8994 if (r->config_file) {
8995 ndr_print_string(ndr, "config_file", r->config_file);
8997 ndr->depth--;
8998 ndr_print_ptr(ndr, "help_file", r->help_file);
8999 ndr->depth++;
9000 if (r->help_file) {
9001 ndr_print_string(ndr, "help_file", r->help_file);
9003 ndr->depth--;
9004 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9005 ndr->depth++;
9006 if (r->monitor_name) {
9007 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9009 ndr->depth--;
9010 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9011 ndr->depth++;
9012 if (r->default_datatype) {
9013 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9015 ndr->depth--;
9016 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9017 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9018 ndr->depth++;
9019 if (r->dependent_files) {
9020 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9022 ndr->depth--;
9023 ndr->depth--;
9026 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
9028 if (ndr_flags & NDR_SCALARS) {
9029 NDR_CHECK(ndr_push_align(ndr, 5));
9030 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9042 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9043 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9045 if (ndr_flags & NDR_BUFFERS) {
9046 if (r->driver_name) {
9047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9048 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9052 if (r->architecture) {
9053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9054 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9058 if (r->driver_path) {
9059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9061 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9064 if (r->data_file) {
9065 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9066 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9070 if (r->config_file) {
9071 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9072 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9073 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9074 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9076 if (r->help_file) {
9077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9082 if (r->monitor_name) {
9083 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9086 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9088 if (r->default_datatype) {
9089 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9092 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9094 if (r->dependent_files) {
9095 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9097 if (r->previous_names) {
9098 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9101 return NDR_ERR_SUCCESS;
9104 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
9106 uint32_t _ptr_driver_name;
9107 TALLOC_CTX *_mem_save_driver_name_0;
9108 uint32_t _ptr_architecture;
9109 TALLOC_CTX *_mem_save_architecture_0;
9110 uint32_t _ptr_driver_path;
9111 TALLOC_CTX *_mem_save_driver_path_0;
9112 uint32_t _ptr_data_file;
9113 TALLOC_CTX *_mem_save_data_file_0;
9114 uint32_t _ptr_config_file;
9115 TALLOC_CTX *_mem_save_config_file_0;
9116 uint32_t _ptr_help_file;
9117 TALLOC_CTX *_mem_save_help_file_0;
9118 uint32_t _ptr_monitor_name;
9119 TALLOC_CTX *_mem_save_monitor_name_0;
9120 uint32_t _ptr_default_datatype;
9121 TALLOC_CTX *_mem_save_default_datatype_0;
9122 uint32_t _ptr_dependent_files;
9123 TALLOC_CTX *_mem_save_dependent_files_0;
9124 uint32_t _ptr_previous_names;
9125 TALLOC_CTX *_mem_save_previous_names_0;
9126 if (ndr_flags & NDR_SCALARS) {
9127 NDR_CHECK(ndr_pull_align(ndr, 5));
9128 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9130 if (_ptr_driver_name) {
9131 NDR_PULL_ALLOC(ndr, r->driver_name);
9132 } else {
9133 r->driver_name = NULL;
9135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9136 if (_ptr_architecture) {
9137 NDR_PULL_ALLOC(ndr, r->architecture);
9138 } else {
9139 r->architecture = NULL;
9141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9142 if (_ptr_driver_path) {
9143 NDR_PULL_ALLOC(ndr, r->driver_path);
9144 } else {
9145 r->driver_path = NULL;
9147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9148 if (_ptr_data_file) {
9149 NDR_PULL_ALLOC(ndr, r->data_file);
9150 } else {
9151 r->data_file = NULL;
9153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9154 if (_ptr_config_file) {
9155 NDR_PULL_ALLOC(ndr, r->config_file);
9156 } else {
9157 r->config_file = NULL;
9159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9160 if (_ptr_help_file) {
9161 NDR_PULL_ALLOC(ndr, r->help_file);
9162 } else {
9163 r->help_file = NULL;
9165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9166 if (_ptr_monitor_name) {
9167 NDR_PULL_ALLOC(ndr, r->monitor_name);
9168 } else {
9169 r->monitor_name = NULL;
9171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9172 if (_ptr_default_datatype) {
9173 NDR_PULL_ALLOC(ndr, r->default_datatype);
9174 } else {
9175 r->default_datatype = NULL;
9177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9179 if (_ptr_dependent_files) {
9180 NDR_PULL_ALLOC(ndr, r->dependent_files);
9181 } else {
9182 r->dependent_files = NULL;
9184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9186 if (_ptr_previous_names) {
9187 NDR_PULL_ALLOC(ndr, r->previous_names);
9188 } else {
9189 r->previous_names = NULL;
9191 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9193 if (ndr_flags & NDR_BUFFERS) {
9194 if (r->driver_name) {
9195 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9196 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9197 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9198 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9199 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9200 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9202 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9203 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9206 if (r->architecture) {
9207 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9208 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9209 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9210 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9211 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9212 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9218 if (r->driver_path) {
9219 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9220 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9222 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9223 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9224 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9230 if (r->data_file) {
9231 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9232 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9233 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9234 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9235 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9236 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9239 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9242 if (r->config_file) {
9243 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9244 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9245 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9246 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9247 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9248 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9250 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9254 if (r->help_file) {
9255 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9256 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9258 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9259 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9260 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9266 if (r->monitor_name) {
9267 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9268 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9269 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9270 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9271 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9272 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9278 if (r->default_datatype) {
9279 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9282 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9283 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9284 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9290 if (r->dependent_files) {
9291 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9292 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9293 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9296 if (r->previous_names) {
9297 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9298 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9299 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9303 return NDR_ERR_SUCCESS;
9306 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9308 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9309 ndr->depth++;
9310 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9311 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9312 ndr->depth++;
9313 if (r->driver_name) {
9314 ndr_print_string(ndr, "driver_name", r->driver_name);
9316 ndr->depth--;
9317 ndr_print_ptr(ndr, "architecture", r->architecture);
9318 ndr->depth++;
9319 if (r->architecture) {
9320 ndr_print_string(ndr, "architecture", r->architecture);
9322 ndr->depth--;
9323 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9324 ndr->depth++;
9325 if (r->driver_path) {
9326 ndr_print_string(ndr, "driver_path", r->driver_path);
9328 ndr->depth--;
9329 ndr_print_ptr(ndr, "data_file", r->data_file);
9330 ndr->depth++;
9331 if (r->data_file) {
9332 ndr_print_string(ndr, "data_file", r->data_file);
9334 ndr->depth--;
9335 ndr_print_ptr(ndr, "config_file", r->config_file);
9336 ndr->depth++;
9337 if (r->config_file) {
9338 ndr_print_string(ndr, "config_file", r->config_file);
9340 ndr->depth--;
9341 ndr_print_ptr(ndr, "help_file", r->help_file);
9342 ndr->depth++;
9343 if (r->help_file) {
9344 ndr_print_string(ndr, "help_file", r->help_file);
9346 ndr->depth--;
9347 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9348 ndr->depth++;
9349 if (r->monitor_name) {
9350 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9352 ndr->depth--;
9353 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9354 ndr->depth++;
9355 if (r->default_datatype) {
9356 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9358 ndr->depth--;
9359 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9360 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9361 ndr->depth++;
9362 if (r->dependent_files) {
9363 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9365 ndr->depth--;
9366 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
9367 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9368 ndr->depth++;
9369 if (r->previous_names) {
9370 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9372 ndr->depth--;
9373 ndr->depth--;
9376 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9379 return NDR_ERR_SUCCESS;
9382 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9384 uint32_t v;
9385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9386 *r = v;
9387 return NDR_ERR_SUCCESS;
9390 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9392 ndr_print_uint32(ndr, name, r);
9393 ndr->depth++;
9394 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9395 ndr->depth--;
9398 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9400 if (ndr_flags & NDR_SCALARS) {
9401 NDR_CHECK(ndr_push_align(ndr, 8));
9402 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9406 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9407 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9408 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9410 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9412 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9415 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9416 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9421 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9423 if (ndr_flags & NDR_BUFFERS) {
9424 if (r->driver_name) {
9425 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9427 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9430 if (r->architecture) {
9431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9436 if (r->driver_path) {
9437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9442 if (r->data_file) {
9443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9448 if (r->config_file) {
9449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9454 if (r->help_file) {
9455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9458 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9460 if (r->monitor_name) {
9461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9464 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9466 if (r->default_datatype) {
9467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9470 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9472 if (r->dependent_files) {
9473 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9475 if (r->previous_names) {
9476 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9478 if (r->manufacturer_name) {
9479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9482 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9484 if (r->manufacturer_url) {
9485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9490 if (r->hardware_id) {
9491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9496 if (r->provider) {
9497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9500 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9503 return NDR_ERR_SUCCESS;
9506 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9508 uint32_t _ptr_driver_name;
9509 TALLOC_CTX *_mem_save_driver_name_0;
9510 uint32_t _ptr_architecture;
9511 TALLOC_CTX *_mem_save_architecture_0;
9512 uint32_t _ptr_driver_path;
9513 TALLOC_CTX *_mem_save_driver_path_0;
9514 uint32_t _ptr_data_file;
9515 TALLOC_CTX *_mem_save_data_file_0;
9516 uint32_t _ptr_config_file;
9517 TALLOC_CTX *_mem_save_config_file_0;
9518 uint32_t _ptr_help_file;
9519 TALLOC_CTX *_mem_save_help_file_0;
9520 uint32_t _ptr_monitor_name;
9521 TALLOC_CTX *_mem_save_monitor_name_0;
9522 uint32_t _ptr_default_datatype;
9523 TALLOC_CTX *_mem_save_default_datatype_0;
9524 uint32_t _ptr_dependent_files;
9525 TALLOC_CTX *_mem_save_dependent_files_0;
9526 uint32_t _ptr_previous_names;
9527 TALLOC_CTX *_mem_save_previous_names_0;
9528 uint32_t _ptr_manufacturer_name;
9529 TALLOC_CTX *_mem_save_manufacturer_name_0;
9530 uint32_t _ptr_manufacturer_url;
9531 TALLOC_CTX *_mem_save_manufacturer_url_0;
9532 uint32_t _ptr_hardware_id;
9533 TALLOC_CTX *_mem_save_hardware_id_0;
9534 uint32_t _ptr_provider;
9535 TALLOC_CTX *_mem_save_provider_0;
9536 if (ndr_flags & NDR_SCALARS) {
9537 NDR_CHECK(ndr_pull_align(ndr, 8));
9538 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9540 if (_ptr_driver_name) {
9541 NDR_PULL_ALLOC(ndr, r->driver_name);
9542 } else {
9543 r->driver_name = NULL;
9545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9546 if (_ptr_architecture) {
9547 NDR_PULL_ALLOC(ndr, r->architecture);
9548 } else {
9549 r->architecture = NULL;
9551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9552 if (_ptr_driver_path) {
9553 NDR_PULL_ALLOC(ndr, r->driver_path);
9554 } else {
9555 r->driver_path = NULL;
9557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9558 if (_ptr_data_file) {
9559 NDR_PULL_ALLOC(ndr, r->data_file);
9560 } else {
9561 r->data_file = NULL;
9563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9564 if (_ptr_config_file) {
9565 NDR_PULL_ALLOC(ndr, r->config_file);
9566 } else {
9567 r->config_file = NULL;
9569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9570 if (_ptr_help_file) {
9571 NDR_PULL_ALLOC(ndr, r->help_file);
9572 } else {
9573 r->help_file = NULL;
9575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9576 if (_ptr_monitor_name) {
9577 NDR_PULL_ALLOC(ndr, r->monitor_name);
9578 } else {
9579 r->monitor_name = NULL;
9581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9582 if (_ptr_default_datatype) {
9583 NDR_PULL_ALLOC(ndr, r->default_datatype);
9584 } else {
9585 r->default_datatype = NULL;
9587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9589 if (_ptr_dependent_files) {
9590 NDR_PULL_ALLOC(ndr, r->dependent_files);
9591 } else {
9592 r->dependent_files = NULL;
9594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9596 if (_ptr_previous_names) {
9597 NDR_PULL_ALLOC(ndr, r->previous_names);
9598 } else {
9599 r->previous_names = NULL;
9601 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9602 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9604 if (_ptr_manufacturer_name) {
9605 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9606 } else {
9607 r->manufacturer_name = NULL;
9609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9610 if (_ptr_manufacturer_url) {
9611 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9612 } else {
9613 r->manufacturer_url = NULL;
9615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9616 if (_ptr_hardware_id) {
9617 NDR_PULL_ALLOC(ndr, r->hardware_id);
9618 } else {
9619 r->hardware_id = NULL;
9621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9622 if (_ptr_provider) {
9623 NDR_PULL_ALLOC(ndr, r->provider);
9624 } else {
9625 r->provider = NULL;
9627 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9629 if (ndr_flags & NDR_BUFFERS) {
9630 if (r->driver_name) {
9631 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9632 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9633 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9634 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9635 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9636 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9638 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9639 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9642 if (r->architecture) {
9643 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9644 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9645 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9646 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9647 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9648 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9654 if (r->driver_path) {
9655 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9656 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9657 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9658 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9659 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9660 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9662 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9666 if (r->data_file) {
9667 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9668 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9669 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9670 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9671 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9672 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9674 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9675 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9678 if (r->config_file) {
9679 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9680 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9681 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9682 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9683 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9684 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9686 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9687 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9690 if (r->help_file) {
9691 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9692 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9693 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9694 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9695 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9696 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9698 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9699 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9702 if (r->monitor_name) {
9703 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9704 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9705 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9706 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9707 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9708 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9711 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9714 if (r->default_datatype) {
9715 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9716 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9717 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9718 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9719 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9720 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9723 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9726 if (r->dependent_files) {
9727 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9728 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9729 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9732 if (r->previous_names) {
9733 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9734 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9735 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9738 if (r->manufacturer_name) {
9739 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9740 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9741 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9742 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9743 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9744 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9750 if (r->manufacturer_url) {
9751 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9752 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9753 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9754 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9755 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9756 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
9758 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9759 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9762 if (r->hardware_id) {
9763 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9764 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9765 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9766 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9767 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9768 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
9770 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9771 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9774 if (r->provider) {
9775 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9776 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9777 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9778 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9779 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9780 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
9782 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9783 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9787 return NDR_ERR_SUCCESS;
9790 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9792 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9793 ndr->depth++;
9794 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9795 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9796 ndr->depth++;
9797 if (r->driver_name) {
9798 ndr_print_string(ndr, "driver_name", r->driver_name);
9800 ndr->depth--;
9801 ndr_print_ptr(ndr, "architecture", r->architecture);
9802 ndr->depth++;
9803 if (r->architecture) {
9804 ndr_print_string(ndr, "architecture", r->architecture);
9806 ndr->depth--;
9807 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9808 ndr->depth++;
9809 if (r->driver_path) {
9810 ndr_print_string(ndr, "driver_path", r->driver_path);
9812 ndr->depth--;
9813 ndr_print_ptr(ndr, "data_file", r->data_file);
9814 ndr->depth++;
9815 if (r->data_file) {
9816 ndr_print_string(ndr, "data_file", r->data_file);
9818 ndr->depth--;
9819 ndr_print_ptr(ndr, "config_file", r->config_file);
9820 ndr->depth++;
9821 if (r->config_file) {
9822 ndr_print_string(ndr, "config_file", r->config_file);
9824 ndr->depth--;
9825 ndr_print_ptr(ndr, "help_file", r->help_file);
9826 ndr->depth++;
9827 if (r->help_file) {
9828 ndr_print_string(ndr, "help_file", r->help_file);
9830 ndr->depth--;
9831 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9832 ndr->depth++;
9833 if (r->monitor_name) {
9834 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9836 ndr->depth--;
9837 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9838 ndr->depth++;
9839 if (r->default_datatype) {
9840 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9842 ndr->depth--;
9843 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9844 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9845 ndr->depth++;
9846 if (r->dependent_files) {
9847 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9849 ndr->depth--;
9850 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
9851 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9852 ndr->depth++;
9853 if (r->previous_names) {
9854 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9856 ndr->depth--;
9857 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9858 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9859 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9860 ndr->depth++;
9861 if (r->manufacturer_name) {
9862 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9864 ndr->depth--;
9865 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9866 ndr->depth++;
9867 if (r->manufacturer_url) {
9868 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9870 ndr->depth--;
9871 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9872 ndr->depth++;
9873 if (r->hardware_id) {
9874 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9876 ndr->depth--;
9877 ndr_print_ptr(ndr, "provider", r->provider);
9878 ndr->depth++;
9879 if (r->provider) {
9880 ndr_print_string(ndr, "provider", r->provider);
9882 ndr->depth--;
9883 ndr->depth--;
9886 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9888 if (ndr_flags & NDR_SCALARS) {
9889 NDR_CHECK(ndr_push_align(ndr, 8));
9890 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9891 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9898 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9902 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9903 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9904 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9905 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9906 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9907 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9909 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9910 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9913 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9917 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9918 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9919 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9921 if (ndr_flags & NDR_BUFFERS) {
9922 if (r->driver_name) {
9923 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9924 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9925 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9926 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9928 if (r->architecture) {
9929 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9931 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9932 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9934 if (r->driver_path) {
9935 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9936 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9937 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9938 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9940 if (r->data_file) {
9941 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9943 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9944 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9946 if (r->config_file) {
9947 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9948 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9949 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9950 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9952 if (r->help_file) {
9953 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9958 if (r->monitor_name) {
9959 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9962 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9964 if (r->default_datatype) {
9965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9966 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9968 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9970 if (r->dependent_files) {
9971 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9973 if (r->previous_names) {
9974 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9976 if (r->manufacturer_name) {
9977 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9980 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9982 if (r->manufacturer_url) {
9983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9988 if (r->hardware_id) {
9989 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9994 if (r->provider) {
9995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10000 if (r->print_processor) {
10001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10006 if (r->vendor_setup) {
10007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10012 if (r->color_profiles) {
10013 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10015 if (r->inf_path) {
10016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10018 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10019 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10021 if (r->core_driver_dependencies) {
10022 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10025 return NDR_ERR_SUCCESS;
10028 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
10030 uint32_t _ptr_driver_name;
10031 TALLOC_CTX *_mem_save_driver_name_0;
10032 uint32_t _ptr_architecture;
10033 TALLOC_CTX *_mem_save_architecture_0;
10034 uint32_t _ptr_driver_path;
10035 TALLOC_CTX *_mem_save_driver_path_0;
10036 uint32_t _ptr_data_file;
10037 TALLOC_CTX *_mem_save_data_file_0;
10038 uint32_t _ptr_config_file;
10039 TALLOC_CTX *_mem_save_config_file_0;
10040 uint32_t _ptr_help_file;
10041 TALLOC_CTX *_mem_save_help_file_0;
10042 uint32_t _ptr_monitor_name;
10043 TALLOC_CTX *_mem_save_monitor_name_0;
10044 uint32_t _ptr_default_datatype;
10045 TALLOC_CTX *_mem_save_default_datatype_0;
10046 uint32_t _ptr_dependent_files;
10047 TALLOC_CTX *_mem_save_dependent_files_0;
10048 uint32_t _ptr_previous_names;
10049 TALLOC_CTX *_mem_save_previous_names_0;
10050 uint32_t _ptr_manufacturer_name;
10051 TALLOC_CTX *_mem_save_manufacturer_name_0;
10052 uint32_t _ptr_manufacturer_url;
10053 TALLOC_CTX *_mem_save_manufacturer_url_0;
10054 uint32_t _ptr_hardware_id;
10055 TALLOC_CTX *_mem_save_hardware_id_0;
10056 uint32_t _ptr_provider;
10057 TALLOC_CTX *_mem_save_provider_0;
10058 uint32_t _ptr_print_processor;
10059 TALLOC_CTX *_mem_save_print_processor_0;
10060 uint32_t _ptr_vendor_setup;
10061 TALLOC_CTX *_mem_save_vendor_setup_0;
10062 uint32_t _ptr_color_profiles;
10063 TALLOC_CTX *_mem_save_color_profiles_0;
10064 uint32_t _ptr_inf_path;
10065 TALLOC_CTX *_mem_save_inf_path_0;
10066 uint32_t _ptr_core_driver_dependencies;
10067 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
10068 if (ndr_flags & NDR_SCALARS) {
10069 NDR_CHECK(ndr_pull_align(ndr, 8));
10070 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10072 if (_ptr_driver_name) {
10073 NDR_PULL_ALLOC(ndr, r->driver_name);
10074 } else {
10075 r->driver_name = NULL;
10077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10078 if (_ptr_architecture) {
10079 NDR_PULL_ALLOC(ndr, r->architecture);
10080 } else {
10081 r->architecture = NULL;
10083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10084 if (_ptr_driver_path) {
10085 NDR_PULL_ALLOC(ndr, r->driver_path);
10086 } else {
10087 r->driver_path = NULL;
10089 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10090 if (_ptr_data_file) {
10091 NDR_PULL_ALLOC(ndr, r->data_file);
10092 } else {
10093 r->data_file = NULL;
10095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10096 if (_ptr_config_file) {
10097 NDR_PULL_ALLOC(ndr, r->config_file);
10098 } else {
10099 r->config_file = NULL;
10101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10102 if (_ptr_help_file) {
10103 NDR_PULL_ALLOC(ndr, r->help_file);
10104 } else {
10105 r->help_file = NULL;
10107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10108 if (_ptr_monitor_name) {
10109 NDR_PULL_ALLOC(ndr, r->monitor_name);
10110 } else {
10111 r->monitor_name = NULL;
10113 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10114 if (_ptr_default_datatype) {
10115 NDR_PULL_ALLOC(ndr, r->default_datatype);
10116 } else {
10117 r->default_datatype = NULL;
10119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10121 if (_ptr_dependent_files) {
10122 NDR_PULL_ALLOC(ndr, r->dependent_files);
10123 } else {
10124 r->dependent_files = NULL;
10126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10128 if (_ptr_previous_names) {
10129 NDR_PULL_ALLOC(ndr, r->previous_names);
10130 } else {
10131 r->previous_names = NULL;
10133 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10134 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10136 if (_ptr_manufacturer_name) {
10137 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10138 } else {
10139 r->manufacturer_name = NULL;
10141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10142 if (_ptr_manufacturer_url) {
10143 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10144 } else {
10145 r->manufacturer_url = NULL;
10147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10148 if (_ptr_hardware_id) {
10149 NDR_PULL_ALLOC(ndr, r->hardware_id);
10150 } else {
10151 r->hardware_id = NULL;
10153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10154 if (_ptr_provider) {
10155 NDR_PULL_ALLOC(ndr, r->provider);
10156 } else {
10157 r->provider = NULL;
10159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10160 if (_ptr_print_processor) {
10161 NDR_PULL_ALLOC(ndr, r->print_processor);
10162 } else {
10163 r->print_processor = NULL;
10165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10166 if (_ptr_vendor_setup) {
10167 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10168 } else {
10169 r->vendor_setup = NULL;
10171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
10172 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10173 if (_ptr_color_profiles) {
10174 NDR_PULL_ALLOC(ndr, r->color_profiles);
10175 } else {
10176 r->color_profiles = NULL;
10178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10179 if (_ptr_inf_path) {
10180 NDR_PULL_ALLOC(ndr, r->inf_path);
10181 } else {
10182 r->inf_path = NULL;
10184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
10186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10187 if (_ptr_core_driver_dependencies) {
10188 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10189 } else {
10190 r->core_driver_dependencies = NULL;
10192 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10193 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10194 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10196 if (ndr_flags & NDR_BUFFERS) {
10197 if (r->driver_name) {
10198 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10199 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10200 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10201 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10202 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
10203 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
10205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
10206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
10207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10209 if (r->architecture) {
10210 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10211 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10212 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10213 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10214 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
10215 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
10217 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
10218 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
10219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10221 if (r->driver_path) {
10222 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10223 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10224 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10225 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10226 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
10227 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
10229 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
10230 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
10231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10233 if (r->data_file) {
10234 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10235 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10236 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10237 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10238 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
10239 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
10241 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
10242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
10243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10245 if (r->config_file) {
10246 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10247 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10248 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10249 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10250 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
10251 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
10253 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
10254 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
10255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10257 if (r->help_file) {
10258 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10259 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10260 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10261 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10262 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
10263 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
10265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
10266 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
10267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10269 if (r->monitor_name) {
10270 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10271 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10272 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10273 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10274 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
10275 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
10277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
10278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
10279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10281 if (r->default_datatype) {
10282 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10283 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10284 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10285 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10286 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10287 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
10289 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10290 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10293 if (r->dependent_files) {
10294 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10296 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10299 if (r->previous_names) {
10300 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10301 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10302 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10305 if (r->manufacturer_name) {
10306 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10307 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10308 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10309 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10310 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10311 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
10313 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10314 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10317 if (r->manufacturer_url) {
10318 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10319 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10320 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10321 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10322 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10323 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
10325 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10326 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10329 if (r->hardware_id) {
10330 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10331 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10332 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10333 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10334 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10335 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
10337 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10338 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10341 if (r->provider) {
10342 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10343 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10344 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10345 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10346 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10347 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
10349 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10353 if (r->print_processor) {
10354 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10356 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10357 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10358 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10359 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
10361 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10362 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10365 if (r->vendor_setup) {
10366 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10367 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10368 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10369 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10370 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10371 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
10373 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10374 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10377 if (r->color_profiles) {
10378 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10379 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10380 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10383 if (r->inf_path) {
10384 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10385 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10386 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10387 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10388 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10389 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
10391 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10392 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10395 if (r->core_driver_dependencies) {
10396 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10397 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10398 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10402 return NDR_ERR_SUCCESS;
10405 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10407 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10408 ndr->depth++;
10409 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10410 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10411 ndr->depth++;
10412 if (r->driver_name) {
10413 ndr_print_string(ndr, "driver_name", r->driver_name);
10415 ndr->depth--;
10416 ndr_print_ptr(ndr, "architecture", r->architecture);
10417 ndr->depth++;
10418 if (r->architecture) {
10419 ndr_print_string(ndr, "architecture", r->architecture);
10421 ndr->depth--;
10422 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10423 ndr->depth++;
10424 if (r->driver_path) {
10425 ndr_print_string(ndr, "driver_path", r->driver_path);
10427 ndr->depth--;
10428 ndr_print_ptr(ndr, "data_file", r->data_file);
10429 ndr->depth++;
10430 if (r->data_file) {
10431 ndr_print_string(ndr, "data_file", r->data_file);
10433 ndr->depth--;
10434 ndr_print_ptr(ndr, "config_file", r->config_file);
10435 ndr->depth++;
10436 if (r->config_file) {
10437 ndr_print_string(ndr, "config_file", r->config_file);
10439 ndr->depth--;
10440 ndr_print_ptr(ndr, "help_file", r->help_file);
10441 ndr->depth++;
10442 if (r->help_file) {
10443 ndr_print_string(ndr, "help_file", r->help_file);
10445 ndr->depth--;
10446 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10447 ndr->depth++;
10448 if (r->monitor_name) {
10449 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10451 ndr->depth--;
10452 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10453 ndr->depth++;
10454 if (r->default_datatype) {
10455 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10457 ndr->depth--;
10458 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10459 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10460 ndr->depth++;
10461 if (r->dependent_files) {
10462 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10464 ndr->depth--;
10465 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10466 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10467 ndr->depth++;
10468 if (r->previous_names) {
10469 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10471 ndr->depth--;
10472 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10473 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10474 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10475 ndr->depth++;
10476 if (r->manufacturer_name) {
10477 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10479 ndr->depth--;
10480 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10481 ndr->depth++;
10482 if (r->manufacturer_url) {
10483 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10485 ndr->depth--;
10486 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10487 ndr->depth++;
10488 if (r->hardware_id) {
10489 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10491 ndr->depth--;
10492 ndr_print_ptr(ndr, "provider", r->provider);
10493 ndr->depth++;
10494 if (r->provider) {
10495 ndr_print_string(ndr, "provider", r->provider);
10497 ndr->depth--;
10498 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10499 ndr->depth++;
10500 if (r->print_processor) {
10501 ndr_print_string(ndr, "print_processor", r->print_processor);
10503 ndr->depth--;
10504 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10505 ndr->depth++;
10506 if (r->vendor_setup) {
10507 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10509 ndr->depth--;
10510 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
10511 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10512 ndr->depth++;
10513 if (r->color_profiles) {
10514 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10516 ndr->depth--;
10517 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10518 ndr->depth++;
10519 if (r->inf_path) {
10520 ndr_print_string(ndr, "inf_path", r->inf_path);
10522 ndr->depth--;
10523 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10524 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
10525 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10526 ndr->depth++;
10527 if (r->core_driver_dependencies) {
10528 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10530 ndr->depth--;
10531 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10532 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10533 ndr->depth--;
10536 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10538 if (ndr_flags & NDR_SCALARS) {
10539 int level = ndr_push_get_switch_value(ndr, r);
10540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10541 NDR_CHECK(ndr_push_union_align(ndr, 5));
10542 switch (level) {
10543 case 1: {
10544 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10545 break; }
10547 case 2: {
10548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10549 break; }
10551 case 3: {
10552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10553 break; }
10555 case 4: {
10556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10557 break; }
10559 case 6: {
10560 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10561 break; }
10563 case 8: {
10564 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10565 break; }
10567 default:
10568 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10571 if (ndr_flags & NDR_BUFFERS) {
10572 int level = ndr_push_get_switch_value(ndr, r);
10573 switch (level) {
10574 case 1:
10575 if (r->info1) {
10576 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10578 break;
10580 case 2:
10581 if (r->info2) {
10582 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10584 break;
10586 case 3:
10587 if (r->info3) {
10588 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10590 break;
10592 case 4:
10593 if (r->info4) {
10594 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10596 break;
10598 case 6:
10599 if (r->info6) {
10600 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10602 break;
10604 case 8:
10605 if (r->info8) {
10606 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10608 break;
10610 default:
10611 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10614 return NDR_ERR_SUCCESS;
10617 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10619 int level;
10620 uint32_t _level;
10621 TALLOC_CTX *_mem_save_info1_0;
10622 TALLOC_CTX *_mem_save_info2_0;
10623 TALLOC_CTX *_mem_save_info3_0;
10624 TALLOC_CTX *_mem_save_info4_0;
10625 TALLOC_CTX *_mem_save_info6_0;
10626 TALLOC_CTX *_mem_save_info8_0;
10627 level = ndr_pull_get_switch_value(ndr, r);
10628 if (ndr_flags & NDR_SCALARS) {
10629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10630 if (_level != level) {
10631 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10633 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10634 switch (level) {
10635 case 1: {
10636 uint32_t _ptr_info1;
10637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10638 if (_ptr_info1) {
10639 NDR_PULL_ALLOC(ndr, r->info1);
10640 } else {
10641 r->info1 = NULL;
10643 break; }
10645 case 2: {
10646 uint32_t _ptr_info2;
10647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10648 if (_ptr_info2) {
10649 NDR_PULL_ALLOC(ndr, r->info2);
10650 } else {
10651 r->info2 = NULL;
10653 break; }
10655 case 3: {
10656 uint32_t _ptr_info3;
10657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10658 if (_ptr_info3) {
10659 NDR_PULL_ALLOC(ndr, r->info3);
10660 } else {
10661 r->info3 = NULL;
10663 break; }
10665 case 4: {
10666 uint32_t _ptr_info4;
10667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10668 if (_ptr_info4) {
10669 NDR_PULL_ALLOC(ndr, r->info4);
10670 } else {
10671 r->info4 = NULL;
10673 break; }
10675 case 6: {
10676 uint32_t _ptr_info6;
10677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10678 if (_ptr_info6) {
10679 NDR_PULL_ALLOC(ndr, r->info6);
10680 } else {
10681 r->info6 = NULL;
10683 break; }
10685 case 8: {
10686 uint32_t _ptr_info8;
10687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10688 if (_ptr_info8) {
10689 NDR_PULL_ALLOC(ndr, r->info8);
10690 } else {
10691 r->info8 = NULL;
10693 break; }
10695 default:
10696 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10699 if (ndr_flags & NDR_BUFFERS) {
10700 switch (level) {
10701 case 1:
10702 if (r->info1) {
10703 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10704 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10705 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10708 break;
10710 case 2:
10711 if (r->info2) {
10712 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10713 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10714 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10717 break;
10719 case 3:
10720 if (r->info3) {
10721 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10722 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10723 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10726 break;
10728 case 4:
10729 if (r->info4) {
10730 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10731 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10732 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10735 break;
10737 case 6:
10738 if (r->info6) {
10739 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10740 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10741 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10744 break;
10746 case 8:
10747 if (r->info8) {
10748 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10749 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10750 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10753 break;
10755 default:
10756 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10759 return NDR_ERR_SUCCESS;
10762 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10764 int level;
10765 level = ndr_print_get_switch_value(ndr, r);
10766 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10767 switch (level) {
10768 case 1:
10769 ndr_print_ptr(ndr, "info1", r->info1);
10770 ndr->depth++;
10771 if (r->info1) {
10772 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10774 ndr->depth--;
10775 break;
10777 case 2:
10778 ndr_print_ptr(ndr, "info2", r->info2);
10779 ndr->depth++;
10780 if (r->info2) {
10781 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10783 ndr->depth--;
10784 break;
10786 case 3:
10787 ndr_print_ptr(ndr, "info3", r->info3);
10788 ndr->depth++;
10789 if (r->info3) {
10790 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10792 ndr->depth--;
10793 break;
10795 case 4:
10796 ndr_print_ptr(ndr, "info4", r->info4);
10797 ndr->depth++;
10798 if (r->info4) {
10799 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10801 ndr->depth--;
10802 break;
10804 case 6:
10805 ndr_print_ptr(ndr, "info6", r->info6);
10806 ndr->depth++;
10807 if (r->info6) {
10808 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10810 ndr->depth--;
10811 break;
10813 case 8:
10814 ndr_print_ptr(ndr, "info8", r->info8);
10815 ndr->depth++;
10816 if (r->info8) {
10817 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10819 ndr->depth--;
10820 break;
10822 default:
10823 ndr_print_bad_level(ndr, name, level);
10827 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10829 if (ndr_flags & NDR_SCALARS) {
10830 NDR_CHECK(ndr_push_align(ndr, 5));
10831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10832 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10833 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10834 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10836 if (ndr_flags & NDR_BUFFERS) {
10837 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10839 return NDR_ERR_SUCCESS;
10842 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10844 if (ndr_flags & NDR_SCALARS) {
10845 NDR_CHECK(ndr_pull_align(ndr, 5));
10846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10847 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10848 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10849 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10851 if (ndr_flags & NDR_BUFFERS) {
10852 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10854 return NDR_ERR_SUCCESS;
10857 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10859 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10860 ndr->depth++;
10861 ndr_print_uint32(ndr, "level", r->level);
10862 ndr_print_set_switch_value(ndr, &r->info, r->level);
10863 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10864 ndr->depth--;
10867 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10869 if (ndr_flags & NDR_SCALARS) {
10870 NDR_CHECK(ndr_push_align(ndr, 5));
10872 uint32_t _flags_save_string = ndr->flags;
10873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10874 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10875 ndr->flags = _flags_save_string;
10877 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10879 if (ndr_flags & NDR_BUFFERS) {
10881 uint32_t _flags_save_string = ndr->flags;
10882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10883 if (r->driver_name) {
10884 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10885 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10886 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10888 ndr->flags = _flags_save_string;
10891 return NDR_ERR_SUCCESS;
10894 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10896 uint32_t _ptr_driver_name;
10897 TALLOC_CTX *_mem_save_driver_name_0;
10898 if (ndr_flags & NDR_SCALARS) {
10899 NDR_CHECK(ndr_pull_align(ndr, 5));
10901 uint32_t _flags_save_string = ndr->flags;
10902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10904 if (_ptr_driver_name) {
10905 NDR_PULL_ALLOC(ndr, r->driver_name);
10906 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10907 } else {
10908 r->driver_name = NULL;
10910 ndr->flags = _flags_save_string;
10912 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10914 if (ndr_flags & NDR_BUFFERS) {
10916 uint32_t _flags_save_string = ndr->flags;
10917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10918 if (r->driver_name) {
10919 uint32_t _relative_save_offset;
10920 _relative_save_offset = ndr->offset;
10921 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10922 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10923 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10924 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10926 if (ndr->offset > ndr->relative_highest_offset) {
10927 ndr->relative_highest_offset = ndr->offset;
10929 ndr->offset = _relative_save_offset;
10931 ndr->flags = _flags_save_string;
10934 return NDR_ERR_SUCCESS;
10937 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10939 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10940 ndr->depth++;
10941 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10942 ndr->depth++;
10943 if (r->driver_name) {
10944 ndr_print_string(ndr, "driver_name", r->driver_name);
10946 ndr->depth--;
10947 ndr->depth--;
10950 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10952 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10955 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10957 if (ndr_flags & NDR_SCALARS) {
10958 NDR_CHECK(ndr_push_align(ndr, 5));
10959 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10961 uint32_t _flags_save_string = ndr->flags;
10962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10964 ndr->flags = _flags_save_string;
10967 uint32_t _flags_save_string = ndr->flags;
10968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10970 ndr->flags = _flags_save_string;
10973 uint32_t _flags_save_string = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10976 ndr->flags = _flags_save_string;
10979 uint32_t _flags_save_string = ndr->flags;
10980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10982 ndr->flags = _flags_save_string;
10985 uint32_t _flags_save_string = ndr->flags;
10986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10988 ndr->flags = _flags_save_string;
10990 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10992 if (ndr_flags & NDR_BUFFERS) {
10994 uint32_t _flags_save_string = ndr->flags;
10995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10996 if (r->driver_name) {
10997 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11001 ndr->flags = _flags_save_string;
11004 uint32_t _flags_save_string = ndr->flags;
11005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11006 if (r->architecture) {
11007 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11008 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11009 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11011 ndr->flags = _flags_save_string;
11014 uint32_t _flags_save_string = ndr->flags;
11015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11016 if (r->driver_path) {
11017 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11018 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11019 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11021 ndr->flags = _flags_save_string;
11024 uint32_t _flags_save_string = ndr->flags;
11025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11026 if (r->data_file) {
11027 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11028 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11029 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11031 ndr->flags = _flags_save_string;
11034 uint32_t _flags_save_string = ndr->flags;
11035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11036 if (r->config_file) {
11037 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11038 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11039 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11041 ndr->flags = _flags_save_string;
11044 return NDR_ERR_SUCCESS;
11047 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
11049 uint32_t _ptr_driver_name;
11050 TALLOC_CTX *_mem_save_driver_name_0;
11051 uint32_t _ptr_architecture;
11052 TALLOC_CTX *_mem_save_architecture_0;
11053 uint32_t _ptr_driver_path;
11054 TALLOC_CTX *_mem_save_driver_path_0;
11055 uint32_t _ptr_data_file;
11056 TALLOC_CTX *_mem_save_data_file_0;
11057 uint32_t _ptr_config_file;
11058 TALLOC_CTX *_mem_save_config_file_0;
11059 if (ndr_flags & NDR_SCALARS) {
11060 NDR_CHECK(ndr_pull_align(ndr, 5));
11061 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11063 uint32_t _flags_save_string = ndr->flags;
11064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11066 if (_ptr_driver_name) {
11067 NDR_PULL_ALLOC(ndr, r->driver_name);
11068 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11069 } else {
11070 r->driver_name = NULL;
11072 ndr->flags = _flags_save_string;
11075 uint32_t _flags_save_string = ndr->flags;
11076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11078 if (_ptr_architecture) {
11079 NDR_PULL_ALLOC(ndr, r->architecture);
11080 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11081 } else {
11082 r->architecture = NULL;
11084 ndr->flags = _flags_save_string;
11087 uint32_t _flags_save_string = ndr->flags;
11088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11089 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11090 if (_ptr_driver_path) {
11091 NDR_PULL_ALLOC(ndr, r->driver_path);
11092 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11093 } else {
11094 r->driver_path = NULL;
11096 ndr->flags = _flags_save_string;
11099 uint32_t _flags_save_string = ndr->flags;
11100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11102 if (_ptr_data_file) {
11103 NDR_PULL_ALLOC(ndr, r->data_file);
11104 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11105 } else {
11106 r->data_file = NULL;
11108 ndr->flags = _flags_save_string;
11111 uint32_t _flags_save_string = ndr->flags;
11112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11113 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11114 if (_ptr_config_file) {
11115 NDR_PULL_ALLOC(ndr, r->config_file);
11116 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11117 } else {
11118 r->config_file = NULL;
11120 ndr->flags = _flags_save_string;
11122 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11124 if (ndr_flags & NDR_BUFFERS) {
11126 uint32_t _flags_save_string = ndr->flags;
11127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11128 if (r->driver_name) {
11129 uint32_t _relative_save_offset;
11130 _relative_save_offset = ndr->offset;
11131 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11132 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11133 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11134 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11136 if (ndr->offset > ndr->relative_highest_offset) {
11137 ndr->relative_highest_offset = ndr->offset;
11139 ndr->offset = _relative_save_offset;
11141 ndr->flags = _flags_save_string;
11144 uint32_t _flags_save_string = ndr->flags;
11145 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11146 if (r->architecture) {
11147 uint32_t _relative_save_offset;
11148 _relative_save_offset = ndr->offset;
11149 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11150 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11151 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11152 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11154 if (ndr->offset > ndr->relative_highest_offset) {
11155 ndr->relative_highest_offset = ndr->offset;
11157 ndr->offset = _relative_save_offset;
11159 ndr->flags = _flags_save_string;
11162 uint32_t _flags_save_string = ndr->flags;
11163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11164 if (r->driver_path) {
11165 uint32_t _relative_save_offset;
11166 _relative_save_offset = ndr->offset;
11167 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11168 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11169 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11170 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11172 if (ndr->offset > ndr->relative_highest_offset) {
11173 ndr->relative_highest_offset = ndr->offset;
11175 ndr->offset = _relative_save_offset;
11177 ndr->flags = _flags_save_string;
11180 uint32_t _flags_save_string = ndr->flags;
11181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11182 if (r->data_file) {
11183 uint32_t _relative_save_offset;
11184 _relative_save_offset = ndr->offset;
11185 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11186 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11187 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11188 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11190 if (ndr->offset > ndr->relative_highest_offset) {
11191 ndr->relative_highest_offset = ndr->offset;
11193 ndr->offset = _relative_save_offset;
11195 ndr->flags = _flags_save_string;
11198 uint32_t _flags_save_string = ndr->flags;
11199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11200 if (r->config_file) {
11201 uint32_t _relative_save_offset;
11202 _relative_save_offset = ndr->offset;
11203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11204 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11205 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11208 if (ndr->offset > ndr->relative_highest_offset) {
11209 ndr->relative_highest_offset = ndr->offset;
11211 ndr->offset = _relative_save_offset;
11213 ndr->flags = _flags_save_string;
11216 return NDR_ERR_SUCCESS;
11219 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
11221 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
11222 ndr->depth++;
11223 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11224 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11225 ndr->depth++;
11226 if (r->driver_name) {
11227 ndr_print_string(ndr, "driver_name", r->driver_name);
11229 ndr->depth--;
11230 ndr_print_ptr(ndr, "architecture", r->architecture);
11231 ndr->depth++;
11232 if (r->architecture) {
11233 ndr_print_string(ndr, "architecture", r->architecture);
11235 ndr->depth--;
11236 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11237 ndr->depth++;
11238 if (r->driver_path) {
11239 ndr_print_string(ndr, "driver_path", r->driver_path);
11241 ndr->depth--;
11242 ndr_print_ptr(ndr, "data_file", r->data_file);
11243 ndr->depth++;
11244 if (r->data_file) {
11245 ndr_print_string(ndr, "data_file", r->data_file);
11247 ndr->depth--;
11248 ndr_print_ptr(ndr, "config_file", r->config_file);
11249 ndr->depth++;
11250 if (r->config_file) {
11251 ndr_print_string(ndr, "config_file", r->config_file);
11253 ndr->depth--;
11254 ndr->depth--;
11257 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
11259 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
11262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
11264 if (ndr_flags & NDR_SCALARS) {
11265 NDR_CHECK(ndr_push_align(ndr, 5));
11266 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11268 uint32_t _flags_save_string = ndr->flags;
11269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11271 ndr->flags = _flags_save_string;
11274 uint32_t _flags_save_string = ndr->flags;
11275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11277 ndr->flags = _flags_save_string;
11280 uint32_t _flags_save_string = ndr->flags;
11281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11283 ndr->flags = _flags_save_string;
11286 uint32_t _flags_save_string = ndr->flags;
11287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11289 ndr->flags = _flags_save_string;
11292 uint32_t _flags_save_string = ndr->flags;
11293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11295 ndr->flags = _flags_save_string;
11298 uint32_t _flags_save_string = ndr->flags;
11299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11301 ndr->flags = _flags_save_string;
11304 uint32_t _flags_save_string_array = ndr->flags;
11305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11307 ndr->flags = _flags_save_string_array;
11310 uint32_t _flags_save_string = ndr->flags;
11311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11312 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11313 ndr->flags = _flags_save_string;
11316 uint32_t _flags_save_string = ndr->flags;
11317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11319 ndr->flags = _flags_save_string;
11321 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11323 if (ndr_flags & NDR_BUFFERS) {
11325 uint32_t _flags_save_string = ndr->flags;
11326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11327 if (r->driver_name) {
11328 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11330 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11332 ndr->flags = _flags_save_string;
11335 uint32_t _flags_save_string = ndr->flags;
11336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11337 if (r->architecture) {
11338 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11340 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11342 ndr->flags = _flags_save_string;
11345 uint32_t _flags_save_string = ndr->flags;
11346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11347 if (r->driver_path) {
11348 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11349 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11350 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11352 ndr->flags = _flags_save_string;
11355 uint32_t _flags_save_string = ndr->flags;
11356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11357 if (r->data_file) {
11358 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11359 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11360 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11362 ndr->flags = _flags_save_string;
11365 uint32_t _flags_save_string = ndr->flags;
11366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11367 if (r->config_file) {
11368 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11369 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11370 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11372 ndr->flags = _flags_save_string;
11375 uint32_t _flags_save_string = ndr->flags;
11376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11377 if (r->help_file) {
11378 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11379 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11380 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11382 ndr->flags = _flags_save_string;
11385 uint32_t _flags_save_string_array = ndr->flags;
11386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11387 if (r->dependent_files) {
11388 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11389 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11390 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11392 ndr->flags = _flags_save_string_array;
11395 uint32_t _flags_save_string = ndr->flags;
11396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11397 if (r->monitor_name) {
11398 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11399 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11400 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11402 ndr->flags = _flags_save_string;
11405 uint32_t _flags_save_string = ndr->flags;
11406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11407 if (r->default_datatype) {
11408 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11409 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11410 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11412 ndr->flags = _flags_save_string;
11415 return NDR_ERR_SUCCESS;
11418 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11420 uint32_t _ptr_driver_name;
11421 TALLOC_CTX *_mem_save_driver_name_0;
11422 uint32_t _ptr_architecture;
11423 TALLOC_CTX *_mem_save_architecture_0;
11424 uint32_t _ptr_driver_path;
11425 TALLOC_CTX *_mem_save_driver_path_0;
11426 uint32_t _ptr_data_file;
11427 TALLOC_CTX *_mem_save_data_file_0;
11428 uint32_t _ptr_config_file;
11429 TALLOC_CTX *_mem_save_config_file_0;
11430 uint32_t _ptr_help_file;
11431 TALLOC_CTX *_mem_save_help_file_0;
11432 uint32_t _ptr_dependent_files;
11433 TALLOC_CTX *_mem_save_dependent_files_0;
11434 uint32_t _ptr_monitor_name;
11435 TALLOC_CTX *_mem_save_monitor_name_0;
11436 uint32_t _ptr_default_datatype;
11437 TALLOC_CTX *_mem_save_default_datatype_0;
11438 if (ndr_flags & NDR_SCALARS) {
11439 NDR_CHECK(ndr_pull_align(ndr, 5));
11440 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11442 uint32_t _flags_save_string = ndr->flags;
11443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11445 if (_ptr_driver_name) {
11446 NDR_PULL_ALLOC(ndr, r->driver_name);
11447 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11448 } else {
11449 r->driver_name = NULL;
11451 ndr->flags = _flags_save_string;
11454 uint32_t _flags_save_string = ndr->flags;
11455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11457 if (_ptr_architecture) {
11458 NDR_PULL_ALLOC(ndr, r->architecture);
11459 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11460 } else {
11461 r->architecture = NULL;
11463 ndr->flags = _flags_save_string;
11466 uint32_t _flags_save_string = ndr->flags;
11467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11469 if (_ptr_driver_path) {
11470 NDR_PULL_ALLOC(ndr, r->driver_path);
11471 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11472 } else {
11473 r->driver_path = NULL;
11475 ndr->flags = _flags_save_string;
11478 uint32_t _flags_save_string = ndr->flags;
11479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11481 if (_ptr_data_file) {
11482 NDR_PULL_ALLOC(ndr, r->data_file);
11483 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11484 } else {
11485 r->data_file = NULL;
11487 ndr->flags = _flags_save_string;
11490 uint32_t _flags_save_string = ndr->flags;
11491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11493 if (_ptr_config_file) {
11494 NDR_PULL_ALLOC(ndr, r->config_file);
11495 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11496 } else {
11497 r->config_file = NULL;
11499 ndr->flags = _flags_save_string;
11502 uint32_t _flags_save_string = ndr->flags;
11503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11505 if (_ptr_help_file) {
11506 NDR_PULL_ALLOC(ndr, r->help_file);
11507 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11508 } else {
11509 r->help_file = NULL;
11511 ndr->flags = _flags_save_string;
11514 uint32_t _flags_save_string_array = ndr->flags;
11515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11517 if (_ptr_dependent_files) {
11518 NDR_PULL_ALLOC(ndr, r->dependent_files);
11519 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11520 } else {
11521 r->dependent_files = NULL;
11523 ndr->flags = _flags_save_string_array;
11526 uint32_t _flags_save_string = ndr->flags;
11527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11529 if (_ptr_monitor_name) {
11530 NDR_PULL_ALLOC(ndr, r->monitor_name);
11531 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11532 } else {
11533 r->monitor_name = NULL;
11535 ndr->flags = _flags_save_string;
11538 uint32_t _flags_save_string = ndr->flags;
11539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11541 if (_ptr_default_datatype) {
11542 NDR_PULL_ALLOC(ndr, r->default_datatype);
11543 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11544 } else {
11545 r->default_datatype = NULL;
11547 ndr->flags = _flags_save_string;
11549 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11551 if (ndr_flags & NDR_BUFFERS) {
11553 uint32_t _flags_save_string = ndr->flags;
11554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11555 if (r->driver_name) {
11556 uint32_t _relative_save_offset;
11557 _relative_save_offset = ndr->offset;
11558 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11559 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11560 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11561 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11563 if (ndr->offset > ndr->relative_highest_offset) {
11564 ndr->relative_highest_offset = ndr->offset;
11566 ndr->offset = _relative_save_offset;
11568 ndr->flags = _flags_save_string;
11571 uint32_t _flags_save_string = ndr->flags;
11572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11573 if (r->architecture) {
11574 uint32_t _relative_save_offset;
11575 _relative_save_offset = ndr->offset;
11576 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11577 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11578 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11579 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11581 if (ndr->offset > ndr->relative_highest_offset) {
11582 ndr->relative_highest_offset = ndr->offset;
11584 ndr->offset = _relative_save_offset;
11586 ndr->flags = _flags_save_string;
11589 uint32_t _flags_save_string = ndr->flags;
11590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11591 if (r->driver_path) {
11592 uint32_t _relative_save_offset;
11593 _relative_save_offset = ndr->offset;
11594 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11595 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11596 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11597 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11599 if (ndr->offset > ndr->relative_highest_offset) {
11600 ndr->relative_highest_offset = ndr->offset;
11602 ndr->offset = _relative_save_offset;
11604 ndr->flags = _flags_save_string;
11607 uint32_t _flags_save_string = ndr->flags;
11608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11609 if (r->data_file) {
11610 uint32_t _relative_save_offset;
11611 _relative_save_offset = ndr->offset;
11612 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11613 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11614 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11615 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11617 if (ndr->offset > ndr->relative_highest_offset) {
11618 ndr->relative_highest_offset = ndr->offset;
11620 ndr->offset = _relative_save_offset;
11622 ndr->flags = _flags_save_string;
11625 uint32_t _flags_save_string = ndr->flags;
11626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11627 if (r->config_file) {
11628 uint32_t _relative_save_offset;
11629 _relative_save_offset = ndr->offset;
11630 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11631 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11632 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11633 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11635 if (ndr->offset > ndr->relative_highest_offset) {
11636 ndr->relative_highest_offset = ndr->offset;
11638 ndr->offset = _relative_save_offset;
11640 ndr->flags = _flags_save_string;
11643 uint32_t _flags_save_string = ndr->flags;
11644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11645 if (r->help_file) {
11646 uint32_t _relative_save_offset;
11647 _relative_save_offset = ndr->offset;
11648 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11649 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11650 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11651 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11653 if (ndr->offset > ndr->relative_highest_offset) {
11654 ndr->relative_highest_offset = ndr->offset;
11656 ndr->offset = _relative_save_offset;
11658 ndr->flags = _flags_save_string;
11661 uint32_t _flags_save_string_array = ndr->flags;
11662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11663 if (r->dependent_files) {
11664 uint32_t _relative_save_offset;
11665 _relative_save_offset = ndr->offset;
11666 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11667 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11668 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11669 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11671 if (ndr->offset > ndr->relative_highest_offset) {
11672 ndr->relative_highest_offset = ndr->offset;
11674 ndr->offset = _relative_save_offset;
11676 ndr->flags = _flags_save_string_array;
11679 uint32_t _flags_save_string = ndr->flags;
11680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11681 if (r->monitor_name) {
11682 uint32_t _relative_save_offset;
11683 _relative_save_offset = ndr->offset;
11684 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11685 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11686 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11687 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11689 if (ndr->offset > ndr->relative_highest_offset) {
11690 ndr->relative_highest_offset = ndr->offset;
11692 ndr->offset = _relative_save_offset;
11694 ndr->flags = _flags_save_string;
11697 uint32_t _flags_save_string = ndr->flags;
11698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11699 if (r->default_datatype) {
11700 uint32_t _relative_save_offset;
11701 _relative_save_offset = ndr->offset;
11702 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11703 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11704 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11705 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11707 if (ndr->offset > ndr->relative_highest_offset) {
11708 ndr->relative_highest_offset = ndr->offset;
11710 ndr->offset = _relative_save_offset;
11712 ndr->flags = _flags_save_string;
11715 return NDR_ERR_SUCCESS;
11718 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11720 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11721 ndr->depth++;
11722 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11723 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11724 ndr->depth++;
11725 if (r->driver_name) {
11726 ndr_print_string(ndr, "driver_name", r->driver_name);
11728 ndr->depth--;
11729 ndr_print_ptr(ndr, "architecture", r->architecture);
11730 ndr->depth++;
11731 if (r->architecture) {
11732 ndr_print_string(ndr, "architecture", r->architecture);
11734 ndr->depth--;
11735 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11736 ndr->depth++;
11737 if (r->driver_path) {
11738 ndr_print_string(ndr, "driver_path", r->driver_path);
11740 ndr->depth--;
11741 ndr_print_ptr(ndr, "data_file", r->data_file);
11742 ndr->depth++;
11743 if (r->data_file) {
11744 ndr_print_string(ndr, "data_file", r->data_file);
11746 ndr->depth--;
11747 ndr_print_ptr(ndr, "config_file", r->config_file);
11748 ndr->depth++;
11749 if (r->config_file) {
11750 ndr_print_string(ndr, "config_file", r->config_file);
11752 ndr->depth--;
11753 ndr_print_ptr(ndr, "help_file", r->help_file);
11754 ndr->depth++;
11755 if (r->help_file) {
11756 ndr_print_string(ndr, "help_file", r->help_file);
11758 ndr->depth--;
11759 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11760 ndr->depth++;
11761 if (r->dependent_files) {
11762 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11764 ndr->depth--;
11765 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11766 ndr->depth++;
11767 if (r->monitor_name) {
11768 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11770 ndr->depth--;
11771 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11772 ndr->depth++;
11773 if (r->default_datatype) {
11774 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11776 ndr->depth--;
11777 ndr->depth--;
11780 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11782 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11785 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11787 if (ndr_flags & NDR_SCALARS) {
11788 NDR_CHECK(ndr_push_align(ndr, 5));
11789 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11791 uint32_t _flags_save_string = ndr->flags;
11792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11793 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11794 ndr->flags = _flags_save_string;
11797 uint32_t _flags_save_string = ndr->flags;
11798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11799 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11800 ndr->flags = _flags_save_string;
11803 uint32_t _flags_save_string = ndr->flags;
11804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11805 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11806 ndr->flags = _flags_save_string;
11809 uint32_t _flags_save_string = ndr->flags;
11810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11811 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11812 ndr->flags = _flags_save_string;
11815 uint32_t _flags_save_string = ndr->flags;
11816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11817 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11818 ndr->flags = _flags_save_string;
11821 uint32_t _flags_save_string = ndr->flags;
11822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11823 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11824 ndr->flags = _flags_save_string;
11827 uint32_t _flags_save_string_array = ndr->flags;
11828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11830 ndr->flags = _flags_save_string_array;
11833 uint32_t _flags_save_string = ndr->flags;
11834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11836 ndr->flags = _flags_save_string;
11839 uint32_t _flags_save_string = ndr->flags;
11840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11841 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11842 ndr->flags = _flags_save_string;
11845 uint32_t _flags_save_string_array = ndr->flags;
11846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11847 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11848 ndr->flags = _flags_save_string_array;
11850 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11852 if (ndr_flags & NDR_BUFFERS) {
11854 uint32_t _flags_save_string = ndr->flags;
11855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11856 if (r->driver_name) {
11857 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11858 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11859 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11861 ndr->flags = _flags_save_string;
11864 uint32_t _flags_save_string = ndr->flags;
11865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11866 if (r->architecture) {
11867 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11868 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11869 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11871 ndr->flags = _flags_save_string;
11874 uint32_t _flags_save_string = ndr->flags;
11875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11876 if (r->driver_path) {
11877 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11878 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11879 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11881 ndr->flags = _flags_save_string;
11884 uint32_t _flags_save_string = ndr->flags;
11885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11886 if (r->data_file) {
11887 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11888 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11889 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11891 ndr->flags = _flags_save_string;
11894 uint32_t _flags_save_string = ndr->flags;
11895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11896 if (r->config_file) {
11897 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11898 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11899 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11901 ndr->flags = _flags_save_string;
11904 uint32_t _flags_save_string = ndr->flags;
11905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11906 if (r->help_file) {
11907 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11908 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11909 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11911 ndr->flags = _flags_save_string;
11914 uint32_t _flags_save_string_array = ndr->flags;
11915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11916 if (r->dependent_files) {
11917 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11918 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11919 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11921 ndr->flags = _flags_save_string_array;
11924 uint32_t _flags_save_string = ndr->flags;
11925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11926 if (r->monitor_name) {
11927 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11929 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11931 ndr->flags = _flags_save_string;
11934 uint32_t _flags_save_string = ndr->flags;
11935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11936 if (r->default_datatype) {
11937 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11938 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11939 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11941 ndr->flags = _flags_save_string;
11944 uint32_t _flags_save_string_array = ndr->flags;
11945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11946 if (r->previous_names) {
11947 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
11948 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11949 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
11951 ndr->flags = _flags_save_string_array;
11954 return NDR_ERR_SUCCESS;
11957 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11959 uint32_t _ptr_driver_name;
11960 TALLOC_CTX *_mem_save_driver_name_0;
11961 uint32_t _ptr_architecture;
11962 TALLOC_CTX *_mem_save_architecture_0;
11963 uint32_t _ptr_driver_path;
11964 TALLOC_CTX *_mem_save_driver_path_0;
11965 uint32_t _ptr_data_file;
11966 TALLOC_CTX *_mem_save_data_file_0;
11967 uint32_t _ptr_config_file;
11968 TALLOC_CTX *_mem_save_config_file_0;
11969 uint32_t _ptr_help_file;
11970 TALLOC_CTX *_mem_save_help_file_0;
11971 uint32_t _ptr_dependent_files;
11972 TALLOC_CTX *_mem_save_dependent_files_0;
11973 uint32_t _ptr_monitor_name;
11974 TALLOC_CTX *_mem_save_monitor_name_0;
11975 uint32_t _ptr_default_datatype;
11976 TALLOC_CTX *_mem_save_default_datatype_0;
11977 uint32_t _ptr_previous_names;
11978 TALLOC_CTX *_mem_save_previous_names_0;
11979 if (ndr_flags & NDR_SCALARS) {
11980 NDR_CHECK(ndr_pull_align(ndr, 5));
11981 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11983 uint32_t _flags_save_string = ndr->flags;
11984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11986 if (_ptr_driver_name) {
11987 NDR_PULL_ALLOC(ndr, r->driver_name);
11988 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11989 } else {
11990 r->driver_name = NULL;
11992 ndr->flags = _flags_save_string;
11995 uint32_t _flags_save_string = ndr->flags;
11996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11997 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11998 if (_ptr_architecture) {
11999 NDR_PULL_ALLOC(ndr, r->architecture);
12000 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12001 } else {
12002 r->architecture = NULL;
12004 ndr->flags = _flags_save_string;
12007 uint32_t _flags_save_string = ndr->flags;
12008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12009 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12010 if (_ptr_driver_path) {
12011 NDR_PULL_ALLOC(ndr, r->driver_path);
12012 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12013 } else {
12014 r->driver_path = NULL;
12016 ndr->flags = _flags_save_string;
12019 uint32_t _flags_save_string = ndr->flags;
12020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12022 if (_ptr_data_file) {
12023 NDR_PULL_ALLOC(ndr, r->data_file);
12024 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12025 } else {
12026 r->data_file = NULL;
12028 ndr->flags = _flags_save_string;
12031 uint32_t _flags_save_string = ndr->flags;
12032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12034 if (_ptr_config_file) {
12035 NDR_PULL_ALLOC(ndr, r->config_file);
12036 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12037 } else {
12038 r->config_file = NULL;
12040 ndr->flags = _flags_save_string;
12043 uint32_t _flags_save_string = ndr->flags;
12044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12046 if (_ptr_help_file) {
12047 NDR_PULL_ALLOC(ndr, r->help_file);
12048 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12049 } else {
12050 r->help_file = NULL;
12052 ndr->flags = _flags_save_string;
12055 uint32_t _flags_save_string_array = ndr->flags;
12056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12058 if (_ptr_dependent_files) {
12059 NDR_PULL_ALLOC(ndr, r->dependent_files);
12060 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12061 } else {
12062 r->dependent_files = NULL;
12064 ndr->flags = _flags_save_string_array;
12067 uint32_t _flags_save_string = ndr->flags;
12068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12070 if (_ptr_monitor_name) {
12071 NDR_PULL_ALLOC(ndr, r->monitor_name);
12072 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12073 } else {
12074 r->monitor_name = NULL;
12076 ndr->flags = _flags_save_string;
12079 uint32_t _flags_save_string = ndr->flags;
12080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12082 if (_ptr_default_datatype) {
12083 NDR_PULL_ALLOC(ndr, r->default_datatype);
12084 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12085 } else {
12086 r->default_datatype = NULL;
12088 ndr->flags = _flags_save_string;
12091 uint32_t _flags_save_string_array = ndr->flags;
12092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12094 if (_ptr_previous_names) {
12095 NDR_PULL_ALLOC(ndr, r->previous_names);
12096 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12097 } else {
12098 r->previous_names = NULL;
12100 ndr->flags = _flags_save_string_array;
12102 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12104 if (ndr_flags & NDR_BUFFERS) {
12106 uint32_t _flags_save_string = ndr->flags;
12107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12108 if (r->driver_name) {
12109 uint32_t _relative_save_offset;
12110 _relative_save_offset = ndr->offset;
12111 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12112 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12113 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12114 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12116 if (ndr->offset > ndr->relative_highest_offset) {
12117 ndr->relative_highest_offset = ndr->offset;
12119 ndr->offset = _relative_save_offset;
12121 ndr->flags = _flags_save_string;
12124 uint32_t _flags_save_string = ndr->flags;
12125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12126 if (r->architecture) {
12127 uint32_t _relative_save_offset;
12128 _relative_save_offset = ndr->offset;
12129 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12130 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12131 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12132 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12134 if (ndr->offset > ndr->relative_highest_offset) {
12135 ndr->relative_highest_offset = ndr->offset;
12137 ndr->offset = _relative_save_offset;
12139 ndr->flags = _flags_save_string;
12142 uint32_t _flags_save_string = ndr->flags;
12143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12144 if (r->driver_path) {
12145 uint32_t _relative_save_offset;
12146 _relative_save_offset = ndr->offset;
12147 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12148 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12149 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12150 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12152 if (ndr->offset > ndr->relative_highest_offset) {
12153 ndr->relative_highest_offset = ndr->offset;
12155 ndr->offset = _relative_save_offset;
12157 ndr->flags = _flags_save_string;
12160 uint32_t _flags_save_string = ndr->flags;
12161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12162 if (r->data_file) {
12163 uint32_t _relative_save_offset;
12164 _relative_save_offset = ndr->offset;
12165 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12166 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12167 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12168 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12170 if (ndr->offset > ndr->relative_highest_offset) {
12171 ndr->relative_highest_offset = ndr->offset;
12173 ndr->offset = _relative_save_offset;
12175 ndr->flags = _flags_save_string;
12178 uint32_t _flags_save_string = ndr->flags;
12179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12180 if (r->config_file) {
12181 uint32_t _relative_save_offset;
12182 _relative_save_offset = ndr->offset;
12183 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12184 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12185 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12186 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12188 if (ndr->offset > ndr->relative_highest_offset) {
12189 ndr->relative_highest_offset = ndr->offset;
12191 ndr->offset = _relative_save_offset;
12193 ndr->flags = _flags_save_string;
12196 uint32_t _flags_save_string = ndr->flags;
12197 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12198 if (r->help_file) {
12199 uint32_t _relative_save_offset;
12200 _relative_save_offset = ndr->offset;
12201 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12202 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12203 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12204 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12206 if (ndr->offset > ndr->relative_highest_offset) {
12207 ndr->relative_highest_offset = ndr->offset;
12209 ndr->offset = _relative_save_offset;
12211 ndr->flags = _flags_save_string;
12214 uint32_t _flags_save_string_array = ndr->flags;
12215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12216 if (r->dependent_files) {
12217 uint32_t _relative_save_offset;
12218 _relative_save_offset = ndr->offset;
12219 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12220 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12221 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12222 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12224 if (ndr->offset > ndr->relative_highest_offset) {
12225 ndr->relative_highest_offset = ndr->offset;
12227 ndr->offset = _relative_save_offset;
12229 ndr->flags = _flags_save_string_array;
12232 uint32_t _flags_save_string = ndr->flags;
12233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12234 if (r->monitor_name) {
12235 uint32_t _relative_save_offset;
12236 _relative_save_offset = ndr->offset;
12237 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12238 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12239 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12240 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12242 if (ndr->offset > ndr->relative_highest_offset) {
12243 ndr->relative_highest_offset = ndr->offset;
12245 ndr->offset = _relative_save_offset;
12247 ndr->flags = _flags_save_string;
12250 uint32_t _flags_save_string = ndr->flags;
12251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12252 if (r->default_datatype) {
12253 uint32_t _relative_save_offset;
12254 _relative_save_offset = ndr->offset;
12255 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12256 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12257 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12258 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12260 if (ndr->offset > ndr->relative_highest_offset) {
12261 ndr->relative_highest_offset = ndr->offset;
12263 ndr->offset = _relative_save_offset;
12265 ndr->flags = _flags_save_string;
12268 uint32_t _flags_save_string_array = ndr->flags;
12269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12270 if (r->previous_names) {
12271 uint32_t _relative_save_offset;
12272 _relative_save_offset = ndr->offset;
12273 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12274 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12275 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12276 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12278 if (ndr->offset > ndr->relative_highest_offset) {
12279 ndr->relative_highest_offset = ndr->offset;
12281 ndr->offset = _relative_save_offset;
12283 ndr->flags = _flags_save_string_array;
12286 return NDR_ERR_SUCCESS;
12289 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
12291 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
12292 ndr->depth++;
12293 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12294 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12295 ndr->depth++;
12296 if (r->driver_name) {
12297 ndr_print_string(ndr, "driver_name", r->driver_name);
12299 ndr->depth--;
12300 ndr_print_ptr(ndr, "architecture", r->architecture);
12301 ndr->depth++;
12302 if (r->architecture) {
12303 ndr_print_string(ndr, "architecture", r->architecture);
12305 ndr->depth--;
12306 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12307 ndr->depth++;
12308 if (r->driver_path) {
12309 ndr_print_string(ndr, "driver_path", r->driver_path);
12311 ndr->depth--;
12312 ndr_print_ptr(ndr, "data_file", r->data_file);
12313 ndr->depth++;
12314 if (r->data_file) {
12315 ndr_print_string(ndr, "data_file", r->data_file);
12317 ndr->depth--;
12318 ndr_print_ptr(ndr, "config_file", r->config_file);
12319 ndr->depth++;
12320 if (r->config_file) {
12321 ndr_print_string(ndr, "config_file", r->config_file);
12323 ndr->depth--;
12324 ndr_print_ptr(ndr, "help_file", r->help_file);
12325 ndr->depth++;
12326 if (r->help_file) {
12327 ndr_print_string(ndr, "help_file", r->help_file);
12329 ndr->depth--;
12330 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12331 ndr->depth++;
12332 if (r->dependent_files) {
12333 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12335 ndr->depth--;
12336 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12337 ndr->depth++;
12338 if (r->monitor_name) {
12339 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12341 ndr->depth--;
12342 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12343 ndr->depth++;
12344 if (r->default_datatype) {
12345 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12347 ndr->depth--;
12348 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12349 ndr->depth++;
12350 if (r->previous_names) {
12351 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12353 ndr->depth--;
12354 ndr->depth--;
12357 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12359 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12362 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12364 if (ndr_flags & NDR_SCALARS) {
12365 NDR_CHECK(ndr_push_align(ndr, 5));
12366 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12368 uint32_t _flags_save_string = ndr->flags;
12369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12370 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12371 ndr->flags = _flags_save_string;
12374 uint32_t _flags_save_string = ndr->flags;
12375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12377 ndr->flags = _flags_save_string;
12380 uint32_t _flags_save_string = ndr->flags;
12381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12383 ndr->flags = _flags_save_string;
12386 uint32_t _flags_save_string = ndr->flags;
12387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12388 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12389 ndr->flags = _flags_save_string;
12392 uint32_t _flags_save_string = ndr->flags;
12393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12394 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12395 ndr->flags = _flags_save_string;
12397 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12400 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12402 if (ndr_flags & NDR_BUFFERS) {
12404 uint32_t _flags_save_string = ndr->flags;
12405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12406 if (r->driver_name) {
12407 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12408 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12409 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12411 ndr->flags = _flags_save_string;
12414 uint32_t _flags_save_string = ndr->flags;
12415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12416 if (r->architecture) {
12417 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12418 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12419 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12421 ndr->flags = _flags_save_string;
12424 uint32_t _flags_save_string = ndr->flags;
12425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12426 if (r->driver_path) {
12427 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12428 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12429 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 if (r->data_file) {
12437 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12438 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12439 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12441 ndr->flags = _flags_save_string;
12444 uint32_t _flags_save_string = ndr->flags;
12445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12446 if (r->config_file) {
12447 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12448 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12449 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12451 ndr->flags = _flags_save_string;
12454 return NDR_ERR_SUCCESS;
12457 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12459 uint32_t _ptr_driver_name;
12460 TALLOC_CTX *_mem_save_driver_name_0;
12461 uint32_t _ptr_architecture;
12462 TALLOC_CTX *_mem_save_architecture_0;
12463 uint32_t _ptr_driver_path;
12464 TALLOC_CTX *_mem_save_driver_path_0;
12465 uint32_t _ptr_data_file;
12466 TALLOC_CTX *_mem_save_data_file_0;
12467 uint32_t _ptr_config_file;
12468 TALLOC_CTX *_mem_save_config_file_0;
12469 if (ndr_flags & NDR_SCALARS) {
12470 NDR_CHECK(ndr_pull_align(ndr, 5));
12471 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12473 uint32_t _flags_save_string = ndr->flags;
12474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12476 if (_ptr_driver_name) {
12477 NDR_PULL_ALLOC(ndr, r->driver_name);
12478 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12479 } else {
12480 r->driver_name = NULL;
12482 ndr->flags = _flags_save_string;
12485 uint32_t _flags_save_string = ndr->flags;
12486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12488 if (_ptr_architecture) {
12489 NDR_PULL_ALLOC(ndr, r->architecture);
12490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12491 } else {
12492 r->architecture = NULL;
12494 ndr->flags = _flags_save_string;
12497 uint32_t _flags_save_string = ndr->flags;
12498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12500 if (_ptr_driver_path) {
12501 NDR_PULL_ALLOC(ndr, r->driver_path);
12502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12503 } else {
12504 r->driver_path = NULL;
12506 ndr->flags = _flags_save_string;
12509 uint32_t _flags_save_string = ndr->flags;
12510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12512 if (_ptr_data_file) {
12513 NDR_PULL_ALLOC(ndr, r->data_file);
12514 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12515 } else {
12516 r->data_file = NULL;
12518 ndr->flags = _flags_save_string;
12521 uint32_t _flags_save_string = ndr->flags;
12522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12524 if (_ptr_config_file) {
12525 NDR_PULL_ALLOC(ndr, r->config_file);
12526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12527 } else {
12528 r->config_file = NULL;
12530 ndr->flags = _flags_save_string;
12532 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12535 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12537 if (ndr_flags & NDR_BUFFERS) {
12539 uint32_t _flags_save_string = ndr->flags;
12540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12541 if (r->driver_name) {
12542 uint32_t _relative_save_offset;
12543 _relative_save_offset = ndr->offset;
12544 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12545 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12546 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12547 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12549 if (ndr->offset > ndr->relative_highest_offset) {
12550 ndr->relative_highest_offset = ndr->offset;
12552 ndr->offset = _relative_save_offset;
12554 ndr->flags = _flags_save_string;
12557 uint32_t _flags_save_string = ndr->flags;
12558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12559 if (r->architecture) {
12560 uint32_t _relative_save_offset;
12561 _relative_save_offset = ndr->offset;
12562 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12563 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12564 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12565 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12567 if (ndr->offset > ndr->relative_highest_offset) {
12568 ndr->relative_highest_offset = ndr->offset;
12570 ndr->offset = _relative_save_offset;
12572 ndr->flags = _flags_save_string;
12575 uint32_t _flags_save_string = ndr->flags;
12576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12577 if (r->driver_path) {
12578 uint32_t _relative_save_offset;
12579 _relative_save_offset = ndr->offset;
12580 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12581 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12582 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12583 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12585 if (ndr->offset > ndr->relative_highest_offset) {
12586 ndr->relative_highest_offset = ndr->offset;
12588 ndr->offset = _relative_save_offset;
12590 ndr->flags = _flags_save_string;
12593 uint32_t _flags_save_string = ndr->flags;
12594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12595 if (r->data_file) {
12596 uint32_t _relative_save_offset;
12597 _relative_save_offset = ndr->offset;
12598 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12599 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12600 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12601 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12603 if (ndr->offset > ndr->relative_highest_offset) {
12604 ndr->relative_highest_offset = ndr->offset;
12606 ndr->offset = _relative_save_offset;
12608 ndr->flags = _flags_save_string;
12611 uint32_t _flags_save_string = ndr->flags;
12612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12613 if (r->config_file) {
12614 uint32_t _relative_save_offset;
12615 _relative_save_offset = ndr->offset;
12616 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12617 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12618 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12619 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12621 if (ndr->offset > ndr->relative_highest_offset) {
12622 ndr->relative_highest_offset = ndr->offset;
12624 ndr->offset = _relative_save_offset;
12626 ndr->flags = _flags_save_string;
12629 return NDR_ERR_SUCCESS;
12632 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12634 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12635 ndr->depth++;
12636 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12637 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12638 ndr->depth++;
12639 if (r->driver_name) {
12640 ndr_print_string(ndr, "driver_name", r->driver_name);
12642 ndr->depth--;
12643 ndr_print_ptr(ndr, "architecture", r->architecture);
12644 ndr->depth++;
12645 if (r->architecture) {
12646 ndr_print_string(ndr, "architecture", r->architecture);
12648 ndr->depth--;
12649 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12650 ndr->depth++;
12651 if (r->driver_path) {
12652 ndr_print_string(ndr, "driver_path", r->driver_path);
12654 ndr->depth--;
12655 ndr_print_ptr(ndr, "data_file", r->data_file);
12656 ndr->depth++;
12657 if (r->data_file) {
12658 ndr_print_string(ndr, "data_file", r->data_file);
12660 ndr->depth--;
12661 ndr_print_ptr(ndr, "config_file", r->config_file);
12662 ndr->depth++;
12663 if (r->config_file) {
12664 ndr_print_string(ndr, "config_file", r->config_file);
12666 ndr->depth--;
12667 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12668 ndr_print_uint32(ndr, "config_version", r->config_version);
12669 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12670 ndr->depth--;
12673 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12675 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12678 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12680 if (ndr_flags & NDR_SCALARS) {
12681 NDR_CHECK(ndr_push_align(ndr, 8));
12682 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12684 uint32_t _flags_save_string = ndr->flags;
12685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12686 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12687 ndr->flags = _flags_save_string;
12690 uint32_t _flags_save_string = ndr->flags;
12691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12692 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12693 ndr->flags = _flags_save_string;
12696 uint32_t _flags_save_string = ndr->flags;
12697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12698 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12699 ndr->flags = _flags_save_string;
12702 uint32_t _flags_save_string = ndr->flags;
12703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12704 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12705 ndr->flags = _flags_save_string;
12708 uint32_t _flags_save_string = ndr->flags;
12709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12710 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12711 ndr->flags = _flags_save_string;
12714 uint32_t _flags_save_string = ndr->flags;
12715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12716 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12717 ndr->flags = _flags_save_string;
12720 uint32_t _flags_save_string_array = ndr->flags;
12721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12722 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12723 ndr->flags = _flags_save_string_array;
12726 uint32_t _flags_save_string = ndr->flags;
12727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12728 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12729 ndr->flags = _flags_save_string;
12732 uint32_t _flags_save_string = ndr->flags;
12733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12735 ndr->flags = _flags_save_string;
12738 uint32_t _flags_save_string_array = ndr->flags;
12739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12740 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12741 ndr->flags = _flags_save_string_array;
12743 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12744 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12746 uint32_t _flags_save_string = ndr->flags;
12747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12748 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12749 ndr->flags = _flags_save_string;
12752 uint32_t _flags_save_string = ndr->flags;
12753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12754 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12755 ndr->flags = _flags_save_string;
12758 uint32_t _flags_save_string = ndr->flags;
12759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12760 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12761 ndr->flags = _flags_save_string;
12764 uint32_t _flags_save_string = ndr->flags;
12765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12766 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12767 ndr->flags = _flags_save_string;
12769 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12771 if (ndr_flags & NDR_BUFFERS) {
12773 uint32_t _flags_save_string = ndr->flags;
12774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12775 if (r->driver_name) {
12776 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12777 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12778 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12780 ndr->flags = _flags_save_string;
12783 uint32_t _flags_save_string = ndr->flags;
12784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12785 if (r->architecture) {
12786 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12787 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12788 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12790 ndr->flags = _flags_save_string;
12793 uint32_t _flags_save_string = ndr->flags;
12794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12795 if (r->driver_path) {
12796 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12797 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12798 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12800 ndr->flags = _flags_save_string;
12803 uint32_t _flags_save_string = ndr->flags;
12804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12805 if (r->data_file) {
12806 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12807 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12808 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12810 ndr->flags = _flags_save_string;
12813 uint32_t _flags_save_string = ndr->flags;
12814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12815 if (r->config_file) {
12816 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12817 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12818 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12820 ndr->flags = _flags_save_string;
12823 uint32_t _flags_save_string = ndr->flags;
12824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12825 if (r->help_file) {
12826 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12827 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12828 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12830 ndr->flags = _flags_save_string;
12833 uint32_t _flags_save_string_array = ndr->flags;
12834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12835 if (r->dependent_files) {
12836 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12837 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12838 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12840 ndr->flags = _flags_save_string_array;
12843 uint32_t _flags_save_string = ndr->flags;
12844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12845 if (r->monitor_name) {
12846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12847 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 if (r->default_datatype) {
12856 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12858 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12860 ndr->flags = _flags_save_string;
12863 uint32_t _flags_save_string_array = ndr->flags;
12864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12865 if (r->previous_names) {
12866 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12867 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12868 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12870 ndr->flags = _flags_save_string_array;
12873 uint32_t _flags_save_string = ndr->flags;
12874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12875 if (r->manufacturer_name) {
12876 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12877 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12878 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12880 ndr->flags = _flags_save_string;
12883 uint32_t _flags_save_string = ndr->flags;
12884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12885 if (r->manufacturer_url) {
12886 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12887 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12888 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12890 ndr->flags = _flags_save_string;
12893 uint32_t _flags_save_string = ndr->flags;
12894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12895 if (r->hardware_id) {
12896 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12897 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12898 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12900 ndr->flags = _flags_save_string;
12903 uint32_t _flags_save_string = ndr->flags;
12904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12905 if (r->provider) {
12906 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12907 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12908 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12910 ndr->flags = _flags_save_string;
12913 return NDR_ERR_SUCCESS;
12916 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12918 uint32_t _ptr_driver_name;
12919 TALLOC_CTX *_mem_save_driver_name_0;
12920 uint32_t _ptr_architecture;
12921 TALLOC_CTX *_mem_save_architecture_0;
12922 uint32_t _ptr_driver_path;
12923 TALLOC_CTX *_mem_save_driver_path_0;
12924 uint32_t _ptr_data_file;
12925 TALLOC_CTX *_mem_save_data_file_0;
12926 uint32_t _ptr_config_file;
12927 TALLOC_CTX *_mem_save_config_file_0;
12928 uint32_t _ptr_help_file;
12929 TALLOC_CTX *_mem_save_help_file_0;
12930 uint32_t _ptr_dependent_files;
12931 TALLOC_CTX *_mem_save_dependent_files_0;
12932 uint32_t _ptr_monitor_name;
12933 TALLOC_CTX *_mem_save_monitor_name_0;
12934 uint32_t _ptr_default_datatype;
12935 TALLOC_CTX *_mem_save_default_datatype_0;
12936 uint32_t _ptr_previous_names;
12937 TALLOC_CTX *_mem_save_previous_names_0;
12938 uint32_t _ptr_manufacturer_name;
12939 TALLOC_CTX *_mem_save_manufacturer_name_0;
12940 uint32_t _ptr_manufacturer_url;
12941 TALLOC_CTX *_mem_save_manufacturer_url_0;
12942 uint32_t _ptr_hardware_id;
12943 TALLOC_CTX *_mem_save_hardware_id_0;
12944 uint32_t _ptr_provider;
12945 TALLOC_CTX *_mem_save_provider_0;
12946 if (ndr_flags & NDR_SCALARS) {
12947 NDR_CHECK(ndr_pull_align(ndr, 8));
12948 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12950 uint32_t _flags_save_string = ndr->flags;
12951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12953 if (_ptr_driver_name) {
12954 NDR_PULL_ALLOC(ndr, r->driver_name);
12955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12956 } else {
12957 r->driver_name = NULL;
12959 ndr->flags = _flags_save_string;
12962 uint32_t _flags_save_string = ndr->flags;
12963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12965 if (_ptr_architecture) {
12966 NDR_PULL_ALLOC(ndr, r->architecture);
12967 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12968 } else {
12969 r->architecture = NULL;
12971 ndr->flags = _flags_save_string;
12974 uint32_t _flags_save_string = ndr->flags;
12975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12977 if (_ptr_driver_path) {
12978 NDR_PULL_ALLOC(ndr, r->driver_path);
12979 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12980 } else {
12981 r->driver_path = NULL;
12983 ndr->flags = _flags_save_string;
12986 uint32_t _flags_save_string = ndr->flags;
12987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12989 if (_ptr_data_file) {
12990 NDR_PULL_ALLOC(ndr, r->data_file);
12991 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12992 } else {
12993 r->data_file = NULL;
12995 ndr->flags = _flags_save_string;
12998 uint32_t _flags_save_string = ndr->flags;
12999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13001 if (_ptr_config_file) {
13002 NDR_PULL_ALLOC(ndr, r->config_file);
13003 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13004 } else {
13005 r->config_file = NULL;
13007 ndr->flags = _flags_save_string;
13010 uint32_t _flags_save_string = ndr->flags;
13011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13013 if (_ptr_help_file) {
13014 NDR_PULL_ALLOC(ndr, r->help_file);
13015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13016 } else {
13017 r->help_file = NULL;
13019 ndr->flags = _flags_save_string;
13022 uint32_t _flags_save_string_array = ndr->flags;
13023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13025 if (_ptr_dependent_files) {
13026 NDR_PULL_ALLOC(ndr, r->dependent_files);
13027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13028 } else {
13029 r->dependent_files = NULL;
13031 ndr->flags = _flags_save_string_array;
13034 uint32_t _flags_save_string = ndr->flags;
13035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13037 if (_ptr_monitor_name) {
13038 NDR_PULL_ALLOC(ndr, r->monitor_name);
13039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13040 } else {
13041 r->monitor_name = NULL;
13043 ndr->flags = _flags_save_string;
13046 uint32_t _flags_save_string = ndr->flags;
13047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13049 if (_ptr_default_datatype) {
13050 NDR_PULL_ALLOC(ndr, r->default_datatype);
13051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13052 } else {
13053 r->default_datatype = NULL;
13055 ndr->flags = _flags_save_string;
13058 uint32_t _flags_save_string_array = ndr->flags;
13059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13061 if (_ptr_previous_names) {
13062 NDR_PULL_ALLOC(ndr, r->previous_names);
13063 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13064 } else {
13065 r->previous_names = NULL;
13067 ndr->flags = _flags_save_string_array;
13069 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13070 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13072 uint32_t _flags_save_string = ndr->flags;
13073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13075 if (_ptr_manufacturer_name) {
13076 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13077 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13078 } else {
13079 r->manufacturer_name = NULL;
13081 ndr->flags = _flags_save_string;
13084 uint32_t _flags_save_string = ndr->flags;
13085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13087 if (_ptr_manufacturer_url) {
13088 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13089 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13090 } else {
13091 r->manufacturer_url = NULL;
13093 ndr->flags = _flags_save_string;
13096 uint32_t _flags_save_string = ndr->flags;
13097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13099 if (_ptr_hardware_id) {
13100 NDR_PULL_ALLOC(ndr, r->hardware_id);
13101 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13102 } else {
13103 r->hardware_id = NULL;
13105 ndr->flags = _flags_save_string;
13108 uint32_t _flags_save_string = ndr->flags;
13109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13111 if (_ptr_provider) {
13112 NDR_PULL_ALLOC(ndr, r->provider);
13113 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13114 } else {
13115 r->provider = NULL;
13117 ndr->flags = _flags_save_string;
13119 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13121 if (ndr_flags & NDR_BUFFERS) {
13123 uint32_t _flags_save_string = ndr->flags;
13124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13125 if (r->driver_name) {
13126 uint32_t _relative_save_offset;
13127 _relative_save_offset = ndr->offset;
13128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13129 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13130 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13133 if (ndr->offset > ndr->relative_highest_offset) {
13134 ndr->relative_highest_offset = ndr->offset;
13136 ndr->offset = _relative_save_offset;
13138 ndr->flags = _flags_save_string;
13141 uint32_t _flags_save_string = ndr->flags;
13142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13143 if (r->architecture) {
13144 uint32_t _relative_save_offset;
13145 _relative_save_offset = ndr->offset;
13146 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13147 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13148 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13149 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13151 if (ndr->offset > ndr->relative_highest_offset) {
13152 ndr->relative_highest_offset = ndr->offset;
13154 ndr->offset = _relative_save_offset;
13156 ndr->flags = _flags_save_string;
13159 uint32_t _flags_save_string = ndr->flags;
13160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13161 if (r->driver_path) {
13162 uint32_t _relative_save_offset;
13163 _relative_save_offset = ndr->offset;
13164 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13165 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13166 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13167 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13169 if (ndr->offset > ndr->relative_highest_offset) {
13170 ndr->relative_highest_offset = ndr->offset;
13172 ndr->offset = _relative_save_offset;
13174 ndr->flags = _flags_save_string;
13177 uint32_t _flags_save_string = ndr->flags;
13178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13179 if (r->data_file) {
13180 uint32_t _relative_save_offset;
13181 _relative_save_offset = ndr->offset;
13182 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13183 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13184 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13185 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13187 if (ndr->offset > ndr->relative_highest_offset) {
13188 ndr->relative_highest_offset = ndr->offset;
13190 ndr->offset = _relative_save_offset;
13192 ndr->flags = _flags_save_string;
13195 uint32_t _flags_save_string = ndr->flags;
13196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13197 if (r->config_file) {
13198 uint32_t _relative_save_offset;
13199 _relative_save_offset = ndr->offset;
13200 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13201 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13202 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13203 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13205 if (ndr->offset > ndr->relative_highest_offset) {
13206 ndr->relative_highest_offset = ndr->offset;
13208 ndr->offset = _relative_save_offset;
13210 ndr->flags = _flags_save_string;
13213 uint32_t _flags_save_string = ndr->flags;
13214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13215 if (r->help_file) {
13216 uint32_t _relative_save_offset;
13217 _relative_save_offset = ndr->offset;
13218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13219 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13220 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13221 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13223 if (ndr->offset > ndr->relative_highest_offset) {
13224 ndr->relative_highest_offset = ndr->offset;
13226 ndr->offset = _relative_save_offset;
13228 ndr->flags = _flags_save_string;
13231 uint32_t _flags_save_string_array = ndr->flags;
13232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13233 if (r->dependent_files) {
13234 uint32_t _relative_save_offset;
13235 _relative_save_offset = ndr->offset;
13236 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13237 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13238 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13239 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13241 if (ndr->offset > ndr->relative_highest_offset) {
13242 ndr->relative_highest_offset = ndr->offset;
13244 ndr->offset = _relative_save_offset;
13246 ndr->flags = _flags_save_string_array;
13249 uint32_t _flags_save_string = ndr->flags;
13250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13251 if (r->monitor_name) {
13252 uint32_t _relative_save_offset;
13253 _relative_save_offset = ndr->offset;
13254 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13255 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13256 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13257 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13259 if (ndr->offset > ndr->relative_highest_offset) {
13260 ndr->relative_highest_offset = ndr->offset;
13262 ndr->offset = _relative_save_offset;
13264 ndr->flags = _flags_save_string;
13267 uint32_t _flags_save_string = ndr->flags;
13268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13269 if (r->default_datatype) {
13270 uint32_t _relative_save_offset;
13271 _relative_save_offset = ndr->offset;
13272 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13273 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13274 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13275 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13277 if (ndr->offset > ndr->relative_highest_offset) {
13278 ndr->relative_highest_offset = ndr->offset;
13280 ndr->offset = _relative_save_offset;
13282 ndr->flags = _flags_save_string;
13285 uint32_t _flags_save_string_array = ndr->flags;
13286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13287 if (r->previous_names) {
13288 uint32_t _relative_save_offset;
13289 _relative_save_offset = ndr->offset;
13290 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13291 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13292 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13293 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13295 if (ndr->offset > ndr->relative_highest_offset) {
13296 ndr->relative_highest_offset = ndr->offset;
13298 ndr->offset = _relative_save_offset;
13300 ndr->flags = _flags_save_string_array;
13303 uint32_t _flags_save_string = ndr->flags;
13304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13305 if (r->manufacturer_name) {
13306 uint32_t _relative_save_offset;
13307 _relative_save_offset = ndr->offset;
13308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13309 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13310 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13313 if (ndr->offset > ndr->relative_highest_offset) {
13314 ndr->relative_highest_offset = ndr->offset;
13316 ndr->offset = _relative_save_offset;
13318 ndr->flags = _flags_save_string;
13321 uint32_t _flags_save_string = ndr->flags;
13322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13323 if (r->manufacturer_url) {
13324 uint32_t _relative_save_offset;
13325 _relative_save_offset = ndr->offset;
13326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13327 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13328 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13331 if (ndr->offset > ndr->relative_highest_offset) {
13332 ndr->relative_highest_offset = ndr->offset;
13334 ndr->offset = _relative_save_offset;
13336 ndr->flags = _flags_save_string;
13339 uint32_t _flags_save_string = ndr->flags;
13340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13341 if (r->hardware_id) {
13342 uint32_t _relative_save_offset;
13343 _relative_save_offset = ndr->offset;
13344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13345 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13346 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13349 if (ndr->offset > ndr->relative_highest_offset) {
13350 ndr->relative_highest_offset = ndr->offset;
13352 ndr->offset = _relative_save_offset;
13354 ndr->flags = _flags_save_string;
13357 uint32_t _flags_save_string = ndr->flags;
13358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13359 if (r->provider) {
13360 uint32_t _relative_save_offset;
13361 _relative_save_offset = ndr->offset;
13362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13363 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13364 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13367 if (ndr->offset > ndr->relative_highest_offset) {
13368 ndr->relative_highest_offset = ndr->offset;
13370 ndr->offset = _relative_save_offset;
13372 ndr->flags = _flags_save_string;
13375 return NDR_ERR_SUCCESS;
13378 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13380 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13381 ndr->depth++;
13382 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13383 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13384 ndr->depth++;
13385 if (r->driver_name) {
13386 ndr_print_string(ndr, "driver_name", r->driver_name);
13388 ndr->depth--;
13389 ndr_print_ptr(ndr, "architecture", r->architecture);
13390 ndr->depth++;
13391 if (r->architecture) {
13392 ndr_print_string(ndr, "architecture", r->architecture);
13394 ndr->depth--;
13395 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13396 ndr->depth++;
13397 if (r->driver_path) {
13398 ndr_print_string(ndr, "driver_path", r->driver_path);
13400 ndr->depth--;
13401 ndr_print_ptr(ndr, "data_file", r->data_file);
13402 ndr->depth++;
13403 if (r->data_file) {
13404 ndr_print_string(ndr, "data_file", r->data_file);
13406 ndr->depth--;
13407 ndr_print_ptr(ndr, "config_file", r->config_file);
13408 ndr->depth++;
13409 if (r->config_file) {
13410 ndr_print_string(ndr, "config_file", r->config_file);
13412 ndr->depth--;
13413 ndr_print_ptr(ndr, "help_file", r->help_file);
13414 ndr->depth++;
13415 if (r->help_file) {
13416 ndr_print_string(ndr, "help_file", r->help_file);
13418 ndr->depth--;
13419 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13420 ndr->depth++;
13421 if (r->dependent_files) {
13422 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13424 ndr->depth--;
13425 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13426 ndr->depth++;
13427 if (r->monitor_name) {
13428 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13430 ndr->depth--;
13431 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13432 ndr->depth++;
13433 if (r->default_datatype) {
13434 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13436 ndr->depth--;
13437 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13438 ndr->depth++;
13439 if (r->previous_names) {
13440 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13442 ndr->depth--;
13443 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13444 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13445 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13446 ndr->depth++;
13447 if (r->manufacturer_name) {
13448 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13450 ndr->depth--;
13451 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13452 ndr->depth++;
13453 if (r->manufacturer_url) {
13454 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13456 ndr->depth--;
13457 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13458 ndr->depth++;
13459 if (r->hardware_id) {
13460 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13462 ndr->depth--;
13463 ndr_print_ptr(ndr, "provider", r->provider);
13464 ndr->depth++;
13465 if (r->provider) {
13466 ndr_print_string(ndr, "provider", r->provider);
13468 ndr->depth--;
13469 ndr->depth--;
13472 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13474 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13477 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
13479 if (ndr_flags & NDR_SCALARS) {
13480 NDR_CHECK(ndr_push_align(ndr, 5));
13481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13482 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13484 uint32_t _flags_save_string = ndr->flags;
13485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13487 ndr->flags = _flags_save_string;
13490 uint32_t _flags_save_string = ndr->flags;
13491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
13493 ndr->flags = _flags_save_string;
13496 uint32_t _flags_save_string = ndr->flags;
13497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
13499 ndr->flags = _flags_save_string;
13501 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13503 if (ndr_flags & NDR_BUFFERS) {
13505 uint32_t _flags_save_string = ndr->flags;
13506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13507 if (r->driver_name) {
13508 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13509 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13510 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13512 ndr->flags = _flags_save_string;
13515 uint32_t _flags_save_string = ndr->flags;
13516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13517 if (r->inf_name) {
13518 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
13519 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
13520 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
13522 ndr->flags = _flags_save_string;
13525 uint32_t _flags_save_string = ndr->flags;
13526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13527 if (r->install_source_root) {
13528 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
13529 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
13530 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
13532 ndr->flags = _flags_save_string;
13535 return NDR_ERR_SUCCESS;
13538 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
13540 uint32_t _ptr_driver_name;
13541 TALLOC_CTX *_mem_save_driver_name_0;
13542 uint32_t _ptr_inf_name;
13543 TALLOC_CTX *_mem_save_inf_name_0;
13544 uint32_t _ptr_install_source_root;
13545 TALLOC_CTX *_mem_save_install_source_root_0;
13546 if (ndr_flags & NDR_SCALARS) {
13547 NDR_CHECK(ndr_pull_align(ndr, 5));
13548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13549 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13551 uint32_t _flags_save_string = ndr->flags;
13552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13554 if (_ptr_driver_name) {
13555 NDR_PULL_ALLOC(ndr, r->driver_name);
13556 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13557 } else {
13558 r->driver_name = NULL;
13560 ndr->flags = _flags_save_string;
13563 uint32_t _flags_save_string = ndr->flags;
13564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
13566 if (_ptr_inf_name) {
13567 NDR_PULL_ALLOC(ndr, r->inf_name);
13568 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
13569 } else {
13570 r->inf_name = NULL;
13572 ndr->flags = _flags_save_string;
13575 uint32_t _flags_save_string = ndr->flags;
13576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
13578 if (_ptr_install_source_root) {
13579 NDR_PULL_ALLOC(ndr, r->install_source_root);
13580 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
13581 } else {
13582 r->install_source_root = NULL;
13584 ndr->flags = _flags_save_string;
13586 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13588 if (ndr_flags & NDR_BUFFERS) {
13590 uint32_t _flags_save_string = ndr->flags;
13591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13592 if (r->driver_name) {
13593 uint32_t _relative_save_offset;
13594 _relative_save_offset = ndr->offset;
13595 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13596 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13597 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13598 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13600 if (ndr->offset > ndr->relative_highest_offset) {
13601 ndr->relative_highest_offset = ndr->offset;
13603 ndr->offset = _relative_save_offset;
13605 ndr->flags = _flags_save_string;
13608 uint32_t _flags_save_string = ndr->flags;
13609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13610 if (r->inf_name) {
13611 uint32_t _relative_save_offset;
13612 _relative_save_offset = ndr->offset;
13613 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
13614 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13615 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
13616 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
13617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
13618 if (ndr->offset > ndr->relative_highest_offset) {
13619 ndr->relative_highest_offset = ndr->offset;
13621 ndr->offset = _relative_save_offset;
13623 ndr->flags = _flags_save_string;
13626 uint32_t _flags_save_string = ndr->flags;
13627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13628 if (r->install_source_root) {
13629 uint32_t _relative_save_offset;
13630 _relative_save_offset = ndr->offset;
13631 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
13632 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
13633 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
13634 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
13635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
13636 if (ndr->offset > ndr->relative_highest_offset) {
13637 ndr->relative_highest_offset = ndr->offset;
13639 ndr->offset = _relative_save_offset;
13641 ndr->flags = _flags_save_string;
13644 return NDR_ERR_SUCCESS;
13647 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13649 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13650 ndr->depth++;
13651 ndr_print_uint32(ndr, "size", r->size);
13652 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13653 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13654 ndr->depth++;
13655 if (r->driver_name) {
13656 ndr_print_string(ndr, "driver_name", r->driver_name);
13658 ndr->depth--;
13659 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13660 ndr->depth++;
13661 if (r->inf_name) {
13662 ndr_print_string(ndr, "inf_name", r->inf_name);
13664 ndr->depth--;
13665 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13666 ndr->depth++;
13667 if (r->install_source_root) {
13668 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13670 ndr->depth--;
13671 ndr->depth--;
13674 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13676 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13679 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13681 if (ndr_flags & NDR_SCALARS) {
13682 NDR_CHECK(ndr_push_align(ndr, 8));
13683 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13685 uint32_t _flags_save_string = ndr->flags;
13686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13687 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13688 ndr->flags = _flags_save_string;
13691 uint32_t _flags_save_string = ndr->flags;
13692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13693 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13694 ndr->flags = _flags_save_string;
13697 uint32_t _flags_save_string = ndr->flags;
13698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13700 ndr->flags = _flags_save_string;
13703 uint32_t _flags_save_string = ndr->flags;
13704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13706 ndr->flags = _flags_save_string;
13709 uint32_t _flags_save_string = ndr->flags;
13710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13711 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13712 ndr->flags = _flags_save_string;
13715 uint32_t _flags_save_string = ndr->flags;
13716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13717 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13718 ndr->flags = _flags_save_string;
13721 uint32_t _flags_save_string_array = ndr->flags;
13722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13723 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13724 ndr->flags = _flags_save_string_array;
13727 uint32_t _flags_save_string = ndr->flags;
13728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13729 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13730 ndr->flags = _flags_save_string;
13733 uint32_t _flags_save_string = ndr->flags;
13734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13735 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13736 ndr->flags = _flags_save_string;
13739 uint32_t _flags_save_string_array = ndr->flags;
13740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13741 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13742 ndr->flags = _flags_save_string_array;
13744 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13745 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13747 uint32_t _flags_save_string = ndr->flags;
13748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13749 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13750 ndr->flags = _flags_save_string;
13753 uint32_t _flags_save_string = ndr->flags;
13754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13755 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13756 ndr->flags = _flags_save_string;
13759 uint32_t _flags_save_string = ndr->flags;
13760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13761 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13762 ndr->flags = _flags_save_string;
13765 uint32_t _flags_save_string = ndr->flags;
13766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13767 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13768 ndr->flags = _flags_save_string;
13771 uint32_t _flags_save_string = ndr->flags;
13772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13773 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13774 ndr->flags = _flags_save_string;
13777 uint32_t _flags_save_string = ndr->flags;
13778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13779 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13780 ndr->flags = _flags_save_string;
13783 uint32_t _flags_save_string_array = ndr->flags;
13784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13785 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13786 ndr->flags = _flags_save_string_array;
13789 uint32_t _flags_save_string = ndr->flags;
13790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13791 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13792 ndr->flags = _flags_save_string;
13794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13796 uint32_t _flags_save_string_array = ndr->flags;
13797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13798 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13799 ndr->flags = _flags_save_string_array;
13801 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13802 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13803 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13805 if (ndr_flags & NDR_BUFFERS) {
13807 uint32_t _flags_save_string = ndr->flags;
13808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13809 if (r->driver_name) {
13810 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13811 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13812 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13814 ndr->flags = _flags_save_string;
13817 uint32_t _flags_save_string = ndr->flags;
13818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13819 if (r->architecture) {
13820 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13821 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13822 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13824 ndr->flags = _flags_save_string;
13827 uint32_t _flags_save_string = ndr->flags;
13828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13829 if (r->driver_path) {
13830 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13831 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13832 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13834 ndr->flags = _flags_save_string;
13837 uint32_t _flags_save_string = ndr->flags;
13838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13839 if (r->data_file) {
13840 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13841 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13842 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13844 ndr->flags = _flags_save_string;
13847 uint32_t _flags_save_string = ndr->flags;
13848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13849 if (r->config_file) {
13850 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13851 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13852 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13854 ndr->flags = _flags_save_string;
13857 uint32_t _flags_save_string = ndr->flags;
13858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13859 if (r->help_file) {
13860 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13861 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13862 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13864 ndr->flags = _flags_save_string;
13867 uint32_t _flags_save_string_array = ndr->flags;
13868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13869 if (r->dependent_files) {
13870 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13871 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13872 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13874 ndr->flags = _flags_save_string_array;
13877 uint32_t _flags_save_string = ndr->flags;
13878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13879 if (r->monitor_name) {
13880 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13881 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13882 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13884 ndr->flags = _flags_save_string;
13887 uint32_t _flags_save_string = ndr->flags;
13888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13889 if (r->default_datatype) {
13890 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13891 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13892 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13894 ndr->flags = _flags_save_string;
13897 uint32_t _flags_save_string_array = ndr->flags;
13898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13899 if (r->previous_names) {
13900 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13901 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13904 ndr->flags = _flags_save_string_array;
13907 uint32_t _flags_save_string = ndr->flags;
13908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13909 if (r->manufacturer_name) {
13910 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
13911 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
13914 ndr->flags = _flags_save_string;
13917 uint32_t _flags_save_string = ndr->flags;
13918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13919 if (r->manufacturer_url) {
13920 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13921 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13922 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
13924 ndr->flags = _flags_save_string;
13927 uint32_t _flags_save_string = ndr->flags;
13928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13929 if (r->hardware_id) {
13930 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
13931 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13932 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
13934 ndr->flags = _flags_save_string;
13937 uint32_t _flags_save_string = ndr->flags;
13938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13939 if (r->provider) {
13940 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
13941 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13942 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
13944 ndr->flags = _flags_save_string;
13947 uint32_t _flags_save_string = ndr->flags;
13948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13949 if (r->print_processor) {
13950 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
13951 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13952 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
13954 ndr->flags = _flags_save_string;
13957 uint32_t _flags_save_string = ndr->flags;
13958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13959 if (r->vendor_setup) {
13960 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
13961 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13962 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
13964 ndr->flags = _flags_save_string;
13967 uint32_t _flags_save_string_array = ndr->flags;
13968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13969 if (r->color_profiles) {
13970 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
13971 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13972 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
13974 ndr->flags = _flags_save_string_array;
13977 uint32_t _flags_save_string = ndr->flags;
13978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13979 if (r->inf_path) {
13980 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
13981 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13982 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
13984 ndr->flags = _flags_save_string;
13987 uint32_t _flags_save_string_array = ndr->flags;
13988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13989 if (r->core_driver_dependencies) {
13990 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
13991 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
13994 ndr->flags = _flags_save_string_array;
13997 return NDR_ERR_SUCCESS;
14000 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
14002 uint32_t _ptr_driver_name;
14003 TALLOC_CTX *_mem_save_driver_name_0;
14004 uint32_t _ptr_architecture;
14005 TALLOC_CTX *_mem_save_architecture_0;
14006 uint32_t _ptr_driver_path;
14007 TALLOC_CTX *_mem_save_driver_path_0;
14008 uint32_t _ptr_data_file;
14009 TALLOC_CTX *_mem_save_data_file_0;
14010 uint32_t _ptr_config_file;
14011 TALLOC_CTX *_mem_save_config_file_0;
14012 uint32_t _ptr_help_file;
14013 TALLOC_CTX *_mem_save_help_file_0;
14014 uint32_t _ptr_dependent_files;
14015 TALLOC_CTX *_mem_save_dependent_files_0;
14016 uint32_t _ptr_monitor_name;
14017 TALLOC_CTX *_mem_save_monitor_name_0;
14018 uint32_t _ptr_default_datatype;
14019 TALLOC_CTX *_mem_save_default_datatype_0;
14020 uint32_t _ptr_previous_names;
14021 TALLOC_CTX *_mem_save_previous_names_0;
14022 uint32_t _ptr_manufacturer_name;
14023 TALLOC_CTX *_mem_save_manufacturer_name_0;
14024 uint32_t _ptr_manufacturer_url;
14025 TALLOC_CTX *_mem_save_manufacturer_url_0;
14026 uint32_t _ptr_hardware_id;
14027 TALLOC_CTX *_mem_save_hardware_id_0;
14028 uint32_t _ptr_provider;
14029 TALLOC_CTX *_mem_save_provider_0;
14030 uint32_t _ptr_print_processor;
14031 TALLOC_CTX *_mem_save_print_processor_0;
14032 uint32_t _ptr_vendor_setup;
14033 TALLOC_CTX *_mem_save_vendor_setup_0;
14034 uint32_t _ptr_color_profiles;
14035 TALLOC_CTX *_mem_save_color_profiles_0;
14036 uint32_t _ptr_inf_path;
14037 TALLOC_CTX *_mem_save_inf_path_0;
14038 uint32_t _ptr_core_driver_dependencies;
14039 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
14040 if (ndr_flags & NDR_SCALARS) {
14041 NDR_CHECK(ndr_pull_align(ndr, 8));
14042 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14044 uint32_t _flags_save_string = ndr->flags;
14045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14047 if (_ptr_driver_name) {
14048 NDR_PULL_ALLOC(ndr, r->driver_name);
14049 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14050 } else {
14051 r->driver_name = NULL;
14053 ndr->flags = _flags_save_string;
14056 uint32_t _flags_save_string = ndr->flags;
14057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
14059 if (_ptr_architecture) {
14060 NDR_PULL_ALLOC(ndr, r->architecture);
14061 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
14062 } else {
14063 r->architecture = NULL;
14065 ndr->flags = _flags_save_string;
14068 uint32_t _flags_save_string = ndr->flags;
14069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
14071 if (_ptr_driver_path) {
14072 NDR_PULL_ALLOC(ndr, r->driver_path);
14073 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
14074 } else {
14075 r->driver_path = NULL;
14077 ndr->flags = _flags_save_string;
14080 uint32_t _flags_save_string = ndr->flags;
14081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
14083 if (_ptr_data_file) {
14084 NDR_PULL_ALLOC(ndr, r->data_file);
14085 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
14086 } else {
14087 r->data_file = NULL;
14089 ndr->flags = _flags_save_string;
14092 uint32_t _flags_save_string = ndr->flags;
14093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
14095 if (_ptr_config_file) {
14096 NDR_PULL_ALLOC(ndr, r->config_file);
14097 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
14098 } else {
14099 r->config_file = NULL;
14101 ndr->flags = _flags_save_string;
14104 uint32_t _flags_save_string = ndr->flags;
14105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
14107 if (_ptr_help_file) {
14108 NDR_PULL_ALLOC(ndr, r->help_file);
14109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
14110 } else {
14111 r->help_file = NULL;
14113 ndr->flags = _flags_save_string;
14116 uint32_t _flags_save_string_array = ndr->flags;
14117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
14119 if (_ptr_dependent_files) {
14120 NDR_PULL_ALLOC(ndr, r->dependent_files);
14121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
14122 } else {
14123 r->dependent_files = NULL;
14125 ndr->flags = _flags_save_string_array;
14128 uint32_t _flags_save_string = ndr->flags;
14129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
14131 if (_ptr_monitor_name) {
14132 NDR_PULL_ALLOC(ndr, r->monitor_name);
14133 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
14134 } else {
14135 r->monitor_name = NULL;
14137 ndr->flags = _flags_save_string;
14140 uint32_t _flags_save_string = ndr->flags;
14141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
14143 if (_ptr_default_datatype) {
14144 NDR_PULL_ALLOC(ndr, r->default_datatype);
14145 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
14146 } else {
14147 r->default_datatype = NULL;
14149 ndr->flags = _flags_save_string;
14152 uint32_t _flags_save_string_array = ndr->flags;
14153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
14155 if (_ptr_previous_names) {
14156 NDR_PULL_ALLOC(ndr, r->previous_names);
14157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
14158 } else {
14159 r->previous_names = NULL;
14161 ndr->flags = _flags_save_string_array;
14163 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
14164 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
14166 uint32_t _flags_save_string = ndr->flags;
14167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
14169 if (_ptr_manufacturer_name) {
14170 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
14171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
14172 } else {
14173 r->manufacturer_name = NULL;
14175 ndr->flags = _flags_save_string;
14178 uint32_t _flags_save_string = ndr->flags;
14179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
14181 if (_ptr_manufacturer_url) {
14182 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
14183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
14184 } else {
14185 r->manufacturer_url = NULL;
14187 ndr->flags = _flags_save_string;
14190 uint32_t _flags_save_string = ndr->flags;
14191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
14193 if (_ptr_hardware_id) {
14194 NDR_PULL_ALLOC(ndr, r->hardware_id);
14195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
14196 } else {
14197 r->hardware_id = NULL;
14199 ndr->flags = _flags_save_string;
14202 uint32_t _flags_save_string = ndr->flags;
14203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
14205 if (_ptr_provider) {
14206 NDR_PULL_ALLOC(ndr, r->provider);
14207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
14208 } else {
14209 r->provider = NULL;
14211 ndr->flags = _flags_save_string;
14214 uint32_t _flags_save_string = ndr->flags;
14215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
14217 if (_ptr_print_processor) {
14218 NDR_PULL_ALLOC(ndr, r->print_processor);
14219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
14220 } else {
14221 r->print_processor = NULL;
14223 ndr->flags = _flags_save_string;
14226 uint32_t _flags_save_string = ndr->flags;
14227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
14229 if (_ptr_vendor_setup) {
14230 NDR_PULL_ALLOC(ndr, r->vendor_setup);
14231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
14232 } else {
14233 r->vendor_setup = NULL;
14235 ndr->flags = _flags_save_string;
14238 uint32_t _flags_save_string_array = ndr->flags;
14239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
14241 if (_ptr_color_profiles) {
14242 NDR_PULL_ALLOC(ndr, r->color_profiles);
14243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
14244 } else {
14245 r->color_profiles = NULL;
14247 ndr->flags = _flags_save_string_array;
14250 uint32_t _flags_save_string = ndr->flags;
14251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
14253 if (_ptr_inf_path) {
14254 NDR_PULL_ALLOC(ndr, r->inf_path);
14255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
14256 } else {
14257 r->inf_path = NULL;
14259 ndr->flags = _flags_save_string;
14261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
14263 uint32_t _flags_save_string_array = ndr->flags;
14264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
14266 if (_ptr_core_driver_dependencies) {
14267 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
14268 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
14269 } else {
14270 r->core_driver_dependencies = NULL;
14272 ndr->flags = _flags_save_string_array;
14274 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
14275 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
14276 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
14278 if (ndr_flags & NDR_BUFFERS) {
14280 uint32_t _flags_save_string = ndr->flags;
14281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14282 if (r->driver_name) {
14283 uint32_t _relative_save_offset;
14284 _relative_save_offset = ndr->offset;
14285 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14286 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14287 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14288 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14290 if (ndr->offset > ndr->relative_highest_offset) {
14291 ndr->relative_highest_offset = ndr->offset;
14293 ndr->offset = _relative_save_offset;
14295 ndr->flags = _flags_save_string;
14298 uint32_t _flags_save_string = ndr->flags;
14299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14300 if (r->architecture) {
14301 uint32_t _relative_save_offset;
14302 _relative_save_offset = ndr->offset;
14303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
14304 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
14305 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
14306 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
14307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
14308 if (ndr->offset > ndr->relative_highest_offset) {
14309 ndr->relative_highest_offset = ndr->offset;
14311 ndr->offset = _relative_save_offset;
14313 ndr->flags = _flags_save_string;
14316 uint32_t _flags_save_string = ndr->flags;
14317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14318 if (r->driver_path) {
14319 uint32_t _relative_save_offset;
14320 _relative_save_offset = ndr->offset;
14321 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
14322 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14323 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
14324 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
14325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
14326 if (ndr->offset > ndr->relative_highest_offset) {
14327 ndr->relative_highest_offset = ndr->offset;
14329 ndr->offset = _relative_save_offset;
14331 ndr->flags = _flags_save_string;
14334 uint32_t _flags_save_string = ndr->flags;
14335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14336 if (r->data_file) {
14337 uint32_t _relative_save_offset;
14338 _relative_save_offset = ndr->offset;
14339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14340 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14341 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14344 if (ndr->offset > ndr->relative_highest_offset) {
14345 ndr->relative_highest_offset = ndr->offset;
14347 ndr->offset = _relative_save_offset;
14349 ndr->flags = _flags_save_string;
14352 uint32_t _flags_save_string = ndr->flags;
14353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14354 if (r->config_file) {
14355 uint32_t _relative_save_offset;
14356 _relative_save_offset = ndr->offset;
14357 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14358 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14359 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14360 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14362 if (ndr->offset > ndr->relative_highest_offset) {
14363 ndr->relative_highest_offset = ndr->offset;
14365 ndr->offset = _relative_save_offset;
14367 ndr->flags = _flags_save_string;
14370 uint32_t _flags_save_string = ndr->flags;
14371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14372 if (r->help_file) {
14373 uint32_t _relative_save_offset;
14374 _relative_save_offset = ndr->offset;
14375 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14376 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14377 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14378 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14380 if (ndr->offset > ndr->relative_highest_offset) {
14381 ndr->relative_highest_offset = ndr->offset;
14383 ndr->offset = _relative_save_offset;
14385 ndr->flags = _flags_save_string;
14388 uint32_t _flags_save_string_array = ndr->flags;
14389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14390 if (r->dependent_files) {
14391 uint32_t _relative_save_offset;
14392 _relative_save_offset = ndr->offset;
14393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14394 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14395 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14396 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14398 if (ndr->offset > ndr->relative_highest_offset) {
14399 ndr->relative_highest_offset = ndr->offset;
14401 ndr->offset = _relative_save_offset;
14403 ndr->flags = _flags_save_string_array;
14406 uint32_t _flags_save_string = ndr->flags;
14407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14408 if (r->monitor_name) {
14409 uint32_t _relative_save_offset;
14410 _relative_save_offset = ndr->offset;
14411 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14412 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14413 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14416 if (ndr->offset > ndr->relative_highest_offset) {
14417 ndr->relative_highest_offset = ndr->offset;
14419 ndr->offset = _relative_save_offset;
14421 ndr->flags = _flags_save_string;
14424 uint32_t _flags_save_string = ndr->flags;
14425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14426 if (r->default_datatype) {
14427 uint32_t _relative_save_offset;
14428 _relative_save_offset = ndr->offset;
14429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14430 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14431 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14434 if (ndr->offset > ndr->relative_highest_offset) {
14435 ndr->relative_highest_offset = ndr->offset;
14437 ndr->offset = _relative_save_offset;
14439 ndr->flags = _flags_save_string;
14442 uint32_t _flags_save_string_array = ndr->flags;
14443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14444 if (r->previous_names) {
14445 uint32_t _relative_save_offset;
14446 _relative_save_offset = ndr->offset;
14447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14448 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14449 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14450 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14452 if (ndr->offset > ndr->relative_highest_offset) {
14453 ndr->relative_highest_offset = ndr->offset;
14455 ndr->offset = _relative_save_offset;
14457 ndr->flags = _flags_save_string_array;
14460 uint32_t _flags_save_string = ndr->flags;
14461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14462 if (r->manufacturer_name) {
14463 uint32_t _relative_save_offset;
14464 _relative_save_offset = ndr->offset;
14465 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14466 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14467 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14468 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14470 if (ndr->offset > ndr->relative_highest_offset) {
14471 ndr->relative_highest_offset = ndr->offset;
14473 ndr->offset = _relative_save_offset;
14475 ndr->flags = _flags_save_string;
14478 uint32_t _flags_save_string = ndr->flags;
14479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14480 if (r->manufacturer_url) {
14481 uint32_t _relative_save_offset;
14482 _relative_save_offset = ndr->offset;
14483 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14484 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14485 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14486 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14488 if (ndr->offset > ndr->relative_highest_offset) {
14489 ndr->relative_highest_offset = ndr->offset;
14491 ndr->offset = _relative_save_offset;
14493 ndr->flags = _flags_save_string;
14496 uint32_t _flags_save_string = ndr->flags;
14497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14498 if (r->hardware_id) {
14499 uint32_t _relative_save_offset;
14500 _relative_save_offset = ndr->offset;
14501 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14502 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14503 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14504 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14506 if (ndr->offset > ndr->relative_highest_offset) {
14507 ndr->relative_highest_offset = ndr->offset;
14509 ndr->offset = _relative_save_offset;
14511 ndr->flags = _flags_save_string;
14514 uint32_t _flags_save_string = ndr->flags;
14515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14516 if (r->provider) {
14517 uint32_t _relative_save_offset;
14518 _relative_save_offset = ndr->offset;
14519 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14520 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14521 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14522 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14524 if (ndr->offset > ndr->relative_highest_offset) {
14525 ndr->relative_highest_offset = ndr->offset;
14527 ndr->offset = _relative_save_offset;
14529 ndr->flags = _flags_save_string;
14532 uint32_t _flags_save_string = ndr->flags;
14533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14534 if (r->print_processor) {
14535 uint32_t _relative_save_offset;
14536 _relative_save_offset = ndr->offset;
14537 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14538 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14539 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14540 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14542 if (ndr->offset > ndr->relative_highest_offset) {
14543 ndr->relative_highest_offset = ndr->offset;
14545 ndr->offset = _relative_save_offset;
14547 ndr->flags = _flags_save_string;
14550 uint32_t _flags_save_string = ndr->flags;
14551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14552 if (r->vendor_setup) {
14553 uint32_t _relative_save_offset;
14554 _relative_save_offset = ndr->offset;
14555 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14556 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14557 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14558 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14560 if (ndr->offset > ndr->relative_highest_offset) {
14561 ndr->relative_highest_offset = ndr->offset;
14563 ndr->offset = _relative_save_offset;
14565 ndr->flags = _flags_save_string;
14568 uint32_t _flags_save_string_array = ndr->flags;
14569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14570 if (r->color_profiles) {
14571 uint32_t _relative_save_offset;
14572 _relative_save_offset = ndr->offset;
14573 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14574 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14575 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14576 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14578 if (ndr->offset > ndr->relative_highest_offset) {
14579 ndr->relative_highest_offset = ndr->offset;
14581 ndr->offset = _relative_save_offset;
14583 ndr->flags = _flags_save_string_array;
14586 uint32_t _flags_save_string = ndr->flags;
14587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14588 if (r->inf_path) {
14589 uint32_t _relative_save_offset;
14590 _relative_save_offset = ndr->offset;
14591 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14592 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14593 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14594 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14596 if (ndr->offset > ndr->relative_highest_offset) {
14597 ndr->relative_highest_offset = ndr->offset;
14599 ndr->offset = _relative_save_offset;
14601 ndr->flags = _flags_save_string;
14604 uint32_t _flags_save_string_array = ndr->flags;
14605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14606 if (r->core_driver_dependencies) {
14607 uint32_t _relative_save_offset;
14608 _relative_save_offset = ndr->offset;
14609 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14610 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14611 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14612 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14614 if (ndr->offset > ndr->relative_highest_offset) {
14615 ndr->relative_highest_offset = ndr->offset;
14617 ndr->offset = _relative_save_offset;
14619 ndr->flags = _flags_save_string_array;
14622 return NDR_ERR_SUCCESS;
14625 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14627 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14628 ndr->depth++;
14629 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14630 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14631 ndr->depth++;
14632 if (r->driver_name) {
14633 ndr_print_string(ndr, "driver_name", r->driver_name);
14635 ndr->depth--;
14636 ndr_print_ptr(ndr, "architecture", r->architecture);
14637 ndr->depth++;
14638 if (r->architecture) {
14639 ndr_print_string(ndr, "architecture", r->architecture);
14641 ndr->depth--;
14642 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14643 ndr->depth++;
14644 if (r->driver_path) {
14645 ndr_print_string(ndr, "driver_path", r->driver_path);
14647 ndr->depth--;
14648 ndr_print_ptr(ndr, "data_file", r->data_file);
14649 ndr->depth++;
14650 if (r->data_file) {
14651 ndr_print_string(ndr, "data_file", r->data_file);
14653 ndr->depth--;
14654 ndr_print_ptr(ndr, "config_file", r->config_file);
14655 ndr->depth++;
14656 if (r->config_file) {
14657 ndr_print_string(ndr, "config_file", r->config_file);
14659 ndr->depth--;
14660 ndr_print_ptr(ndr, "help_file", r->help_file);
14661 ndr->depth++;
14662 if (r->help_file) {
14663 ndr_print_string(ndr, "help_file", r->help_file);
14665 ndr->depth--;
14666 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14667 ndr->depth++;
14668 if (r->dependent_files) {
14669 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14671 ndr->depth--;
14672 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14673 ndr->depth++;
14674 if (r->monitor_name) {
14675 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14677 ndr->depth--;
14678 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14679 ndr->depth++;
14680 if (r->default_datatype) {
14681 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14683 ndr->depth--;
14684 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14685 ndr->depth++;
14686 if (r->previous_names) {
14687 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14689 ndr->depth--;
14690 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14691 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14692 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14693 ndr->depth++;
14694 if (r->manufacturer_name) {
14695 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14697 ndr->depth--;
14698 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14699 ndr->depth++;
14700 if (r->manufacturer_url) {
14701 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14703 ndr->depth--;
14704 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14705 ndr->depth++;
14706 if (r->hardware_id) {
14707 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14709 ndr->depth--;
14710 ndr_print_ptr(ndr, "provider", r->provider);
14711 ndr->depth++;
14712 if (r->provider) {
14713 ndr_print_string(ndr, "provider", r->provider);
14715 ndr->depth--;
14716 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14717 ndr->depth++;
14718 if (r->print_processor) {
14719 ndr_print_string(ndr, "print_processor", r->print_processor);
14721 ndr->depth--;
14722 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14723 ndr->depth++;
14724 if (r->vendor_setup) {
14725 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14727 ndr->depth--;
14728 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14729 ndr->depth++;
14730 if (r->color_profiles) {
14731 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14733 ndr->depth--;
14734 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14735 ndr->depth++;
14736 if (r->inf_path) {
14737 ndr_print_string(ndr, "inf_path", r->inf_path);
14739 ndr->depth--;
14740 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14741 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14742 ndr->depth++;
14743 if (r->core_driver_dependencies) {
14744 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14746 ndr->depth--;
14747 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14748 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14749 ndr->depth--;
14752 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14754 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14757 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14759 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14760 return NDR_ERR_SUCCESS;
14763 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14765 uint32_t v;
14766 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14767 *r = v;
14768 return NDR_ERR_SUCCESS;
14771 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14773 const char *val = NULL;
14775 switch (r) {
14776 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14777 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14778 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14779 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14780 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14782 ndr_print_enum(ndr, name, "ENUM", val, r);
14785 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14787 if (ndr_flags & NDR_SCALARS) {
14788 NDR_CHECK(ndr_push_align(ndr, 5));
14790 uint32_t _flags_save_string = ndr->flags;
14791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14792 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14793 ndr->flags = _flags_save_string;
14795 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14797 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14799 if (ndr_flags & NDR_BUFFERS) {
14801 uint32_t _flags_save_string = ndr->flags;
14802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14803 if (r->file_name) {
14804 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
14805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14806 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
14808 ndr->flags = _flags_save_string;
14811 return NDR_ERR_SUCCESS;
14814 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14816 uint32_t _ptr_file_name;
14817 TALLOC_CTX *_mem_save_file_name_0;
14818 if (ndr_flags & NDR_SCALARS) {
14819 NDR_CHECK(ndr_pull_align(ndr, 5));
14821 uint32_t _flags_save_string = ndr->flags;
14822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14824 if (_ptr_file_name) {
14825 NDR_PULL_ALLOC(ndr, r->file_name);
14826 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14827 } else {
14828 r->file_name = NULL;
14830 ndr->flags = _flags_save_string;
14832 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14834 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14836 if (ndr_flags & NDR_BUFFERS) {
14838 uint32_t _flags_save_string = ndr->flags;
14839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14840 if (r->file_name) {
14841 uint32_t _relative_save_offset;
14842 _relative_save_offset = ndr->offset;
14843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14844 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14845 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14848 if (ndr->offset > ndr->relative_highest_offset) {
14849 ndr->relative_highest_offset = ndr->offset;
14851 ndr->offset = _relative_save_offset;
14853 ndr->flags = _flags_save_string;
14856 return NDR_ERR_SUCCESS;
14859 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14861 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14862 ndr->depth++;
14863 ndr_print_ptr(ndr, "file_name", r->file_name);
14864 ndr->depth++;
14865 if (r->file_name) {
14866 ndr_print_string(ndr, "file_name", r->file_name);
14868 ndr->depth--;
14869 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14870 ndr_print_uint32(ndr, "file_version", r->file_version);
14871 ndr->depth--;
14874 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14876 uint32_t cntr_file_info_1;
14877 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14878 ndr->depth++;
14879 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14880 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14881 ndr->depth++;
14882 if (r->driver_name) {
14883 ndr_print_string(ndr, "driver_name", r->driver_name);
14885 ndr->depth--;
14886 ndr_print_ptr(ndr, "architecture", r->architecture);
14887 ndr->depth++;
14888 if (r->architecture) {
14889 ndr_print_string(ndr, "architecture", r->architecture);
14891 ndr->depth--;
14892 ndr_print_ptr(ndr, "file_info", r->file_info);
14893 ndr->depth++;
14894 if (r->file_info) {
14895 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14896 ndr->depth++;
14897 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14898 char *idx_1=NULL;
14899 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14900 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14901 free(idx_1);
14904 ndr->depth--;
14906 ndr->depth--;
14907 ndr_print_uint32(ndr, "file_count", r->file_count);
14908 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14909 ndr->depth++;
14910 if (r->monitor_name) {
14911 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14913 ndr->depth--;
14914 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14915 ndr->depth++;
14916 if (r->default_datatype) {
14917 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14919 ndr->depth--;
14920 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14921 ndr->depth++;
14922 if (r->previous_names) {
14923 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14925 ndr->depth--;
14926 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14927 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14928 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14929 ndr->depth++;
14930 if (r->manufacturer_name) {
14931 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14933 ndr->depth--;
14934 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14935 ndr->depth++;
14936 if (r->manufacturer_url) {
14937 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14939 ndr->depth--;
14940 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14941 ndr->depth++;
14942 if (r->hardware_id) {
14943 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14945 ndr->depth--;
14946 ndr_print_ptr(ndr, "provider", r->provider);
14947 ndr->depth++;
14948 if (r->provider) {
14949 ndr_print_string(ndr, "provider", r->provider);
14951 ndr->depth--;
14952 ndr->depth--;
14955 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14957 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14960 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14962 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14964 uint32_t _flags_save_UNION = ndr->flags;
14965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14966 if (ndr_flags & NDR_SCALARS) {
14967 int level = ndr_push_get_switch_value(ndr, r);
14968 NDR_CHECK(ndr_push_union_align(ndr, 8));
14969 switch (level) {
14970 case 1: {
14971 NDR_CHECK(ndr_push_align(ndr, 5));
14972 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14973 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14974 break; }
14976 case 2: {
14977 NDR_CHECK(ndr_push_align(ndr, 5));
14978 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14979 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14980 break; }
14982 case 3: {
14983 NDR_CHECK(ndr_push_align(ndr, 5));
14984 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14985 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14986 break; }
14988 case 4: {
14989 NDR_CHECK(ndr_push_align(ndr, 5));
14990 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14991 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14992 break; }
14994 case 5: {
14995 NDR_CHECK(ndr_push_align(ndr, 5));
14996 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14997 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14998 break; }
15000 case 6: {
15001 NDR_CHECK(ndr_push_align(ndr, 8));
15002 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15003 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15004 break; }
15006 case 7: {
15007 NDR_CHECK(ndr_push_align(ndr, 5));
15008 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15009 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15010 break; }
15012 case 8: {
15013 NDR_CHECK(ndr_push_align(ndr, 8));
15014 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15015 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15016 break; }
15018 case 101: {
15019 NDR_CHECK(ndr_push_align(ndr, 8));
15020 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15021 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15022 break; }
15024 default: {
15025 break; }
15029 if (ndr_flags & NDR_BUFFERS) {
15030 int level = ndr_push_get_switch_value(ndr, r);
15031 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15032 switch (level) {
15033 case 1:
15034 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15035 break;
15037 case 2:
15038 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15039 break;
15041 case 3:
15042 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15043 break;
15045 case 4:
15046 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15047 break;
15049 case 5:
15050 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15051 break;
15053 case 6:
15054 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15055 break;
15057 case 7:
15058 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15059 break;
15061 case 8:
15062 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15063 break;
15065 case 101:
15066 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15067 break;
15069 default:
15070 break;
15074 ndr->flags = _flags_save_UNION;
15076 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15077 return NDR_ERR_SUCCESS;
15080 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
15082 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15083 int level;
15085 uint32_t _flags_save_UNION = ndr->flags;
15086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15087 level = ndr_pull_get_switch_value(ndr, r);
15088 if (ndr_flags & NDR_SCALARS) {
15089 NDR_CHECK(ndr_pull_union_align(ndr, 8));
15090 switch (level) {
15091 case 1: {
15092 NDR_CHECK(ndr_pull_align(ndr, 5));
15093 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15094 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15095 break; }
15097 case 2: {
15098 NDR_CHECK(ndr_pull_align(ndr, 5));
15099 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15100 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15101 break; }
15103 case 3: {
15104 NDR_CHECK(ndr_pull_align(ndr, 5));
15105 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15106 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15107 break; }
15109 case 4: {
15110 NDR_CHECK(ndr_pull_align(ndr, 5));
15111 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15112 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15113 break; }
15115 case 5: {
15116 NDR_CHECK(ndr_pull_align(ndr, 5));
15117 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15118 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15119 break; }
15121 case 6: {
15122 NDR_CHECK(ndr_pull_align(ndr, 8));
15123 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15124 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15125 break; }
15127 case 7: {
15128 NDR_CHECK(ndr_pull_align(ndr, 5));
15129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15130 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15131 break; }
15133 case 8: {
15134 NDR_CHECK(ndr_pull_align(ndr, 8));
15135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15136 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15137 break; }
15139 case 101: {
15140 NDR_CHECK(ndr_pull_align(ndr, 8));
15141 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15142 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15143 break; }
15145 default: {
15146 break; }
15150 if (ndr_flags & NDR_BUFFERS) {
15151 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15152 switch (level) {
15153 case 1:
15154 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15155 break;
15157 case 2:
15158 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15159 break;
15161 case 3:
15162 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15163 break;
15165 case 4:
15166 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15167 break;
15169 case 5:
15170 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15171 break;
15173 case 6:
15174 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15175 break;
15177 case 7:
15178 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15179 break;
15181 case 8:
15182 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15183 break;
15185 case 101:
15186 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15187 break;
15189 default:
15190 break;
15194 ndr->flags = _flags_save_UNION;
15196 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15197 return NDR_ERR_SUCCESS;
15200 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
15202 int level;
15204 uint32_t _flags_save_UNION = ndr->flags;
15205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15206 level = ndr_print_get_switch_value(ndr, r);
15207 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
15208 switch (level) {
15209 case 1:
15210 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
15211 break;
15213 case 2:
15214 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
15215 break;
15217 case 3:
15218 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
15219 break;
15221 case 4:
15222 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
15223 break;
15225 case 5:
15226 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
15227 break;
15229 case 6:
15230 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
15231 break;
15233 case 7:
15234 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
15235 break;
15237 case 8:
15238 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
15239 break;
15241 case 101:
15242 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
15243 break;
15245 default:
15246 break;
15249 ndr->flags = _flags_save_UNION;
15253 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15255 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15256 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
15259 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
15261 if (ndr_flags & NDR_SCALARS) {
15262 NDR_CHECK(ndr_push_align(ndr, 4));
15264 uint32_t _flags_save_string = ndr->flags;
15265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15266 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15267 ndr->flags = _flags_save_string;
15269 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15271 if (ndr_flags & NDR_BUFFERS) {
15273 return NDR_ERR_SUCCESS;
15276 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
15278 if (ndr_flags & NDR_SCALARS) {
15279 NDR_CHECK(ndr_pull_align(ndr, 4));
15281 uint32_t _flags_save_string = ndr->flags;
15282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15283 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15284 ndr->flags = _flags_save_string;
15286 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15288 if (ndr_flags & NDR_BUFFERS) {
15290 return NDR_ERR_SUCCESS;
15293 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
15295 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
15296 ndr->depth++;
15297 ndr_print_string(ndr, "directory_name", r->directory_name);
15298 ndr->depth--;
15301 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15303 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
15306 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
15308 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15310 uint32_t _flags_save_UNION = ndr->flags;
15311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15312 if (ndr_flags & NDR_SCALARS) {
15313 int level = ndr_push_get_switch_value(ndr, r);
15314 NDR_CHECK(ndr_push_union_align(ndr, 4));
15315 switch (level) {
15316 case 1: {
15317 NDR_CHECK(ndr_push_align(ndr, 4));
15318 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15319 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15320 break; }
15322 default: {
15323 NDR_CHECK(ndr_push_align(ndr, 4));
15324 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15325 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15326 break; }
15330 if (ndr_flags & NDR_BUFFERS) {
15331 int level = ndr_push_get_switch_value(ndr, r);
15332 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15333 switch (level) {
15334 case 1:
15335 break;
15337 default:
15338 break;
15342 ndr->flags = _flags_save_UNION;
15344 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15345 return NDR_ERR_SUCCESS;
15348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
15350 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15351 int level;
15353 uint32_t _flags_save_UNION = ndr->flags;
15354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15355 level = ndr_pull_get_switch_value(ndr, r);
15356 if (ndr_flags & NDR_SCALARS) {
15357 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15358 switch (level) {
15359 case 1: {
15360 NDR_CHECK(ndr_pull_align(ndr, 4));
15361 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15362 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15363 break; }
15365 default: {
15366 NDR_CHECK(ndr_pull_align(ndr, 4));
15367 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15368 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15369 break; }
15373 if (ndr_flags & NDR_BUFFERS) {
15374 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15375 switch (level) {
15376 case 1:
15377 break;
15379 default:
15380 break;
15384 ndr->flags = _flags_save_UNION;
15386 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15387 return NDR_ERR_SUCCESS;
15390 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
15392 int level;
15394 uint32_t _flags_save_UNION = ndr->flags;
15395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15396 level = ndr_print_get_switch_value(ndr, r);
15397 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
15398 switch (level) {
15399 case 1:
15400 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15401 break;
15403 default:
15404 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15405 break;
15408 ndr->flags = _flags_save_UNION;
15412 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15414 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15415 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
15418 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
15420 if (ndr_flags & NDR_SCALARS) {
15421 NDR_CHECK(ndr_push_align(ndr, 5));
15423 uint32_t _flags_save_string = ndr->flags;
15424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15425 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
15426 ndr->flags = _flags_save_string;
15428 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15430 if (ndr_flags & NDR_BUFFERS) {
15432 uint32_t _flags_save_string = ndr->flags;
15433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15434 if (r->print_processor_name) {
15435 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
15436 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
15437 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
15439 ndr->flags = _flags_save_string;
15442 return NDR_ERR_SUCCESS;
15445 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
15447 uint32_t _ptr_print_processor_name;
15448 TALLOC_CTX *_mem_save_print_processor_name_0;
15449 if (ndr_flags & NDR_SCALARS) {
15450 NDR_CHECK(ndr_pull_align(ndr, 5));
15452 uint32_t _flags_save_string = ndr->flags;
15453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
15455 if (_ptr_print_processor_name) {
15456 NDR_PULL_ALLOC(ndr, r->print_processor_name);
15457 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
15458 } else {
15459 r->print_processor_name = NULL;
15461 ndr->flags = _flags_save_string;
15463 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15465 if (ndr_flags & NDR_BUFFERS) {
15467 uint32_t _flags_save_string = ndr->flags;
15468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15469 if (r->print_processor_name) {
15470 uint32_t _relative_save_offset;
15471 _relative_save_offset = ndr->offset;
15472 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
15473 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15474 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
15475 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
15476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
15477 if (ndr->offset > ndr->relative_highest_offset) {
15478 ndr->relative_highest_offset = ndr->offset;
15480 ndr->offset = _relative_save_offset;
15482 ndr->flags = _flags_save_string;
15485 return NDR_ERR_SUCCESS;
15488 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
15490 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
15491 ndr->depth++;
15492 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
15493 ndr->depth++;
15494 if (r->print_processor_name) {
15495 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
15497 ndr->depth--;
15498 ndr->depth--;
15501 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15503 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
15506 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
15508 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15510 uint32_t _flags_save_UNION = ndr->flags;
15511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15512 if (ndr_flags & NDR_SCALARS) {
15513 int level = ndr_push_get_switch_value(ndr, r);
15514 NDR_CHECK(ndr_push_union_align(ndr, 5));
15515 switch (level) {
15516 case 1: {
15517 NDR_CHECK(ndr_push_align(ndr, 5));
15518 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15519 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15520 break; }
15522 default: {
15523 break; }
15527 if (ndr_flags & NDR_BUFFERS) {
15528 int level = ndr_push_get_switch_value(ndr, r);
15529 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15530 switch (level) {
15531 case 1:
15532 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15533 break;
15535 default:
15536 break;
15540 ndr->flags = _flags_save_UNION;
15542 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15543 return NDR_ERR_SUCCESS;
15546 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
15548 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15549 int level;
15551 uint32_t _flags_save_UNION = ndr->flags;
15552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15553 level = ndr_pull_get_switch_value(ndr, r);
15554 if (ndr_flags & NDR_SCALARS) {
15555 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15556 switch (level) {
15557 case 1: {
15558 NDR_CHECK(ndr_pull_align(ndr, 5));
15559 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15560 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15561 break; }
15563 default: {
15564 break; }
15568 if (ndr_flags & NDR_BUFFERS) {
15569 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15570 switch (level) {
15571 case 1:
15572 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15573 break;
15575 default:
15576 break;
15580 ndr->flags = _flags_save_UNION;
15582 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15583 return NDR_ERR_SUCCESS;
15586 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15588 int level;
15590 uint32_t _flags_save_UNION = ndr->flags;
15591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15592 level = ndr_print_get_switch_value(ndr, r);
15593 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15594 switch (level) {
15595 case 1:
15596 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15597 break;
15599 default:
15600 break;
15603 ndr->flags = _flags_save_UNION;
15607 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15609 if (ndr_flags & NDR_SCALARS) {
15610 NDR_CHECK(ndr_push_align(ndr, 4));
15612 uint32_t _flags_save_string = ndr->flags;
15613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15614 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15615 ndr->flags = _flags_save_string;
15617 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15619 if (ndr_flags & NDR_BUFFERS) {
15621 return NDR_ERR_SUCCESS;
15624 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15626 if (ndr_flags & NDR_SCALARS) {
15627 NDR_CHECK(ndr_pull_align(ndr, 4));
15629 uint32_t _flags_save_string = ndr->flags;
15630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15631 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15632 ndr->flags = _flags_save_string;
15634 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15636 if (ndr_flags & NDR_BUFFERS) {
15638 return NDR_ERR_SUCCESS;
15641 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15643 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15644 ndr->depth++;
15645 ndr_print_string(ndr, "directory_name", r->directory_name);
15646 ndr->depth--;
15649 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15651 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15654 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15656 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15658 uint32_t _flags_save_UNION = ndr->flags;
15659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15660 if (ndr_flags & NDR_SCALARS) {
15661 int level = ndr_push_get_switch_value(ndr, r);
15662 NDR_CHECK(ndr_push_union_align(ndr, 4));
15663 switch (level) {
15664 case 1: {
15665 NDR_CHECK(ndr_push_align(ndr, 4));
15666 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15667 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15668 break; }
15670 default: {
15671 NDR_CHECK(ndr_push_align(ndr, 4));
15672 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15673 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15674 break; }
15678 if (ndr_flags & NDR_BUFFERS) {
15679 int level = ndr_push_get_switch_value(ndr, r);
15680 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15681 switch (level) {
15682 case 1:
15683 break;
15685 default:
15686 break;
15690 ndr->flags = _flags_save_UNION;
15692 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15693 return NDR_ERR_SUCCESS;
15696 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15698 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15699 int level;
15701 uint32_t _flags_save_UNION = ndr->flags;
15702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15703 level = ndr_pull_get_switch_value(ndr, r);
15704 if (ndr_flags & NDR_SCALARS) {
15705 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15706 switch (level) {
15707 case 1: {
15708 NDR_CHECK(ndr_pull_align(ndr, 4));
15709 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15710 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15711 break; }
15713 default: {
15714 NDR_CHECK(ndr_pull_align(ndr, 4));
15715 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15716 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15717 break; }
15721 if (ndr_flags & NDR_BUFFERS) {
15722 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15723 switch (level) {
15724 case 1:
15725 break;
15727 default:
15728 break;
15732 ndr->flags = _flags_save_UNION;
15734 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15735 return NDR_ERR_SUCCESS;
15738 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15740 int level;
15742 uint32_t _flags_save_UNION = ndr->flags;
15743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15744 level = ndr_print_get_switch_value(ndr, r);
15745 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15746 switch (level) {
15747 case 1:
15748 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15749 break;
15751 default:
15752 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15753 break;
15756 ndr->flags = _flags_save_UNION;
15760 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15762 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15763 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15766 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15768 if (ndr_flags & NDR_SCALARS) {
15769 NDR_CHECK(ndr_push_align(ndr, 5));
15770 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15773 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15775 if (ndr_flags & NDR_BUFFERS) {
15776 if (r->document_name) {
15777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15780 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15782 if (r->output_file) {
15783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15786 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15788 if (r->datatype) {
15789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15792 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15795 return NDR_ERR_SUCCESS;
15798 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15800 uint32_t _ptr_document_name;
15801 TALLOC_CTX *_mem_save_document_name_0;
15802 uint32_t _ptr_output_file;
15803 TALLOC_CTX *_mem_save_output_file_0;
15804 uint32_t _ptr_datatype;
15805 TALLOC_CTX *_mem_save_datatype_0;
15806 if (ndr_flags & NDR_SCALARS) {
15807 NDR_CHECK(ndr_pull_align(ndr, 5));
15808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15809 if (_ptr_document_name) {
15810 NDR_PULL_ALLOC(ndr, r->document_name);
15811 } else {
15812 r->document_name = NULL;
15814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15815 if (_ptr_output_file) {
15816 NDR_PULL_ALLOC(ndr, r->output_file);
15817 } else {
15818 r->output_file = NULL;
15820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15821 if (_ptr_datatype) {
15822 NDR_PULL_ALLOC(ndr, r->datatype);
15823 } else {
15824 r->datatype = NULL;
15826 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15828 if (ndr_flags & NDR_BUFFERS) {
15829 if (r->document_name) {
15830 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15831 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15832 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15833 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15834 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15835 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
15837 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15838 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15841 if (r->output_file) {
15842 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15843 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15844 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15845 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15846 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15847 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->output_file), ndr_get_array_length(ndr, &r->output_file));
15849 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15850 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15853 if (r->datatype) {
15854 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15855 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15856 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15857 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15858 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15859 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
15861 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15862 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15866 return NDR_ERR_SUCCESS;
15869 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15871 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15872 ndr->depth++;
15873 ndr_print_ptr(ndr, "document_name", r->document_name);
15874 ndr->depth++;
15875 if (r->document_name) {
15876 ndr_print_string(ndr, "document_name", r->document_name);
15878 ndr->depth--;
15879 ndr_print_ptr(ndr, "output_file", r->output_file);
15880 ndr->depth++;
15881 if (r->output_file) {
15882 ndr_print_string(ndr, "output_file", r->output_file);
15884 ndr->depth--;
15885 ndr_print_ptr(ndr, "datatype", r->datatype);
15886 ndr->depth++;
15887 if (r->datatype) {
15888 ndr_print_string(ndr, "datatype", r->datatype);
15890 ndr->depth--;
15891 ndr->depth--;
15894 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15896 if (ndr_flags & NDR_SCALARS) {
15897 int level = ndr_push_get_switch_value(ndr, r);
15898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15899 NDR_CHECK(ndr_push_union_align(ndr, 5));
15900 switch (level) {
15901 case 1: {
15902 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15903 break; }
15905 case 2: {
15906 break; }
15908 case 3: {
15909 break; }
15911 default: {
15912 break; }
15916 if (ndr_flags & NDR_BUFFERS) {
15917 int level = ndr_push_get_switch_value(ndr, r);
15918 switch (level) {
15919 case 1:
15920 if (r->info1) {
15921 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15923 break;
15925 case 2:
15926 break;
15928 case 3:
15929 break;
15931 default:
15932 break;
15936 return NDR_ERR_SUCCESS;
15939 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15941 int level;
15942 uint32_t _level;
15943 TALLOC_CTX *_mem_save_info1_0;
15944 level = ndr_pull_get_switch_value(ndr, r);
15945 if (ndr_flags & NDR_SCALARS) {
15946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15947 if (_level != level) {
15948 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15950 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15951 switch (level) {
15952 case 1: {
15953 uint32_t _ptr_info1;
15954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15955 if (_ptr_info1) {
15956 NDR_PULL_ALLOC(ndr, r->info1);
15957 } else {
15958 r->info1 = NULL;
15960 break; }
15962 case 2: {
15963 break; }
15965 case 3: {
15966 break; }
15968 default: {
15969 break; }
15973 if (ndr_flags & NDR_BUFFERS) {
15974 switch (level) {
15975 case 1:
15976 if (r->info1) {
15977 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15978 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15979 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15982 break;
15984 case 2:
15985 break;
15987 case 3:
15988 break;
15990 default:
15991 break;
15995 return NDR_ERR_SUCCESS;
15998 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
16000 int level;
16001 level = ndr_print_get_switch_value(ndr, r);
16002 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
16003 switch (level) {
16004 case 1:
16005 ndr_print_ptr(ndr, "info1", r->info1);
16006 ndr->depth++;
16007 if (r->info1) {
16008 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
16010 ndr->depth--;
16011 break;
16013 case 2:
16014 break;
16016 case 3:
16017 break;
16019 default:
16020 break;
16025 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
16027 if (ndr_flags & NDR_SCALARS) {
16028 NDR_CHECK(ndr_push_align(ndr, 4));
16029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
16030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16035 uint32_t _flags_save_string = ndr->flags;
16036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16038 struct ndr_push *_ndr_extra_string;
16039 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16040 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16041 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16043 ndr->flags = _flags_save_string;
16045 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16047 if (ndr_flags & NDR_BUFFERS) {
16049 return NDR_ERR_SUCCESS;
16052 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
16054 if (ndr_flags & NDR_SCALARS) {
16055 NDR_CHECK(ndr_pull_align(ndr, 4));
16056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16062 uint32_t _flags_save_string = ndr->flags;
16063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16065 struct ndr_pull *_ndr_extra_string;
16066 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16067 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16068 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16070 ndr->flags = _flags_save_string;
16072 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16074 if (ndr_flags & NDR_BUFFERS) {
16076 return NDR_ERR_SUCCESS;
16079 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
16081 ndr_print_struct(ndr, name, "spoolss_OSVersion");
16082 ndr->depth++;
16083 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
16084 ndr_print_uint32(ndr, "major", r->major);
16085 ndr_print_uint32(ndr, "minor", r->minor);
16086 ndr_print_uint32(ndr, "build", r->build);
16087 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16088 ndr_print_string(ndr, "extra_string", r->extra_string);
16089 ndr->depth--;
16092 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
16094 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
16097 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
16099 if (ndr_flags & NDR_SCALARS) {
16100 NDR_CHECK(ndr_push_align(ndr, 4));
16101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
16102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16107 uint32_t _flags_save_string = ndr->flags;
16108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16110 struct ndr_push *_ndr_extra_string;
16111 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16112 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16113 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16115 ndr->flags = _flags_save_string;
16117 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
16118 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
16119 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
16120 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
16121 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
16122 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16124 if (ndr_flags & NDR_BUFFERS) {
16126 return NDR_ERR_SUCCESS;
16129 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
16131 if (ndr_flags & NDR_SCALARS) {
16132 NDR_CHECK(ndr_pull_align(ndr, 4));
16133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16139 uint32_t _flags_save_string = ndr->flags;
16140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16142 struct ndr_pull *_ndr_extra_string;
16143 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16144 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16145 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16147 ndr->flags = _flags_save_string;
16149 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
16150 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
16151 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
16152 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
16153 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
16154 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16156 if (ndr_flags & NDR_BUFFERS) {
16158 return NDR_ERR_SUCCESS;
16161 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
16163 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
16164 ndr->depth++;
16165 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
16166 ndr_print_uint32(ndr, "major", r->major);
16167 ndr_print_uint32(ndr, "minor", r->minor);
16168 ndr_print_uint32(ndr, "build", r->build);
16169 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16170 ndr_print_string(ndr, "extra_string", r->extra_string);
16171 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
16172 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
16173 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
16174 ndr_print_uint8(ndr, "product_type", r->product_type);
16175 ndr_print_uint8(ndr, "reserved", r->reserved);
16176 ndr->depth--;
16179 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
16181 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
16184 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
16186 if (ndr_flags & NDR_SCALARS) {
16187 int level = ndr_push_get_switch_value(ndr, r);
16188 NDR_CHECK(ndr_push_union_align(ndr, 4));
16189 switch (level) {
16190 case REG_NONE: {
16191 break; }
16193 case REG_SZ: {
16195 uint32_t _flags_save_string = ndr->flags;
16196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16197 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
16198 ndr->flags = _flags_save_string;
16200 break; }
16202 case REG_BINARY: {
16204 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16206 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
16207 ndr->flags = _flags_save_DATA_BLOB;
16209 break; }
16211 case REG_DWORD: {
16212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
16213 break; }
16215 case REG_MULTI_SZ: {
16217 uint32_t _flags_save_string_array = ndr->flags;
16218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16219 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
16220 ndr->flags = _flags_save_string_array;
16222 break; }
16224 default: {
16226 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16228 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
16229 ndr->flags = _flags_save_DATA_BLOB;
16231 break; }
16235 if (ndr_flags & NDR_BUFFERS) {
16236 int level = ndr_push_get_switch_value(ndr, r);
16237 switch (level) {
16238 case REG_NONE:
16239 break;
16241 case REG_SZ:
16242 break;
16244 case REG_BINARY:
16245 break;
16247 case REG_DWORD:
16248 break;
16250 case REG_MULTI_SZ:
16251 break;
16253 default:
16254 break;
16258 return NDR_ERR_SUCCESS;
16261 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
16263 int level;
16264 level = ndr_pull_get_switch_value(ndr, r);
16265 if (ndr_flags & NDR_SCALARS) {
16266 NDR_CHECK(ndr_pull_union_align(ndr, 4));
16267 switch (level) {
16268 case REG_NONE: {
16269 break; }
16271 case REG_SZ: {
16273 uint32_t _flags_save_string = ndr->flags;
16274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16275 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
16276 ndr->flags = _flags_save_string;
16278 break; }
16280 case REG_BINARY: {
16282 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16284 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
16285 ndr->flags = _flags_save_DATA_BLOB;
16287 break; }
16289 case REG_DWORD: {
16290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
16291 break; }
16293 case REG_MULTI_SZ: {
16295 uint32_t _flags_save_string_array = ndr->flags;
16296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16297 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
16298 ndr->flags = _flags_save_string_array;
16300 break; }
16302 default: {
16304 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16306 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
16307 ndr->flags = _flags_save_DATA_BLOB;
16309 break; }
16313 if (ndr_flags & NDR_BUFFERS) {
16314 switch (level) {
16315 case REG_NONE:
16316 break;
16318 case REG_SZ:
16319 break;
16321 case REG_BINARY:
16322 break;
16324 case REG_DWORD:
16325 break;
16327 case REG_MULTI_SZ:
16328 break;
16330 default:
16331 break;
16335 return NDR_ERR_SUCCESS;
16338 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
16340 int level;
16341 level = ndr_print_get_switch_value(ndr, r);
16342 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
16343 switch (level) {
16344 case REG_NONE:
16345 break;
16347 case REG_SZ:
16348 ndr_print_string(ndr, "string", r->string);
16349 break;
16351 case REG_BINARY:
16352 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
16353 break;
16355 case REG_DWORD:
16356 ndr_print_uint32(ndr, "value", r->value);
16357 break;
16359 case REG_MULTI_SZ:
16360 ndr_print_string_array(ndr, "string_array", r->string_array);
16361 break;
16363 default:
16364 ndr_print_DATA_BLOB(ndr, "data", r->data);
16365 break;
16370 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
16372 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16373 return NDR_ERR_SUCCESS;
16376 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
16378 uint32_t v;
16379 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16380 *r = v;
16381 return NDR_ERR_SUCCESS;
16384 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
16386 const char *val = NULL;
16388 switch (r) {
16389 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
16390 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
16391 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
16393 ndr_print_enum(ndr, name, "ENUM", val, r);
16396 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
16398 if (ndr_flags & NDR_SCALARS) {
16399 NDR_CHECK(ndr_push_align(ndr, 4));
16400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
16401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
16402 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16404 if (ndr_flags & NDR_BUFFERS) {
16406 return NDR_ERR_SUCCESS;
16409 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
16411 if (ndr_flags & NDR_SCALARS) {
16412 NDR_CHECK(ndr_pull_align(ndr, 4));
16413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
16414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
16415 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16417 if (ndr_flags & NDR_BUFFERS) {
16419 return NDR_ERR_SUCCESS;
16422 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
16424 ndr_print_struct(ndr, name, "spoolss_FormSize");
16425 ndr->depth++;
16426 ndr_print_uint32(ndr, "width", r->width);
16427 ndr_print_uint32(ndr, "height", r->height);
16428 ndr->depth--;
16431 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
16433 if (ndr_flags & NDR_SCALARS) {
16434 NDR_CHECK(ndr_push_align(ndr, 4));
16435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
16436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
16437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
16438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
16439 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16441 if (ndr_flags & NDR_BUFFERS) {
16443 return NDR_ERR_SUCCESS;
16446 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
16448 if (ndr_flags & NDR_SCALARS) {
16449 NDR_CHECK(ndr_pull_align(ndr, 4));
16450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
16451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
16452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
16453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
16454 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16456 if (ndr_flags & NDR_BUFFERS) {
16458 return NDR_ERR_SUCCESS;
16461 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
16463 ndr_print_struct(ndr, name, "spoolss_FormArea");
16464 ndr->depth++;
16465 ndr_print_uint32(ndr, "left", r->left);
16466 ndr_print_uint32(ndr, "top", r->top);
16467 ndr_print_uint32(ndr, "right", r->right);
16468 ndr_print_uint32(ndr, "bottom", r->bottom);
16469 ndr->depth--;
16472 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
16474 if (ndr_flags & NDR_SCALARS) {
16475 NDR_CHECK(ndr_push_align(ndr, 5));
16476 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16478 uint32_t _flags_save_string = ndr->flags;
16479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16481 ndr->flags = _flags_save_string;
16483 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16484 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16485 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16487 if (ndr_flags & NDR_BUFFERS) {
16489 uint32_t _flags_save_string = ndr->flags;
16490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16491 if (r->form_name) {
16492 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16493 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16494 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16496 ndr->flags = _flags_save_string;
16499 return NDR_ERR_SUCCESS;
16502 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
16504 uint32_t _ptr_form_name;
16505 TALLOC_CTX *_mem_save_form_name_0;
16506 if (ndr_flags & NDR_SCALARS) {
16507 NDR_CHECK(ndr_pull_align(ndr, 5));
16508 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16510 uint32_t _flags_save_string = ndr->flags;
16511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16513 if (_ptr_form_name) {
16514 NDR_PULL_ALLOC(ndr, r->form_name);
16515 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16516 } else {
16517 r->form_name = NULL;
16519 ndr->flags = _flags_save_string;
16521 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16522 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16523 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16525 if (ndr_flags & NDR_BUFFERS) {
16527 uint32_t _flags_save_string = ndr->flags;
16528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16529 if (r->form_name) {
16530 uint32_t _relative_save_offset;
16531 _relative_save_offset = ndr->offset;
16532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16533 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16534 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16537 if (ndr->offset > ndr->relative_highest_offset) {
16538 ndr->relative_highest_offset = ndr->offset;
16540 ndr->offset = _relative_save_offset;
16542 ndr->flags = _flags_save_string;
16545 return NDR_ERR_SUCCESS;
16548 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
16550 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
16551 ndr->depth++;
16552 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16553 ndr_print_ptr(ndr, "form_name", r->form_name);
16554 ndr->depth++;
16555 if (r->form_name) {
16556 ndr_print_string(ndr, "form_name", r->form_name);
16558 ndr->depth--;
16559 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16560 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16561 ndr->depth--;
16564 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16566 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
16569 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16572 return NDR_ERR_SUCCESS;
16575 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16577 uint32_t v;
16578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16579 *r = v;
16580 return NDR_ERR_SUCCESS;
16583 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16585 ndr_print_uint32(ndr, name, r);
16586 ndr->depth++;
16587 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16588 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16589 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16590 ndr->depth--;
16593 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16595 if (ndr_flags & NDR_SCALARS) {
16596 NDR_CHECK(ndr_push_align(ndr, 5));
16597 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16599 uint32_t _flags_save_string = ndr->flags;
16600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16601 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16602 ndr->flags = _flags_save_string;
16604 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16605 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16607 uint32_t _flags_save_string = ndr->flags;
16608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16610 ndr->flags = _flags_save_string;
16612 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16614 uint32_t _flags_save_string = ndr->flags;
16615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16617 ndr->flags = _flags_save_string;
16619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16621 uint32_t _flags_save_string = ndr->flags;
16622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16623 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16624 ndr->flags = _flags_save_string;
16626 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
16627 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
16628 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16630 if (ndr_flags & NDR_BUFFERS) {
16632 uint32_t _flags_save_string = ndr->flags;
16633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16634 if (r->form_name) {
16635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16639 ndr->flags = _flags_save_string;
16642 uint32_t _flags_save_string = ndr->flags;
16643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16644 if (r->keyword) {
16645 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
16646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16647 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
16649 ndr->flags = _flags_save_string;
16652 uint32_t _flags_save_string = ndr->flags;
16653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16654 if (r->mui_dll) {
16655 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
16656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16657 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
16659 ndr->flags = _flags_save_string;
16662 uint32_t _flags_save_string = ndr->flags;
16663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16664 if (r->display_name) {
16665 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
16666 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16667 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
16669 ndr->flags = _flags_save_string;
16672 return NDR_ERR_SUCCESS;
16675 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16677 uint32_t _ptr_form_name;
16678 TALLOC_CTX *_mem_save_form_name_0;
16679 uint32_t _ptr_keyword;
16680 TALLOC_CTX *_mem_save_keyword_0;
16681 uint32_t _ptr_mui_dll;
16682 TALLOC_CTX *_mem_save_mui_dll_0;
16683 uint32_t _ptr_display_name;
16684 TALLOC_CTX *_mem_save_display_name_0;
16685 if (ndr_flags & NDR_SCALARS) {
16686 NDR_CHECK(ndr_pull_align(ndr, 5));
16687 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16689 uint32_t _flags_save_string = ndr->flags;
16690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16692 if (_ptr_form_name) {
16693 NDR_PULL_ALLOC(ndr, r->form_name);
16694 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16695 } else {
16696 r->form_name = NULL;
16698 ndr->flags = _flags_save_string;
16700 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16701 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16703 uint32_t _flags_save_string = ndr->flags;
16704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16706 if (_ptr_keyword) {
16707 NDR_PULL_ALLOC(ndr, r->keyword);
16708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16709 } else {
16710 r->keyword = NULL;
16712 ndr->flags = _flags_save_string;
16714 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16716 uint32_t _flags_save_string = ndr->flags;
16717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16719 if (_ptr_mui_dll) {
16720 NDR_PULL_ALLOC(ndr, r->mui_dll);
16721 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16722 } else {
16723 r->mui_dll = NULL;
16725 ndr->flags = _flags_save_string;
16727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16729 uint32_t _flags_save_string = ndr->flags;
16730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16732 if (_ptr_display_name) {
16733 NDR_PULL_ALLOC(ndr, r->display_name);
16734 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16735 } else {
16736 r->display_name = NULL;
16738 ndr->flags = _flags_save_string;
16740 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16741 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16742 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16744 if (ndr_flags & NDR_BUFFERS) {
16746 uint32_t _flags_save_string = ndr->flags;
16747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16748 if (r->form_name) {
16749 uint32_t _relative_save_offset;
16750 _relative_save_offset = ndr->offset;
16751 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16752 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16753 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16754 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16756 if (ndr->offset > ndr->relative_highest_offset) {
16757 ndr->relative_highest_offset = ndr->offset;
16759 ndr->offset = _relative_save_offset;
16761 ndr->flags = _flags_save_string;
16764 uint32_t _flags_save_string = ndr->flags;
16765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16766 if (r->keyword) {
16767 uint32_t _relative_save_offset;
16768 _relative_save_offset = ndr->offset;
16769 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16770 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16771 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16772 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16774 if (ndr->offset > ndr->relative_highest_offset) {
16775 ndr->relative_highest_offset = ndr->offset;
16777 ndr->offset = _relative_save_offset;
16779 ndr->flags = _flags_save_string;
16782 uint32_t _flags_save_string = ndr->flags;
16783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16784 if (r->mui_dll) {
16785 uint32_t _relative_save_offset;
16786 _relative_save_offset = ndr->offset;
16787 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16788 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16789 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16790 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16792 if (ndr->offset > ndr->relative_highest_offset) {
16793 ndr->relative_highest_offset = ndr->offset;
16795 ndr->offset = _relative_save_offset;
16797 ndr->flags = _flags_save_string;
16800 uint32_t _flags_save_string = ndr->flags;
16801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16802 if (r->display_name) {
16803 uint32_t _relative_save_offset;
16804 _relative_save_offset = ndr->offset;
16805 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16806 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16807 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16808 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16810 if (ndr->offset > ndr->relative_highest_offset) {
16811 ndr->relative_highest_offset = ndr->offset;
16813 ndr->offset = _relative_save_offset;
16815 ndr->flags = _flags_save_string;
16818 return NDR_ERR_SUCCESS;
16821 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16823 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16824 ndr->depth++;
16825 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16826 ndr_print_ptr(ndr, "form_name", r->form_name);
16827 ndr->depth++;
16828 if (r->form_name) {
16829 ndr_print_string(ndr, "form_name", r->form_name);
16831 ndr->depth--;
16832 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16833 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16834 ndr_print_ptr(ndr, "keyword", r->keyword);
16835 ndr->depth++;
16836 if (r->keyword) {
16837 ndr_print_string(ndr, "keyword", r->keyword);
16839 ndr->depth--;
16840 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16841 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16842 ndr->depth++;
16843 if (r->mui_dll) {
16844 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16846 ndr->depth--;
16847 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16848 ndr_print_ptr(ndr, "display_name", r->display_name);
16849 ndr->depth++;
16850 if (r->display_name) {
16851 ndr_print_string(ndr, "display_name", r->display_name);
16853 ndr->depth--;
16854 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16855 ndr_print_uint16(ndr, "unused", r->unused);
16856 ndr->depth--;
16859 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16861 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16864 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16866 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16868 uint32_t _flags_save_UNION = ndr->flags;
16869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16870 if (ndr_flags & NDR_SCALARS) {
16871 int level = ndr_push_get_switch_value(ndr, r);
16872 NDR_CHECK(ndr_push_union_align(ndr, 5));
16873 switch (level) {
16874 case 1: {
16875 NDR_CHECK(ndr_push_align(ndr, 5));
16876 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16877 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16878 break; }
16880 case 2: {
16881 NDR_CHECK(ndr_push_align(ndr, 5));
16882 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16883 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16884 break; }
16886 default: {
16887 break; }
16891 if (ndr_flags & NDR_BUFFERS) {
16892 int level = ndr_push_get_switch_value(ndr, r);
16893 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16894 switch (level) {
16895 case 1:
16896 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16897 break;
16899 case 2:
16900 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16901 break;
16903 default:
16904 break;
16908 ndr->flags = _flags_save_UNION;
16910 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16911 return NDR_ERR_SUCCESS;
16914 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16916 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16917 int level;
16919 uint32_t _flags_save_UNION = ndr->flags;
16920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16921 level = ndr_pull_get_switch_value(ndr, r);
16922 if (ndr_flags & NDR_SCALARS) {
16923 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16924 switch (level) {
16925 case 1: {
16926 NDR_CHECK(ndr_pull_align(ndr, 5));
16927 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16928 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16929 break; }
16931 case 2: {
16932 NDR_CHECK(ndr_pull_align(ndr, 5));
16933 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16934 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16935 break; }
16937 default: {
16938 break; }
16942 if (ndr_flags & NDR_BUFFERS) {
16943 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16944 switch (level) {
16945 case 1:
16946 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16947 break;
16949 case 2:
16950 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16951 break;
16953 default:
16954 break;
16958 ndr->flags = _flags_save_UNION;
16960 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16961 return NDR_ERR_SUCCESS;
16964 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16966 int level;
16968 uint32_t _flags_save_UNION = ndr->flags;
16969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16970 level = ndr_print_get_switch_value(ndr, r);
16971 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16972 switch (level) {
16973 case 1:
16974 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16975 break;
16977 case 2:
16978 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16979 break;
16981 default:
16982 break;
16985 ndr->flags = _flags_save_UNION;
16989 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16991 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16992 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16995 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16997 if (ndr_flags & NDR_SCALARS) {
16998 NDR_CHECK(ndr_push_align(ndr, 5));
16999 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17001 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17002 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17003 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17005 if (ndr_flags & NDR_BUFFERS) {
17006 if (r->form_name) {
17007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17013 return NDR_ERR_SUCCESS;
17016 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
17018 uint32_t _ptr_form_name;
17019 TALLOC_CTX *_mem_save_form_name_0;
17020 if (ndr_flags & NDR_SCALARS) {
17021 NDR_CHECK(ndr_pull_align(ndr, 5));
17022 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17023 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17024 if (_ptr_form_name) {
17025 NDR_PULL_ALLOC(ndr, r->form_name);
17026 } else {
17027 r->form_name = NULL;
17029 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17030 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17031 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17033 if (ndr_flags & NDR_BUFFERS) {
17034 if (r->form_name) {
17035 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17036 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17037 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17038 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17039 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
17040 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
17042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
17043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
17044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17047 return NDR_ERR_SUCCESS;
17050 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
17052 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
17053 ndr->depth++;
17054 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17055 ndr_print_ptr(ndr, "form_name", r->form_name);
17056 ndr->depth++;
17057 if (r->form_name) {
17058 ndr_print_string(ndr, "form_name", r->form_name);
17060 ndr->depth--;
17061 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17062 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17063 ndr->depth--;
17066 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
17068 if (ndr_flags & NDR_SCALARS) {
17069 NDR_CHECK(ndr_push_align(ndr, 5));
17070 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17072 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17073 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
17075 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
17076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
17077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
17078 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
17079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
17080 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17082 if (ndr_flags & NDR_BUFFERS) {
17083 if (r->form_name) {
17084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17087 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17089 if (r->keyword) {
17090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17092 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17093 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
17095 if (r->mui_dll) {
17096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17098 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17099 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17101 if (r->display_name) {
17102 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17104 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17105 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17108 return NDR_ERR_SUCCESS;
17111 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
17113 uint32_t _ptr_form_name;
17114 TALLOC_CTX *_mem_save_form_name_0;
17115 uint32_t _ptr_keyword;
17116 TALLOC_CTX *_mem_save_keyword_0;
17117 uint32_t _ptr_mui_dll;
17118 TALLOC_CTX *_mem_save_mui_dll_0;
17119 uint32_t _ptr_display_name;
17120 TALLOC_CTX *_mem_save_display_name_0;
17121 if (ndr_flags & NDR_SCALARS) {
17122 NDR_CHECK(ndr_pull_align(ndr, 5));
17123 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17125 if (_ptr_form_name) {
17126 NDR_PULL_ALLOC(ndr, r->form_name);
17127 } else {
17128 r->form_name = NULL;
17130 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17131 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
17133 if (_ptr_keyword) {
17134 NDR_PULL_ALLOC(ndr, r->keyword);
17135 } else {
17136 r->keyword = NULL;
17138 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
17139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
17140 if (_ptr_mui_dll) {
17141 NDR_PULL_ALLOC(ndr, r->mui_dll);
17142 } else {
17143 r->mui_dll = NULL;
17145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
17146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
17147 if (_ptr_display_name) {
17148 NDR_PULL_ALLOC(ndr, r->display_name);
17149 } else {
17150 r->display_name = NULL;
17152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
17153 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17155 if (ndr_flags & NDR_BUFFERS) {
17156 if (r->form_name) {
17157 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17158 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17159 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17160 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17161 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
17162 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
17164 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
17165 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
17166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17168 if (r->keyword) {
17169 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
17170 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
17171 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
17172 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
17173 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
17174 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->keyword), ndr_get_array_length(ndr, &r->keyword));
17176 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
17177 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
17178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
17180 if (r->mui_dll) {
17181 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
17182 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
17183 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
17184 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
17185 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
17186 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
17188 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
17189 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
17190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
17192 if (r->display_name) {
17193 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17194 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
17195 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
17196 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
17197 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
17198 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->display_name), ndr_get_array_length(ndr, &r->display_name));
17200 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
17201 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
17202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
17205 return NDR_ERR_SUCCESS;
17208 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
17210 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
17211 ndr->depth++;
17212 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17213 ndr_print_ptr(ndr, "form_name", r->form_name);
17214 ndr->depth++;
17215 if (r->form_name) {
17216 ndr_print_string(ndr, "form_name", r->form_name);
17218 ndr->depth--;
17219 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17220 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17221 ndr_print_ptr(ndr, "keyword", r->keyword);
17222 ndr->depth++;
17223 if (r->keyword) {
17224 ndr_print_string(ndr, "keyword", r->keyword);
17226 ndr->depth--;
17227 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
17228 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
17229 ndr->depth++;
17230 if (r->mui_dll) {
17231 ndr_print_string(ndr, "mui_dll", r->mui_dll);
17233 ndr->depth--;
17234 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
17235 ndr_print_ptr(ndr, "display_name", r->display_name);
17236 ndr->depth++;
17237 if (r->display_name) {
17238 ndr_print_string(ndr, "display_name", r->display_name);
17240 ndr->depth--;
17241 ndr_print_uint32(ndr, "lang_id", r->lang_id);
17242 ndr->depth--;
17245 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
17247 if (ndr_flags & NDR_SCALARS) {
17248 int level = ndr_push_get_switch_value(ndr, r);
17249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17250 NDR_CHECK(ndr_push_union_align(ndr, 5));
17251 switch (level) {
17252 case 1: {
17253 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
17254 break; }
17256 case 2: {
17257 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
17258 break; }
17260 default:
17261 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17264 if (ndr_flags & NDR_BUFFERS) {
17265 int level = ndr_push_get_switch_value(ndr, r);
17266 switch (level) {
17267 case 1:
17268 if (r->info1) {
17269 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17271 break;
17273 case 2:
17274 if (r->info2) {
17275 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17277 break;
17279 default:
17280 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17283 return NDR_ERR_SUCCESS;
17286 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
17288 int level;
17289 uint32_t _level;
17290 TALLOC_CTX *_mem_save_info1_0;
17291 TALLOC_CTX *_mem_save_info2_0;
17292 level = ndr_pull_get_switch_value(ndr, r);
17293 if (ndr_flags & NDR_SCALARS) {
17294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17295 if (_level != level) {
17296 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
17298 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17299 switch (level) {
17300 case 1: {
17301 uint32_t _ptr_info1;
17302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
17303 if (_ptr_info1) {
17304 NDR_PULL_ALLOC(ndr, r->info1);
17305 } else {
17306 r->info1 = NULL;
17308 break; }
17310 case 2: {
17311 uint32_t _ptr_info2;
17312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
17313 if (_ptr_info2) {
17314 NDR_PULL_ALLOC(ndr, r->info2);
17315 } else {
17316 r->info2 = NULL;
17318 break; }
17320 default:
17321 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17324 if (ndr_flags & NDR_BUFFERS) {
17325 switch (level) {
17326 case 1:
17327 if (r->info1) {
17328 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17329 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
17330 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
17333 break;
17335 case 2:
17336 if (r->info2) {
17337 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17338 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
17339 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
17342 break;
17344 default:
17345 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17348 return NDR_ERR_SUCCESS;
17351 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
17353 int level;
17354 level = ndr_print_get_switch_value(ndr, r);
17355 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
17356 switch (level) {
17357 case 1:
17358 ndr_print_ptr(ndr, "info1", r->info1);
17359 ndr->depth++;
17360 if (r->info1) {
17361 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
17363 ndr->depth--;
17364 break;
17366 case 2:
17367 ndr_print_ptr(ndr, "info2", r->info2);
17368 ndr->depth++;
17369 if (r->info2) {
17370 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
17372 ndr->depth--;
17373 break;
17375 default:
17376 ndr_print_bad_level(ndr, name, level);
17380 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
17382 if (ndr_flags & NDR_SCALARS) {
17383 NDR_CHECK(ndr_push_align(ndr, 5));
17385 uint32_t _flags_save_string = ndr->flags;
17386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17387 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17388 ndr->flags = _flags_save_string;
17390 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17392 if (ndr_flags & NDR_BUFFERS) {
17394 uint32_t _flags_save_string = ndr->flags;
17395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17396 if (r->port_name) {
17397 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17398 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17399 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17401 ndr->flags = _flags_save_string;
17404 return NDR_ERR_SUCCESS;
17407 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
17409 uint32_t _ptr_port_name;
17410 TALLOC_CTX *_mem_save_port_name_0;
17411 if (ndr_flags & NDR_SCALARS) {
17412 NDR_CHECK(ndr_pull_align(ndr, 5));
17414 uint32_t _flags_save_string = ndr->flags;
17415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17417 if (_ptr_port_name) {
17418 NDR_PULL_ALLOC(ndr, r->port_name);
17419 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17420 } else {
17421 r->port_name = NULL;
17423 ndr->flags = _flags_save_string;
17425 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17427 if (ndr_flags & NDR_BUFFERS) {
17429 uint32_t _flags_save_string = ndr->flags;
17430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17431 if (r->port_name) {
17432 uint32_t _relative_save_offset;
17433 _relative_save_offset = ndr->offset;
17434 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17435 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17436 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17437 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17439 if (ndr->offset > ndr->relative_highest_offset) {
17440 ndr->relative_highest_offset = ndr->offset;
17442 ndr->offset = _relative_save_offset;
17444 ndr->flags = _flags_save_string;
17447 return NDR_ERR_SUCCESS;
17450 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
17452 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
17453 ndr->depth++;
17454 ndr_print_ptr(ndr, "port_name", r->port_name);
17455 ndr->depth++;
17456 if (r->port_name) {
17457 ndr_print_string(ndr, "port_name", r->port_name);
17459 ndr->depth--;
17460 ndr->depth--;
17463 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17465 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
17468 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17471 return NDR_ERR_SUCCESS;
17474 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17476 uint32_t v;
17477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17478 *r = v;
17479 return NDR_ERR_SUCCESS;
17482 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
17484 ndr_print_uint32(ndr, name, r);
17485 ndr->depth++;
17486 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
17487 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
17488 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
17489 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
17490 ndr->depth--;
17493 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
17495 if (ndr_flags & NDR_SCALARS) {
17496 NDR_CHECK(ndr_push_align(ndr, 5));
17498 uint32_t _flags_save_string = ndr->flags;
17499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17500 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17501 ndr->flags = _flags_save_string;
17504 uint32_t _flags_save_string = ndr->flags;
17505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17506 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17507 ndr->flags = _flags_save_string;
17510 uint32_t _flags_save_string = ndr->flags;
17511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17512 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
17513 ndr->flags = _flags_save_string;
17515 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
17516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
17517 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17519 if (ndr_flags & NDR_BUFFERS) {
17521 uint32_t _flags_save_string = ndr->flags;
17522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17523 if (r->port_name) {
17524 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17525 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17526 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17528 ndr->flags = _flags_save_string;
17531 uint32_t _flags_save_string = ndr->flags;
17532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17533 if (r->monitor_name) {
17534 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17535 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17536 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17538 ndr->flags = _flags_save_string;
17541 uint32_t _flags_save_string = ndr->flags;
17542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17543 if (r->description) {
17544 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
17545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
17546 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
17548 ndr->flags = _flags_save_string;
17551 return NDR_ERR_SUCCESS;
17554 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
17556 uint32_t _ptr_port_name;
17557 TALLOC_CTX *_mem_save_port_name_0;
17558 uint32_t _ptr_monitor_name;
17559 TALLOC_CTX *_mem_save_monitor_name_0;
17560 uint32_t _ptr_description;
17561 TALLOC_CTX *_mem_save_description_0;
17562 if (ndr_flags & NDR_SCALARS) {
17563 NDR_CHECK(ndr_pull_align(ndr, 5));
17565 uint32_t _flags_save_string = ndr->flags;
17566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17568 if (_ptr_port_name) {
17569 NDR_PULL_ALLOC(ndr, r->port_name);
17570 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17571 } else {
17572 r->port_name = NULL;
17574 ndr->flags = _flags_save_string;
17577 uint32_t _flags_save_string = ndr->flags;
17578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17579 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17580 if (_ptr_monitor_name) {
17581 NDR_PULL_ALLOC(ndr, r->monitor_name);
17582 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17583 } else {
17584 r->monitor_name = NULL;
17586 ndr->flags = _flags_save_string;
17589 uint32_t _flags_save_string = ndr->flags;
17590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
17592 if (_ptr_description) {
17593 NDR_PULL_ALLOC(ndr, r->description);
17594 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
17595 } else {
17596 r->description = NULL;
17598 ndr->flags = _flags_save_string;
17600 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
17601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
17602 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17604 if (ndr_flags & NDR_BUFFERS) {
17606 uint32_t _flags_save_string = ndr->flags;
17607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17608 if (r->port_name) {
17609 uint32_t _relative_save_offset;
17610 _relative_save_offset = ndr->offset;
17611 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17612 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17613 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17614 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17616 if (ndr->offset > ndr->relative_highest_offset) {
17617 ndr->relative_highest_offset = ndr->offset;
17619 ndr->offset = _relative_save_offset;
17621 ndr->flags = _flags_save_string;
17624 uint32_t _flags_save_string = ndr->flags;
17625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17626 if (r->monitor_name) {
17627 uint32_t _relative_save_offset;
17628 _relative_save_offset = ndr->offset;
17629 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17630 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17631 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17632 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17634 if (ndr->offset > ndr->relative_highest_offset) {
17635 ndr->relative_highest_offset = ndr->offset;
17637 ndr->offset = _relative_save_offset;
17639 ndr->flags = _flags_save_string;
17642 uint32_t _flags_save_string = ndr->flags;
17643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17644 if (r->description) {
17645 uint32_t _relative_save_offset;
17646 _relative_save_offset = ndr->offset;
17647 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17648 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17649 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17650 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17652 if (ndr->offset > ndr->relative_highest_offset) {
17653 ndr->relative_highest_offset = ndr->offset;
17655 ndr->offset = _relative_save_offset;
17657 ndr->flags = _flags_save_string;
17660 return NDR_ERR_SUCCESS;
17663 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17665 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17666 ndr->depth++;
17667 ndr_print_ptr(ndr, "port_name", r->port_name);
17668 ndr->depth++;
17669 if (r->port_name) {
17670 ndr_print_string(ndr, "port_name", r->port_name);
17672 ndr->depth--;
17673 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17674 ndr->depth++;
17675 if (r->monitor_name) {
17676 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17678 ndr->depth--;
17679 ndr_print_ptr(ndr, "description", r->description);
17680 ndr->depth++;
17681 if (r->description) {
17682 ndr_print_string(ndr, "description", r->description);
17684 ndr->depth--;
17685 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17686 ndr_print_uint32(ndr, "reserved", r->reserved);
17687 ndr->depth--;
17690 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17692 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17695 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17697 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17698 return NDR_ERR_SUCCESS;
17701 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17703 uint32_t v;
17704 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17705 *r = v;
17706 return NDR_ERR_SUCCESS;
17709 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17711 const char *val = NULL;
17713 switch (r) {
17714 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17715 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17716 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17717 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17718 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17719 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17720 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17721 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17722 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17723 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17724 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17725 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17726 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17728 ndr_print_enum(ndr, name, "ENUM", val, r);
17731 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17733 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17734 return NDR_ERR_SUCCESS;
17737 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17739 uint32_t v;
17740 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17741 *r = v;
17742 return NDR_ERR_SUCCESS;
17745 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17747 const char *val = NULL;
17749 switch (r) {
17750 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17751 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17752 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17754 ndr_print_enum(ndr, name, "ENUM", val, r);
17757 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17759 if (ndr_flags & NDR_SCALARS) {
17760 NDR_CHECK(ndr_push_align(ndr, 5));
17761 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17763 uint32_t _flags_save_string = ndr->flags;
17764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17765 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17766 ndr->flags = _flags_save_string;
17768 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17769 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17771 if (ndr_flags & NDR_BUFFERS) {
17773 uint32_t _flags_save_string = ndr->flags;
17774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17775 if (r->status_string) {
17776 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
17777 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17778 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
17780 ndr->flags = _flags_save_string;
17783 return NDR_ERR_SUCCESS;
17786 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17788 uint32_t _ptr_status_string;
17789 TALLOC_CTX *_mem_save_status_string_0;
17790 if (ndr_flags & NDR_SCALARS) {
17791 NDR_CHECK(ndr_pull_align(ndr, 5));
17792 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17794 uint32_t _flags_save_string = ndr->flags;
17795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17797 if (_ptr_status_string) {
17798 NDR_PULL_ALLOC(ndr, r->status_string);
17799 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17800 } else {
17801 r->status_string = NULL;
17803 ndr->flags = _flags_save_string;
17805 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17806 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17808 if (ndr_flags & NDR_BUFFERS) {
17810 uint32_t _flags_save_string = ndr->flags;
17811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17812 if (r->status_string) {
17813 uint32_t _relative_save_offset;
17814 _relative_save_offset = ndr->offset;
17815 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17816 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17817 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17818 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17820 if (ndr->offset > ndr->relative_highest_offset) {
17821 ndr->relative_highest_offset = ndr->offset;
17823 ndr->offset = _relative_save_offset;
17825 ndr->flags = _flags_save_string;
17828 return NDR_ERR_SUCCESS;
17831 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17833 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17834 ndr->depth++;
17835 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17836 ndr_print_ptr(ndr, "status_string", r->status_string);
17837 ndr->depth++;
17838 if (r->status_string) {
17839 ndr_print_string(ndr, "status_string", r->status_string);
17841 ndr->depth--;
17842 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17843 ndr->depth--;
17846 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17848 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17851 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17853 if (ndr_flags & NDR_SCALARS) {
17854 NDR_CHECK(ndr_push_align(ndr, 5));
17856 uint32_t _flags_save_string = ndr->flags;
17857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17859 ndr->flags = _flags_save_string;
17861 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17862 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17864 if (ndr_flags & NDR_BUFFERS) {
17866 uint32_t _flags_save_string = ndr->flags;
17867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17868 if (r->port_name) {
17869 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17870 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17871 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17873 ndr->flags = _flags_save_string;
17876 return NDR_ERR_SUCCESS;
17879 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17881 uint32_t _ptr_port_name;
17882 TALLOC_CTX *_mem_save_port_name_0;
17883 if (ndr_flags & NDR_SCALARS) {
17884 NDR_CHECK(ndr_pull_align(ndr, 5));
17886 uint32_t _flags_save_string = ndr->flags;
17887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17889 if (_ptr_port_name) {
17890 NDR_PULL_ALLOC(ndr, r->port_name);
17891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17892 } else {
17893 r->port_name = NULL;
17895 ndr->flags = _flags_save_string;
17897 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17898 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17900 if (ndr_flags & NDR_BUFFERS) {
17902 uint32_t _flags_save_string = ndr->flags;
17903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17904 if (r->port_name) {
17905 uint32_t _relative_save_offset;
17906 _relative_save_offset = ndr->offset;
17907 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17908 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17909 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17910 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17912 if (ndr->offset > ndr->relative_highest_offset) {
17913 ndr->relative_highest_offset = ndr->offset;
17915 ndr->offset = _relative_save_offset;
17917 ndr->flags = _flags_save_string;
17920 return NDR_ERR_SUCCESS;
17923 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17925 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17926 ndr->depth++;
17927 ndr_print_ptr(ndr, "port_name", r->port_name);
17928 ndr->depth++;
17929 if (r->port_name) {
17930 ndr_print_string(ndr, "port_name", r->port_name);
17932 ndr->depth--;
17933 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17934 ndr->depth--;
17937 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17939 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17942 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17944 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17946 uint32_t _flags_save_UNION = ndr->flags;
17947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17948 if (ndr_flags & NDR_SCALARS) {
17949 int level = ndr_push_get_switch_value(ndr, r);
17950 NDR_CHECK(ndr_push_union_align(ndr, 5));
17951 switch (level) {
17952 case 1: {
17953 NDR_CHECK(ndr_push_align(ndr, 5));
17954 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17955 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17956 break; }
17958 case 2: {
17959 NDR_CHECK(ndr_push_align(ndr, 5));
17960 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17961 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17962 break; }
17964 case 3: {
17965 NDR_CHECK(ndr_push_align(ndr, 5));
17966 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17967 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17968 break; }
17970 case 0xff: {
17971 NDR_CHECK(ndr_push_align(ndr, 5));
17972 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17973 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17974 break; }
17976 default: {
17977 break; }
17981 if (ndr_flags & NDR_BUFFERS) {
17982 int level = ndr_push_get_switch_value(ndr, r);
17983 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17984 switch (level) {
17985 case 1:
17986 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17987 break;
17989 case 2:
17990 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17991 break;
17993 case 3:
17994 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17995 break;
17997 case 0xff:
17998 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17999 break;
18001 default:
18002 break;
18006 ndr->flags = _flags_save_UNION;
18008 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18009 return NDR_ERR_SUCCESS;
18012 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
18014 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18015 int level;
18017 uint32_t _flags_save_UNION = ndr->flags;
18018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18019 level = ndr_pull_get_switch_value(ndr, r);
18020 if (ndr_flags & NDR_SCALARS) {
18021 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18022 switch (level) {
18023 case 1: {
18024 NDR_CHECK(ndr_pull_align(ndr, 5));
18025 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18026 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18027 break; }
18029 case 2: {
18030 NDR_CHECK(ndr_pull_align(ndr, 5));
18031 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18032 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18033 break; }
18035 case 3: {
18036 NDR_CHECK(ndr_pull_align(ndr, 5));
18037 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18038 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18039 break; }
18041 case 0xff: {
18042 NDR_CHECK(ndr_pull_align(ndr, 5));
18043 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18044 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
18045 break; }
18047 default: {
18048 break; }
18052 if (ndr_flags & NDR_BUFFERS) {
18053 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18054 switch (level) {
18055 case 1:
18056 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
18057 break;
18059 case 2:
18060 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
18061 break;
18063 case 3:
18064 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
18065 break;
18067 case 0xff:
18068 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
18069 break;
18071 default:
18072 break;
18076 ndr->flags = _flags_save_UNION;
18078 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18079 return NDR_ERR_SUCCESS;
18082 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
18084 int level;
18086 uint32_t _flags_save_UNION = ndr->flags;
18087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18088 level = ndr_print_get_switch_value(ndr, r);
18089 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
18090 switch (level) {
18091 case 1:
18092 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
18093 break;
18095 case 2:
18096 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
18097 break;
18099 case 3:
18100 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
18101 break;
18103 case 0xff:
18104 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
18105 break;
18107 default:
18108 break;
18111 ndr->flags = _flags_save_UNION;
18115 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
18117 if (ndr_flags & NDR_SCALARS) {
18118 NDR_CHECK(ndr_push_align(ndr, 5));
18120 uint32_t _flags_save_string = ndr->flags;
18121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18122 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18123 ndr->flags = _flags_save_string;
18125 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18127 if (ndr_flags & NDR_BUFFERS) {
18129 uint32_t _flags_save_string = ndr->flags;
18130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18131 if (r->monitor_name) {
18132 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18133 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18134 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18136 ndr->flags = _flags_save_string;
18139 return NDR_ERR_SUCCESS;
18142 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
18144 uint32_t _ptr_monitor_name;
18145 TALLOC_CTX *_mem_save_monitor_name_0;
18146 if (ndr_flags & NDR_SCALARS) {
18147 NDR_CHECK(ndr_pull_align(ndr, 5));
18149 uint32_t _flags_save_string = ndr->flags;
18150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18152 if (_ptr_monitor_name) {
18153 NDR_PULL_ALLOC(ndr, r->monitor_name);
18154 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18155 } else {
18156 r->monitor_name = NULL;
18158 ndr->flags = _flags_save_string;
18160 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18162 if (ndr_flags & NDR_BUFFERS) {
18164 uint32_t _flags_save_string = ndr->flags;
18165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18166 if (r->monitor_name) {
18167 uint32_t _relative_save_offset;
18168 _relative_save_offset = ndr->offset;
18169 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18170 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18171 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18172 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18174 if (ndr->offset > ndr->relative_highest_offset) {
18175 ndr->relative_highest_offset = ndr->offset;
18177 ndr->offset = _relative_save_offset;
18179 ndr->flags = _flags_save_string;
18182 return NDR_ERR_SUCCESS;
18185 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
18187 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
18188 ndr->depth++;
18189 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18190 ndr->depth++;
18191 if (r->monitor_name) {
18192 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18194 ndr->depth--;
18195 ndr->depth--;
18198 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18200 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
18203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
18205 if (ndr_flags & NDR_SCALARS) {
18206 NDR_CHECK(ndr_push_align(ndr, 5));
18208 uint32_t _flags_save_string = ndr->flags;
18209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18210 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18211 ndr->flags = _flags_save_string;
18214 uint32_t _flags_save_string = ndr->flags;
18215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18216 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
18217 ndr->flags = _flags_save_string;
18220 uint32_t _flags_save_string = ndr->flags;
18221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18222 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
18223 ndr->flags = _flags_save_string;
18225 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18227 if (ndr_flags & NDR_BUFFERS) {
18229 uint32_t _flags_save_string = ndr->flags;
18230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18231 if (r->monitor_name) {
18232 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18233 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18234 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18236 ndr->flags = _flags_save_string;
18239 uint32_t _flags_save_string = ndr->flags;
18240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18241 if (r->environment) {
18242 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
18243 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
18244 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
18246 ndr->flags = _flags_save_string;
18249 uint32_t _flags_save_string = ndr->flags;
18250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18251 if (r->dll_name) {
18252 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
18253 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18254 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
18256 ndr->flags = _flags_save_string;
18259 return NDR_ERR_SUCCESS;
18262 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
18264 uint32_t _ptr_monitor_name;
18265 TALLOC_CTX *_mem_save_monitor_name_0;
18266 uint32_t _ptr_environment;
18267 TALLOC_CTX *_mem_save_environment_0;
18268 uint32_t _ptr_dll_name;
18269 TALLOC_CTX *_mem_save_dll_name_0;
18270 if (ndr_flags & NDR_SCALARS) {
18271 NDR_CHECK(ndr_pull_align(ndr, 5));
18273 uint32_t _flags_save_string = ndr->flags;
18274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18276 if (_ptr_monitor_name) {
18277 NDR_PULL_ALLOC(ndr, r->monitor_name);
18278 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18279 } else {
18280 r->monitor_name = NULL;
18282 ndr->flags = _flags_save_string;
18285 uint32_t _flags_save_string = ndr->flags;
18286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
18288 if (_ptr_environment) {
18289 NDR_PULL_ALLOC(ndr, r->environment);
18290 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
18291 } else {
18292 r->environment = NULL;
18294 ndr->flags = _flags_save_string;
18297 uint32_t _flags_save_string = ndr->flags;
18298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
18300 if (_ptr_dll_name) {
18301 NDR_PULL_ALLOC(ndr, r->dll_name);
18302 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
18303 } else {
18304 r->dll_name = NULL;
18306 ndr->flags = _flags_save_string;
18308 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18310 if (ndr_flags & NDR_BUFFERS) {
18312 uint32_t _flags_save_string = ndr->flags;
18313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18314 if (r->monitor_name) {
18315 uint32_t _relative_save_offset;
18316 _relative_save_offset = ndr->offset;
18317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18318 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18319 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18322 if (ndr->offset > ndr->relative_highest_offset) {
18323 ndr->relative_highest_offset = ndr->offset;
18325 ndr->offset = _relative_save_offset;
18327 ndr->flags = _flags_save_string;
18330 uint32_t _flags_save_string = ndr->flags;
18331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18332 if (r->environment) {
18333 uint32_t _relative_save_offset;
18334 _relative_save_offset = ndr->offset;
18335 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
18336 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
18337 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
18338 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
18339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
18340 if (ndr->offset > ndr->relative_highest_offset) {
18341 ndr->relative_highest_offset = ndr->offset;
18343 ndr->offset = _relative_save_offset;
18345 ndr->flags = _flags_save_string;
18348 uint32_t _flags_save_string = ndr->flags;
18349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18350 if (r->dll_name) {
18351 uint32_t _relative_save_offset;
18352 _relative_save_offset = ndr->offset;
18353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
18354 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18355 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
18356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
18358 if (ndr->offset > ndr->relative_highest_offset) {
18359 ndr->relative_highest_offset = ndr->offset;
18361 ndr->offset = _relative_save_offset;
18363 ndr->flags = _flags_save_string;
18366 return NDR_ERR_SUCCESS;
18369 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
18371 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
18372 ndr->depth++;
18373 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18374 ndr->depth++;
18375 if (r->monitor_name) {
18376 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18378 ndr->depth--;
18379 ndr_print_ptr(ndr, "environment", r->environment);
18380 ndr->depth++;
18381 if (r->environment) {
18382 ndr_print_string(ndr, "environment", r->environment);
18384 ndr->depth--;
18385 ndr_print_ptr(ndr, "dll_name", r->dll_name);
18386 ndr->depth++;
18387 if (r->dll_name) {
18388 ndr_print_string(ndr, "dll_name", r->dll_name);
18390 ndr->depth--;
18391 ndr->depth--;
18394 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
18396 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
18399 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
18401 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18403 uint32_t _flags_save_UNION = ndr->flags;
18404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18405 if (ndr_flags & NDR_SCALARS) {
18406 int level = ndr_push_get_switch_value(ndr, r);
18407 NDR_CHECK(ndr_push_union_align(ndr, 5));
18408 switch (level) {
18409 case 1: {
18410 NDR_CHECK(ndr_push_align(ndr, 5));
18411 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18412 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18413 break; }
18415 case 2: {
18416 NDR_CHECK(ndr_push_align(ndr, 5));
18417 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18418 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18419 break; }
18421 default: {
18422 break; }
18426 if (ndr_flags & NDR_BUFFERS) {
18427 int level = ndr_push_get_switch_value(ndr, r);
18428 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18429 switch (level) {
18430 case 1:
18431 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18432 break;
18434 case 2:
18435 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18436 break;
18438 default:
18439 break;
18443 ndr->flags = _flags_save_UNION;
18445 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18446 return NDR_ERR_SUCCESS;
18449 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
18451 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18452 int level;
18454 uint32_t _flags_save_UNION = ndr->flags;
18455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18456 level = ndr_pull_get_switch_value(ndr, r);
18457 if (ndr_flags & NDR_SCALARS) {
18458 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18459 switch (level) {
18460 case 1: {
18461 NDR_CHECK(ndr_pull_align(ndr, 5));
18462 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18463 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18464 break; }
18466 case 2: {
18467 NDR_CHECK(ndr_pull_align(ndr, 5));
18468 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18469 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18470 break; }
18472 default: {
18473 break; }
18477 if (ndr_flags & NDR_BUFFERS) {
18478 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18479 switch (level) {
18480 case 1:
18481 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18482 break;
18484 case 2:
18485 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18486 break;
18488 default:
18489 break;
18493 ndr->flags = _flags_save_UNION;
18495 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18496 return NDR_ERR_SUCCESS;
18499 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
18501 int level;
18503 uint32_t _flags_save_UNION = ndr->flags;
18504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18505 level = ndr_print_get_switch_value(ndr, r);
18506 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
18507 switch (level) {
18508 case 1:
18509 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
18510 break;
18512 case 2:
18513 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
18514 break;
18516 default:
18517 break;
18520 ndr->flags = _flags_save_UNION;
18524 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
18526 if (ndr_flags & NDR_SCALARS) {
18527 NDR_CHECK(ndr_push_align(ndr, 5));
18529 uint32_t _flags_save_string = ndr->flags;
18530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
18532 ndr->flags = _flags_save_string;
18534 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18536 if (ndr_flags & NDR_BUFFERS) {
18538 uint32_t _flags_save_string = ndr->flags;
18539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18540 if (r->name_array) {
18541 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
18542 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
18543 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
18545 ndr->flags = _flags_save_string;
18548 return NDR_ERR_SUCCESS;
18551 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
18553 uint32_t _ptr_name_array;
18554 TALLOC_CTX *_mem_save_name_array_0;
18555 if (ndr_flags & NDR_SCALARS) {
18556 NDR_CHECK(ndr_pull_align(ndr, 5));
18558 uint32_t _flags_save_string = ndr->flags;
18559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
18561 if (_ptr_name_array) {
18562 NDR_PULL_ALLOC(ndr, r->name_array);
18563 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
18564 } else {
18565 r->name_array = NULL;
18567 ndr->flags = _flags_save_string;
18569 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18571 if (ndr_flags & NDR_BUFFERS) {
18573 uint32_t _flags_save_string = ndr->flags;
18574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18575 if (r->name_array) {
18576 uint32_t _relative_save_offset;
18577 _relative_save_offset = ndr->offset;
18578 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
18579 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
18580 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
18581 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
18582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
18583 if (ndr->offset > ndr->relative_highest_offset) {
18584 ndr->relative_highest_offset = ndr->offset;
18586 ndr->offset = _relative_save_offset;
18588 ndr->flags = _flags_save_string;
18591 return NDR_ERR_SUCCESS;
18594 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
18596 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
18597 ndr->depth++;
18598 ndr_print_ptr(ndr, "name_array", r->name_array);
18599 ndr->depth++;
18600 if (r->name_array) {
18601 ndr_print_string(ndr, "name_array", r->name_array);
18603 ndr->depth--;
18604 ndr->depth--;
18607 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18609 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
18612 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
18614 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18616 uint32_t _flags_save_UNION = ndr->flags;
18617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18618 if (ndr_flags & NDR_SCALARS) {
18619 int level = ndr_push_get_switch_value(ndr, r);
18620 NDR_CHECK(ndr_push_union_align(ndr, 5));
18621 switch (level) {
18622 case 1: {
18623 NDR_CHECK(ndr_push_align(ndr, 5));
18624 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18625 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18626 break; }
18628 default: {
18629 break; }
18633 if (ndr_flags & NDR_BUFFERS) {
18634 int level = ndr_push_get_switch_value(ndr, r);
18635 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18636 switch (level) {
18637 case 1:
18638 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18639 break;
18641 default:
18642 break;
18646 ndr->flags = _flags_save_UNION;
18648 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18649 return NDR_ERR_SUCCESS;
18652 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18654 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18655 int level;
18657 uint32_t _flags_save_UNION = ndr->flags;
18658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18659 level = ndr_pull_get_switch_value(ndr, r);
18660 if (ndr_flags & NDR_SCALARS) {
18661 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18662 switch (level) {
18663 case 1: {
18664 NDR_CHECK(ndr_pull_align(ndr, 5));
18665 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18666 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18667 break; }
18669 default: {
18670 break; }
18674 if (ndr_flags & NDR_BUFFERS) {
18675 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18676 switch (level) {
18677 case 1:
18678 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18679 break;
18681 default:
18682 break;
18686 ndr->flags = _flags_save_UNION;
18688 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18689 return NDR_ERR_SUCCESS;
18692 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18694 int level;
18696 uint32_t _flags_save_UNION = ndr->flags;
18697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18698 level = ndr_print_get_switch_value(ndr, r);
18699 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18700 switch (level) {
18701 case 1:
18702 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18703 break;
18705 default:
18706 break;
18709 ndr->flags = _flags_save_UNION;
18713 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18716 return NDR_ERR_SUCCESS;
18719 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18721 uint32_t v;
18722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18723 *r = v;
18724 return NDR_ERR_SUCCESS;
18727 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18729 ndr_print_uint32(ndr, name, r);
18730 ndr->depth++;
18731 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18732 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18733 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18734 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18735 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18736 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18737 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18738 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18739 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18740 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18741 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18742 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18743 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18752 ndr->depth--;
18755 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18757 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18758 return NDR_ERR_SUCCESS;
18761 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18763 uint16_t v;
18764 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18765 *r = v;
18766 return NDR_ERR_SUCCESS;
18769 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18771 const char *val = NULL;
18773 switch (r) {
18774 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18775 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18776 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18777 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18778 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18779 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18780 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18781 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18782 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18783 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18784 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18785 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18786 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18787 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18788 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18789 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18790 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18791 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18792 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18793 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18794 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18795 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18796 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18797 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18799 ndr_print_enum(ndr, name, "ENUM", val, r);
18802 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18804 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18805 return NDR_ERR_SUCCESS;
18808 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18810 uint16_t v;
18811 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18812 *r = v;
18813 return NDR_ERR_SUCCESS;
18816 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18818 const char *val = NULL;
18820 switch (r) {
18821 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18822 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18823 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18824 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18825 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18826 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18827 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18828 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18829 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18830 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18831 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18832 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18833 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18834 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18835 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18836 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18837 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18838 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18839 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18840 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18841 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18842 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18843 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18844 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18845 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18846 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18847 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18848 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18850 ndr_print_enum(ndr, name, "ENUM", val, r);
18853 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18855 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18856 return NDR_ERR_SUCCESS;
18859 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18861 uint16_t v;
18862 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18863 *r = v;
18864 return NDR_ERR_SUCCESS;
18867 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18869 const char *val = NULL;
18871 switch (r) {
18872 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18873 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18875 ndr_print_enum(ndr, name, "ENUM", val, r);
18878 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18880 if (ndr_flags & NDR_SCALARS) {
18881 int level = ndr_push_get_switch_value(ndr, r);
18882 NDR_CHECK(ndr_push_union_align(ndr, 2));
18883 switch (level) {
18884 case PRINTER_NOTIFY_TYPE: {
18885 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18886 break; }
18888 case JOB_NOTIFY_TYPE: {
18889 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18890 break; }
18892 default: {
18893 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18894 break; }
18898 if (ndr_flags & NDR_BUFFERS) {
18899 int level = ndr_push_get_switch_value(ndr, r);
18900 switch (level) {
18901 case PRINTER_NOTIFY_TYPE:
18902 break;
18904 case JOB_NOTIFY_TYPE:
18905 break;
18907 default:
18908 break;
18912 return NDR_ERR_SUCCESS;
18915 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18917 int level;
18918 level = ndr_pull_get_switch_value(ndr, r);
18919 if (ndr_flags & NDR_SCALARS) {
18920 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18921 switch (level) {
18922 case PRINTER_NOTIFY_TYPE: {
18923 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18924 break; }
18926 case JOB_NOTIFY_TYPE: {
18927 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18928 break; }
18930 default: {
18931 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18932 break; }
18936 if (ndr_flags & NDR_BUFFERS) {
18937 switch (level) {
18938 case PRINTER_NOTIFY_TYPE:
18939 break;
18941 case JOB_NOTIFY_TYPE:
18942 break;
18944 default:
18945 break;
18949 return NDR_ERR_SUCCESS;
18952 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18954 uint32_t cntr_fields_1;
18955 if (ndr_flags & NDR_SCALARS) {
18956 NDR_CHECK(ndr_push_align(ndr, 5));
18957 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18958 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18963 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18965 if (ndr_flags & NDR_BUFFERS) {
18966 if (r->fields) {
18967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18968 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18969 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18970 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18974 return NDR_ERR_SUCCESS;
18977 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18979 uint32_t _ptr_fields;
18980 uint32_t cntr_fields_1;
18981 TALLOC_CTX *_mem_save_fields_0;
18982 TALLOC_CTX *_mem_save_fields_1;
18983 if (ndr_flags & NDR_SCALARS) {
18984 NDR_CHECK(ndr_pull_align(ndr, 5));
18985 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18986 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18990 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18991 if (_ptr_fields) {
18992 NDR_PULL_ALLOC(ndr, r->fields);
18993 } else {
18994 r->fields = NULL;
18996 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18998 if (ndr_flags & NDR_BUFFERS) {
18999 if (r->fields) {
19000 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
19001 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
19002 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
19003 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
19004 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
19005 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
19006 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
19007 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
19008 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
19010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
19011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
19013 if (r->fields) {
19014 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
19017 return NDR_ERR_SUCCESS;
19020 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
19022 uint32_t cntr_fields_1;
19023 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
19024 ndr->depth++;
19025 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19026 ndr_print_uint16(ndr, "u1", r->u1);
19027 ndr_print_uint32(ndr, "u2", r->u2);
19028 ndr_print_uint32(ndr, "u3", r->u3);
19029 ndr_print_uint32(ndr, "count", r->count);
19030 ndr_print_ptr(ndr, "fields", r->fields);
19031 ndr->depth++;
19032 if (r->fields) {
19033 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
19034 ndr->depth++;
19035 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
19036 char *idx_1=NULL;
19037 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
19038 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
19039 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
19040 free(idx_1);
19043 ndr->depth--;
19045 ndr->depth--;
19046 ndr->depth--;
19049 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19052 return NDR_ERR_SUCCESS;
19055 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19057 uint32_t v;
19058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19059 *r = v;
19060 return NDR_ERR_SUCCESS;
19063 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19065 ndr_print_uint32(ndr, name, r);
19066 ndr->depth++;
19067 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
19068 ndr->depth--;
19071 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
19073 uint32_t cntr_types_1;
19074 if (ndr_flags & NDR_SCALARS) {
19075 NDR_CHECK(ndr_push_align(ndr, 5));
19076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19077 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
19078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19079 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
19080 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19082 if (ndr_flags & NDR_BUFFERS) {
19083 if (r->types) {
19084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19085 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19086 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
19088 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19089 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
19093 return NDR_ERR_SUCCESS;
19096 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
19098 uint32_t _ptr_types;
19099 uint32_t cntr_types_1;
19100 TALLOC_CTX *_mem_save_types_0;
19101 TALLOC_CTX *_mem_save_types_1;
19102 if (ndr_flags & NDR_SCALARS) {
19103 NDR_CHECK(ndr_pull_align(ndr, 5));
19104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19105 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
19106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
19108 if (_ptr_types) {
19109 NDR_PULL_ALLOC(ndr, r->types);
19110 } else {
19111 r->types = NULL;
19113 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19115 if (ndr_flags & NDR_BUFFERS) {
19116 if (r->types) {
19117 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
19118 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
19119 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
19120 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
19121 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
19122 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
19123 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19124 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
19126 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19127 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
19129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
19130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
19132 if (r->types) {
19133 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
19136 return NDR_ERR_SUCCESS;
19139 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
19141 uint32_t cntr_types_1;
19142 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
19143 ndr->depth++;
19144 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19145 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
19146 ndr_print_uint32(ndr, "count", r->count);
19147 ndr_print_ptr(ndr, "types", r->types);
19148 ndr->depth++;
19149 if (r->types) {
19150 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
19151 ndr->depth++;
19152 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
19153 char *idx_1=NULL;
19154 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
19155 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
19156 free(idx_1);
19159 ndr->depth--;
19161 ndr->depth--;
19162 ndr->depth--;
19165 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
19167 if (ndr_flags & NDR_SCALARS) {
19168 NDR_CHECK(ndr_push_align(ndr, 5));
19169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19170 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
19171 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19173 if (ndr_flags & NDR_BUFFERS) {
19174 if (r->string) {
19175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
19176 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
19179 return NDR_ERR_SUCCESS;
19182 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
19184 uint32_t _ptr_string;
19185 TALLOC_CTX *_mem_save_string_0;
19186 if (ndr_flags & NDR_SCALARS) {
19187 NDR_CHECK(ndr_pull_align(ndr, 5));
19188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
19190 if (_ptr_string) {
19191 NDR_PULL_ALLOC(ndr, r->string);
19192 } else {
19193 r->string = NULL;
19195 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19197 if (ndr_flags & NDR_BUFFERS) {
19198 if (r->string) {
19199 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
19200 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
19201 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
19202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
19203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
19205 if (r->string) {
19206 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
19209 return NDR_ERR_SUCCESS;
19212 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
19214 ndr_print_struct(ndr, name, "spoolss_NotifyString");
19215 ndr->depth++;
19216 ndr_print_uint32(ndr, "size", r->size);
19217 ndr_print_ptr(ndr, "string", r->string);
19218 ndr->depth++;
19219 if (r->string) {
19220 ndr_print_string(ndr, "string", r->string);
19222 ndr->depth--;
19223 ndr->depth--;
19226 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
19228 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19229 return NDR_ERR_SUCCESS;
19232 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
19234 uint32_t v;
19235 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19236 *r = v;
19237 return NDR_ERR_SUCCESS;
19240 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
19242 const char *val = NULL;
19244 switch (r) {
19245 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
19246 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
19247 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
19248 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
19249 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19251 ndr_print_enum(ndr, name, "ENUM", val, r);
19254 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
19256 if (ndr_flags & NDR_SCALARS) {
19257 int level = ndr_push_get_switch_value(ndr, r);
19258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19259 NDR_CHECK(ndr_push_union_align(ndr, 5));
19260 switch (level) {
19261 case 1: {
19262 uint32_t cntr_integer_0;
19263 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
19266 break; }
19268 case 2: {
19269 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19270 break; }
19272 case 3: {
19273 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19274 break; }
19276 case 4: {
19277 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19278 break; }
19280 case 5: {
19281 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19282 break; }
19284 default:
19285 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19288 if (ndr_flags & NDR_BUFFERS) {
19289 int level = ndr_push_get_switch_value(ndr, r);
19290 switch (level) {
19291 case 1:
19292 break;
19294 case 2:
19295 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19296 break;
19298 case 3:
19299 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19300 break;
19302 case 4:
19303 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19304 break;
19306 case 5:
19307 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19308 break;
19310 default:
19311 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19314 return NDR_ERR_SUCCESS;
19317 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
19319 int level;
19320 uint32_t _level;
19321 level = ndr_pull_get_switch_value(ndr, r);
19322 if (ndr_flags & NDR_SCALARS) {
19323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19324 if (_level != level) {
19325 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19327 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19328 switch (level) {
19329 case 1: {
19330 uint32_t cntr_integer_0;
19331 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
19334 break; }
19336 case 2: {
19337 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19338 break; }
19340 case 3: {
19341 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19342 break; }
19344 case 4: {
19345 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19346 break; }
19348 case 5: {
19349 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19350 break; }
19352 default:
19353 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19356 if (ndr_flags & NDR_BUFFERS) {
19357 switch (level) {
19358 case 1:
19359 break;
19361 case 2:
19362 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19363 break;
19365 case 3:
19366 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19367 break;
19369 case 4:
19370 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19371 break;
19373 case 5:
19374 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19375 break;
19377 default:
19378 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19381 return NDR_ERR_SUCCESS;
19384 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
19386 int level;
19387 uint32_t cntr_integer_0;
19388 level = ndr_print_get_switch_value(ndr, r);
19389 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
19390 switch (level) {
19391 case 1:
19392 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
19393 ndr->depth++;
19394 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
19395 char *idx_0=NULL;
19396 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
19397 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
19398 free(idx_0);
19401 ndr->depth--;
19402 break;
19404 case 2:
19405 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
19406 break;
19408 case 3:
19409 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
19410 break;
19412 case 4:
19413 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
19414 break;
19416 case 5:
19417 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
19418 break;
19420 default:
19421 ndr_print_bad_level(ndr, name, level);
19425 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
19427 if (ndr_flags & NDR_SCALARS) {
19428 NDR_CHECK(ndr_push_align(ndr, 5));
19429 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19430 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
19431 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19432 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
19433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
19434 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
19435 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19436 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19438 if (ndr_flags & NDR_BUFFERS) {
19439 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19441 return NDR_ERR_SUCCESS;
19444 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
19446 if (ndr_flags & NDR_SCALARS) {
19447 NDR_CHECK(ndr_pull_align(ndr, 5));
19448 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19449 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
19450 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19451 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
19452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
19453 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
19454 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19455 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19457 if (ndr_flags & NDR_BUFFERS) {
19458 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19460 return NDR_ERR_SUCCESS;
19463 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
19465 ndr_print_struct(ndr, name, "spoolss_Notify");
19466 ndr->depth++;
19467 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19468 ndr_print_set_switch_value(ndr, &r->field, r->type);
19469 ndr_print_spoolss_Field(ndr, "field", &r->field);
19470 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
19471 ndr_print_uint32(ndr, "job_id", r->job_id);
19472 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
19473 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
19474 ndr->depth--;
19477 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
19479 uint32_t cntr_notifies_0;
19480 if (ndr_flags & NDR_SCALARS) {
19481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19482 NDR_CHECK(ndr_push_align(ndr, 5));
19483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19486 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19487 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19489 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19491 if (ndr_flags & NDR_BUFFERS) {
19492 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19493 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19496 return NDR_ERR_SUCCESS;
19499 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
19501 uint32_t cntr_notifies_0;
19502 TALLOC_CTX *_mem_save_notifies_0;
19503 if (ndr_flags & NDR_SCALARS) {
19504 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
19505 NDR_CHECK(ndr_pull_align(ndr, 5));
19506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19509 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
19510 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19511 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19512 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19513 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19516 if (r->notifies) {
19517 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
19519 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19521 if (ndr_flags & NDR_BUFFERS) {
19522 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19523 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19524 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19525 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19529 return NDR_ERR_SUCCESS;
19532 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
19534 uint32_t cntr_notifies_0;
19535 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
19536 ndr->depth++;
19537 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19538 ndr_print_uint32(ndr, "flags", r->flags);
19539 ndr_print_uint32(ndr, "count", r->count);
19540 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
19541 ndr->depth++;
19542 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
19543 char *idx_0=NULL;
19544 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
19545 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
19546 free(idx_0);
19549 ndr->depth--;
19550 ndr->depth--;
19553 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
19555 if (ndr_flags & NDR_SCALARS) {
19556 int level = ndr_push_get_switch_value(ndr, r);
19557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19558 NDR_CHECK(ndr_push_union_align(ndr, 5));
19559 switch (level) {
19560 case 0: {
19561 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
19562 break; }
19564 default:
19565 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19568 if (ndr_flags & NDR_BUFFERS) {
19569 int level = ndr_push_get_switch_value(ndr, r);
19570 switch (level) {
19571 case 0:
19572 if (r->info0) {
19573 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19575 break;
19577 default:
19578 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19581 return NDR_ERR_SUCCESS;
19584 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
19586 int level;
19587 uint32_t _level;
19588 TALLOC_CTX *_mem_save_info0_0;
19589 level = ndr_pull_get_switch_value(ndr, r);
19590 if (ndr_flags & NDR_SCALARS) {
19591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19592 if (_level != level) {
19593 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19595 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19596 switch (level) {
19597 case 0: {
19598 uint32_t _ptr_info0;
19599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
19600 if (_ptr_info0) {
19601 NDR_PULL_ALLOC(ndr, r->info0);
19602 } else {
19603 r->info0 = NULL;
19605 break; }
19607 default:
19608 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19611 if (ndr_flags & NDR_BUFFERS) {
19612 switch (level) {
19613 case 0:
19614 if (r->info0) {
19615 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
19616 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
19617 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
19620 break;
19622 default:
19623 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19626 return NDR_ERR_SUCCESS;
19629 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
19631 int level;
19632 level = ndr_print_get_switch_value(ndr, r);
19633 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
19634 switch (level) {
19635 case 0:
19636 ndr_print_ptr(ndr, "info0", r->info0);
19637 ndr->depth++;
19638 if (r->info0) {
19639 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
19641 ndr->depth--;
19642 break;
19644 default:
19645 ndr_print_bad_level(ndr, name, level);
19649 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19652 return NDR_ERR_SUCCESS;
19655 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19657 uint32_t v;
19658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19659 *r = v;
19660 return NDR_ERR_SUCCESS;
19663 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19665 ndr_print_uint32(ndr, name, r);
19666 ndr->depth++;
19667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19670 ndr->depth--;
19673 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19675 if (ndr_flags & NDR_SCALARS) {
19676 NDR_CHECK(ndr_push_align(ndr, 5));
19677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19681 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19682 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19683 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19684 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19686 if (ndr_flags & NDR_BUFFERS) {
19687 if (r->client) {
19688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19693 if (r->user) {
19694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19700 return NDR_ERR_SUCCESS;
19703 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19705 uint32_t _ptr_client;
19706 TALLOC_CTX *_mem_save_client_0;
19707 uint32_t _ptr_user;
19708 TALLOC_CTX *_mem_save_user_0;
19709 if (ndr_flags & NDR_SCALARS) {
19710 NDR_CHECK(ndr_pull_align(ndr, 5));
19711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19713 if (_ptr_client) {
19714 NDR_PULL_ALLOC(ndr, r->client);
19715 } else {
19716 r->client = NULL;
19718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19719 if (_ptr_user) {
19720 NDR_PULL_ALLOC(ndr, r->user);
19721 } else {
19722 r->user = NULL;
19724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19725 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19726 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19727 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19728 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19730 if (ndr_flags & NDR_BUFFERS) {
19731 if (r->client) {
19732 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19733 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19734 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19735 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19736 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19737 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
19739 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19740 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19743 if (r->user) {
19744 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19745 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19746 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19747 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19748 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19749 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
19751 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19752 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19756 return NDR_ERR_SUCCESS;
19759 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19761 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19762 ndr->depth++;
19763 ndr_print_uint32(ndr, "size", r->size);
19764 ndr_print_ptr(ndr, "client", r->client);
19765 ndr->depth++;
19766 if (r->client) {
19767 ndr_print_string(ndr, "client", r->client);
19769 ndr->depth--;
19770 ndr_print_ptr(ndr, "user", r->user);
19771 ndr->depth++;
19772 if (r->user) {
19773 ndr_print_string(ndr, "user", r->user);
19775 ndr->depth--;
19776 ndr_print_uint32(ndr, "build", r->build);
19777 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19778 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19779 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19780 ndr->depth--;
19783 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19785 if (ndr_flags & NDR_SCALARS) {
19786 NDR_CHECK(ndr_push_align(ndr, 4));
19787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19788 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19790 if (ndr_flags & NDR_BUFFERS) {
19792 return NDR_ERR_SUCCESS;
19795 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19797 if (ndr_flags & NDR_SCALARS) {
19798 NDR_CHECK(ndr_pull_align(ndr, 4));
19799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19800 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19802 if (ndr_flags & NDR_BUFFERS) {
19804 return NDR_ERR_SUCCESS;
19807 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19809 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19810 ndr->depth++;
19811 ndr_print_uint32(ndr, "not_used", r->not_used);
19812 ndr->depth--;
19815 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19817 if (ndr_flags & NDR_SCALARS) {
19818 NDR_CHECK(ndr_push_align(ndr, 5));
19819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19823 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19825 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19826 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19827 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19828 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19829 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19831 if (ndr_flags & NDR_BUFFERS) {
19832 if (r->client) {
19833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19838 if (r->user) {
19839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19841 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19845 return NDR_ERR_SUCCESS;
19848 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19850 uint32_t _ptr_client;
19851 TALLOC_CTX *_mem_save_client_0;
19852 uint32_t _ptr_user;
19853 TALLOC_CTX *_mem_save_user_0;
19854 if (ndr_flags & NDR_SCALARS) {
19855 NDR_CHECK(ndr_pull_align(ndr, 5));
19856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19860 if (_ptr_client) {
19861 NDR_PULL_ALLOC(ndr, r->client);
19862 } else {
19863 r->client = NULL;
19865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19866 if (_ptr_user) {
19867 NDR_PULL_ALLOC(ndr, r->user);
19868 } else {
19869 r->user = NULL;
19871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19872 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19873 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19874 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19875 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19876 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19878 if (ndr_flags & NDR_BUFFERS) {
19879 if (r->client) {
19880 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19881 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19882 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19883 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19884 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19885 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
19887 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19888 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19891 if (r->user) {
19892 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19893 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19894 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19895 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19896 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19897 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
19899 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19900 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19904 return NDR_ERR_SUCCESS;
19907 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19909 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19910 ndr->depth++;
19911 ndr_print_uint32(ndr, "size", r->size);
19912 ndr_print_uint32(ndr, "flags", r->flags);
19913 ndr_print_uint32(ndr, "size2", r->size2);
19914 ndr_print_ptr(ndr, "client", r->client);
19915 ndr->depth++;
19916 if (r->client) {
19917 ndr_print_string(ndr, "client", r->client);
19919 ndr->depth--;
19920 ndr_print_ptr(ndr, "user", r->user);
19921 ndr->depth++;
19922 if (r->user) {
19923 ndr_print_string(ndr, "user", r->user);
19925 ndr->depth--;
19926 ndr_print_uint32(ndr, "build", r->build);
19927 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19928 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19929 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19930 ndr_print_udlong(ndr, "reserved", r->reserved);
19931 ndr->depth--;
19934 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19936 if (ndr_flags & NDR_SCALARS) {
19937 int level = ndr_push_get_switch_value(ndr, r);
19938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19939 NDR_CHECK(ndr_push_union_align(ndr, 5));
19940 switch (level) {
19941 case 1: {
19942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19943 break; }
19945 case 2: {
19946 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19947 break; }
19949 case 3: {
19950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19951 break; }
19953 default:
19954 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19957 if (ndr_flags & NDR_BUFFERS) {
19958 int level = ndr_push_get_switch_value(ndr, r);
19959 switch (level) {
19960 case 1:
19961 if (r->level1) {
19962 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19964 break;
19966 case 2:
19967 if (r->level2) {
19968 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19970 break;
19972 case 3:
19973 if (r->level3) {
19974 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19976 break;
19978 default:
19979 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19982 return NDR_ERR_SUCCESS;
19985 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19987 int level;
19988 uint32_t _level;
19989 TALLOC_CTX *_mem_save_level1_0;
19990 TALLOC_CTX *_mem_save_level2_0;
19991 TALLOC_CTX *_mem_save_level3_0;
19992 level = ndr_pull_get_switch_value(ndr, r);
19993 if (ndr_flags & NDR_SCALARS) {
19994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19995 if (_level != level) {
19996 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19998 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19999 switch (level) {
20000 case 1: {
20001 uint32_t _ptr_level1;
20002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
20003 if (_ptr_level1) {
20004 NDR_PULL_ALLOC(ndr, r->level1);
20005 } else {
20006 r->level1 = NULL;
20008 break; }
20010 case 2: {
20011 uint32_t _ptr_level2;
20012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
20013 if (_ptr_level2) {
20014 NDR_PULL_ALLOC(ndr, r->level2);
20015 } else {
20016 r->level2 = NULL;
20018 break; }
20020 case 3: {
20021 uint32_t _ptr_level3;
20022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
20023 if (_ptr_level3) {
20024 NDR_PULL_ALLOC(ndr, r->level3);
20025 } else {
20026 r->level3 = NULL;
20028 break; }
20030 default:
20031 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20034 if (ndr_flags & NDR_BUFFERS) {
20035 switch (level) {
20036 case 1:
20037 if (r->level1) {
20038 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
20039 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
20040 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
20041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
20043 break;
20045 case 2:
20046 if (r->level2) {
20047 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
20048 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
20049 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
20050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
20052 break;
20054 case 3:
20055 if (r->level3) {
20056 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
20057 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
20058 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
20059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
20061 break;
20063 default:
20064 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20067 return NDR_ERR_SUCCESS;
20070 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
20072 int level;
20073 level = ndr_print_get_switch_value(ndr, r);
20074 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
20075 switch (level) {
20076 case 1:
20077 ndr_print_ptr(ndr, "level1", r->level1);
20078 ndr->depth++;
20079 if (r->level1) {
20080 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
20082 ndr->depth--;
20083 break;
20085 case 2:
20086 ndr_print_ptr(ndr, "level2", r->level2);
20087 ndr->depth++;
20088 if (r->level2) {
20089 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
20091 ndr->depth--;
20092 break;
20094 case 3:
20095 ndr_print_ptr(ndr, "level3", r->level3);
20096 ndr->depth++;
20097 if (r->level3) {
20098 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
20100 ndr->depth--;
20101 break;
20103 default:
20104 ndr_print_bad_level(ndr, name, level);
20108 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
20110 if (ndr_flags & NDR_SCALARS) {
20111 NDR_CHECK(ndr_push_align(ndr, 5));
20112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
20113 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
20114 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
20115 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20117 if (ndr_flags & NDR_BUFFERS) {
20118 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
20120 return NDR_ERR_SUCCESS;
20123 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
20125 if (ndr_flags & NDR_SCALARS) {
20126 NDR_CHECK(ndr_pull_align(ndr, 5));
20127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
20128 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
20129 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
20130 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20132 if (ndr_flags & NDR_BUFFERS) {
20133 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
20135 return NDR_ERR_SUCCESS;
20138 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
20140 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
20141 ndr->depth++;
20142 ndr_print_uint32(ndr, "level", r->level);
20143 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
20144 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
20145 ndr->depth--;
20148 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20151 return NDR_ERR_SUCCESS;
20154 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20156 uint32_t v;
20157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20158 *r = v;
20159 return NDR_ERR_SUCCESS;
20162 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
20164 ndr_print_uint32(ndr, name, r);
20165 ndr->depth++;
20166 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
20167 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
20168 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
20169 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
20170 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
20171 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
20172 ndr->depth--;
20175 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
20177 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
20178 if (ndr_flags & NDR_SCALARS) {
20179 NDR_CHECK(ndr_push_align(ndr, 5));
20180 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
20182 uint32_t _flags_save_string = ndr->flags;
20183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20184 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
20185 ndr->flags = _flags_save_string;
20187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
20188 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
20189 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
20190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
20191 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20193 if (ndr_flags & NDR_BUFFERS) {
20194 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
20196 uint32_t _flags_save_string = ndr->flags;
20197 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20198 if (r->value_name) {
20199 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
20200 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
20201 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
20203 ndr->flags = _flags_save_string;
20205 if (r->data) {
20206 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
20208 struct ndr_push *_ndr_data;
20209 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
20210 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
20211 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
20212 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
20214 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
20217 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
20218 return NDR_ERR_SUCCESS;
20221 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
20223 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
20224 uint32_t _ptr_value_name;
20225 TALLOC_CTX *_mem_save_value_name_0;
20226 uint32_t _ptr_data;
20227 TALLOC_CTX *_mem_save_data_0;
20228 if (ndr_flags & NDR_SCALARS) {
20229 NDR_CHECK(ndr_pull_align(ndr, 5));
20230 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
20232 uint32_t _flags_save_string = ndr->flags;
20233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20234 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
20235 if (_ptr_value_name) {
20236 NDR_PULL_ALLOC(ndr, r->value_name);
20237 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
20238 } else {
20239 r->value_name = NULL;
20241 ndr->flags = _flags_save_string;
20243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
20244 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
20245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
20246 if (_ptr_data) {
20247 NDR_PULL_ALLOC(ndr, r->data);
20248 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
20249 } else {
20250 r->data = NULL;
20252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
20253 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20255 if (ndr_flags & NDR_BUFFERS) {
20256 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20258 uint32_t _flags_save_string = ndr->flags;
20259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20260 if (r->value_name) {
20261 uint32_t _relative_save_offset;
20262 _relative_save_offset = ndr->offset;
20263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
20264 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20265 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
20266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
20267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
20268 if (ndr->offset > ndr->relative_highest_offset) {
20269 ndr->relative_highest_offset = ndr->offset;
20271 ndr->offset = _relative_save_offset;
20273 ndr->flags = _flags_save_string;
20275 if (r->data) {
20276 uint32_t _relative_save_offset;
20277 _relative_save_offset = ndr->offset;
20278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
20279 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
20280 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
20282 struct ndr_pull *_ndr_data;
20283 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
20284 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
20285 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
20286 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
20288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
20289 if (ndr->offset > ndr->relative_highest_offset) {
20290 ndr->relative_highest_offset = ndr->offset;
20292 ndr->offset = _relative_save_offset;
20295 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
20296 return NDR_ERR_SUCCESS;
20299 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
20301 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
20302 ndr->depth++;
20303 ndr_print_ptr(ndr, "value_name", r->value_name);
20304 ndr->depth++;
20305 if (r->value_name) {
20306 ndr_print_string(ndr, "value_name", r->value_name);
20308 ndr->depth--;
20309 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
20310 ndr_print_winreg_Type(ndr, "type", r->type);
20311 ndr_print_ptr(ndr, "data", r->data);
20312 ndr->depth++;
20313 if (r->data) {
20314 ndr_print_set_switch_value(ndr, r->data, r->type);
20315 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
20317 ndr->depth--;
20318 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags):r->data_length);
20319 ndr->depth--;
20322 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
20324 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
20327 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
20329 if (ndr_flags & NDR_SCALARS) {
20330 int level = ndr_push_get_switch_value(ndr, r);
20331 NDR_CHECK(ndr_push_union_align(ndr, 4));
20332 switch (level) {
20333 case 0: {
20334 break; }
20336 case 1: {
20337 break; }
20339 default: {
20341 uint32_t _flags_save_string_array = ndr->flags;
20342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20343 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
20344 ndr->flags = _flags_save_string_array;
20346 break; }
20350 if (ndr_flags & NDR_BUFFERS) {
20351 int level = ndr_push_get_switch_value(ndr, r);
20352 switch (level) {
20353 case 0:
20354 break;
20356 case 1:
20357 break;
20359 default:
20360 break;
20364 return NDR_ERR_SUCCESS;
20367 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
20369 int level;
20370 level = ndr_pull_get_switch_value(ndr, r);
20371 if (ndr_flags & NDR_SCALARS) {
20372 NDR_CHECK(ndr_pull_union_align(ndr, 4));
20373 switch (level) {
20374 case 0: {
20375 break; }
20377 case 1: {
20378 break; }
20380 default: {
20382 uint32_t _flags_save_string_array = ndr->flags;
20383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20384 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
20385 ndr->flags = _flags_save_string_array;
20387 break; }
20391 if (ndr_flags & NDR_BUFFERS) {
20392 switch (level) {
20393 case 0:
20394 break;
20396 case 1:
20397 break;
20399 default:
20400 break;
20404 return NDR_ERR_SUCCESS;
20407 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
20409 int level;
20410 level = ndr_print_get_switch_value(ndr, r);
20411 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
20412 switch (level) {
20413 case 0:
20414 break;
20416 case 1:
20417 break;
20419 default:
20420 ndr_print_string_array(ndr, "string_array", r->string_array);
20421 break;
20426 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20429 return NDR_ERR_SUCCESS;
20432 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20434 uint32_t v;
20435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20436 *r = v;
20437 return NDR_ERR_SUCCESS;
20440 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20442 ndr_print_uint32(ndr, name, r);
20443 ndr->depth++;
20444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
20445 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
20446 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
20447 ndr->depth--;
20450 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
20452 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
20453 return NDR_ERR_SUCCESS;
20456 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
20458 uint32_t v;
20459 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
20460 *r = v;
20461 return NDR_ERR_SUCCESS;
20464 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
20466 const char *val = NULL;
20468 switch (r) {
20469 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
20470 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
20472 ndr_print_enum(ndr, name, "ENUM", val, r);
20475 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
20477 if (ndr_flags & NDR_SCALARS) {
20478 NDR_CHECK(ndr_push_align(ndr, 4));
20479 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
20481 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20484 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20485 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20489 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20490 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20494 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20496 if (ndr_flags & NDR_BUFFERS) {
20498 return NDR_ERR_SUCCESS;
20501 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
20503 if (ndr_flags & NDR_SCALARS) {
20504 NDR_CHECK(ndr_pull_align(ndr, 4));
20505 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20507 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20510 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20513 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20514 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20516 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20518 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20520 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20522 if (ndr_flags & NDR_BUFFERS) {
20524 return NDR_ERR_SUCCESS;
20527 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
20529 ndr_print_struct(ndr, name, "spoolss_PortData1");
20530 ndr->depth++;
20531 ndr_print_string(ndr, "portname", r->portname);
20532 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
20533 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20534 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20535 ndr_print_uint32(ndr, "reserved", r->reserved);
20536 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20537 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20538 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20539 ndr_print_string(ndr, "queue", r->queue);
20540 ndr_print_string(ndr, "ip_address", r->ip_address);
20541 ndr_print_string(ndr, "hardware_address", r->hardware_address);
20542 ndr_print_string(ndr, "device_type", r->device_type);
20543 ndr_print_uint32(ndr, "port_number", r->port_number);
20544 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20545 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20546 ndr->depth--;
20549 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
20551 if (ndr_flags & NDR_SCALARS) {
20552 NDR_CHECK(ndr_push_align(ndr, 4));
20553 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
20555 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20558 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20559 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20562 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
20567 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20569 if (ndr_flags & NDR_BUFFERS) {
20571 return NDR_ERR_SUCCESS;
20574 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
20576 if (ndr_flags & NDR_SCALARS) {
20577 NDR_CHECK(ndr_pull_align(ndr, 4));
20578 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20580 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20583 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20584 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20586 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20587 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
20592 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20594 if (ndr_flags & NDR_BUFFERS) {
20596 return NDR_ERR_SUCCESS;
20599 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
20601 ndr_print_struct(ndr, name, "spoolss_PortData2");
20602 ndr->depth++;
20603 ndr_print_string(ndr, "portname", r->portname);
20604 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
20605 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20606 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20607 ndr_print_uint32(ndr, "reserved", r->reserved);
20608 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20609 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20610 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20611 ndr_print_string(ndr, "queue", r->queue);
20612 ndr_print_string(ndr, "device_type", r->device_type);
20613 ndr_print_uint32(ndr, "port_number", r->port_number);
20614 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20615 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20616 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
20617 ndr->depth--;
20620 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
20622 if (ndr_flags & NDR_SCALARS) {
20623 NDR_CHECK(ndr_push_align(ndr, 4));
20625 uint32_t _flags_save_string = ndr->flags;
20626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20628 ndr->flags = _flags_save_string;
20630 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20632 if (ndr_flags & NDR_BUFFERS) {
20634 return NDR_ERR_SUCCESS;
20637 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
20639 if (ndr_flags & NDR_SCALARS) {
20640 NDR_CHECK(ndr_pull_align(ndr, 4));
20642 uint32_t _flags_save_string = ndr->flags;
20643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20644 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20645 ndr->flags = _flags_save_string;
20647 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20649 if (ndr_flags & NDR_BUFFERS) {
20651 return NDR_ERR_SUCCESS;
20654 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
20656 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
20657 ndr->depth++;
20658 ndr_print_string(ndr, "dll_name", r->dll_name);
20659 ndr->depth--;
20662 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20665 return NDR_ERR_SUCCESS;
20668 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20670 uint32_t v;
20671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20672 *r = v;
20673 return NDR_ERR_SUCCESS;
20676 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20678 ndr_print_uint32(ndr, name, r);
20679 ndr->depth++;
20680 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
20681 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
20682 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
20683 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
20684 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
20685 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
20686 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
20687 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
20688 ndr->depth--;
20691 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
20693 if (ndr_flags & NDR_SCALARS) {
20694 NDR_CHECK(ndr_push_align(ndr, 8));
20695 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20696 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
20697 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
20698 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
20699 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
20701 if (ndr_flags & NDR_BUFFERS) {
20703 return NDR_ERR_SUCCESS;
20706 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
20708 if (ndr_flags & NDR_SCALARS) {
20709 NDR_CHECK(ndr_pull_align(ndr, 8));
20710 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20711 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20712 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20713 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20714 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20716 if (ndr_flags & NDR_BUFFERS) {
20718 return NDR_ERR_SUCCESS;
20721 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20723 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20724 ndr->depth++;
20725 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20726 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20727 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20728 ndr_print_string(ndr, "formname", r->formname);
20729 ndr->depth--;
20732 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20734 if (flags & NDR_IN) {
20735 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20737 if (r->in.server) {
20738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20745 if (r->in.buffer) {
20746 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20750 if (flags & NDR_OUT) {
20751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20752 if (r->out.info) {
20753 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20755 if (r->out.needed == NULL) {
20756 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20759 if (r->out.count == NULL) {
20760 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20765 return NDR_ERR_SUCCESS;
20768 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20770 uint32_t _ptr_server;
20771 uint32_t _ptr_buffer;
20772 uint32_t _ptr_info;
20773 TALLOC_CTX *_mem_save_server_0;
20774 TALLOC_CTX *_mem_save_buffer_0;
20775 TALLOC_CTX *_mem_save_info_0;
20776 TALLOC_CTX *_mem_save_needed_0;
20777 TALLOC_CTX *_mem_save_count_0;
20778 if (flags & NDR_IN) {
20779 ZERO_STRUCT(r->out);
20781 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20783 if (_ptr_server) {
20784 NDR_PULL_ALLOC(ndr, r->in.server);
20785 } else {
20786 r->in.server = NULL;
20788 if (r->in.server) {
20789 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20790 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20791 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20792 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20793 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20794 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20802 if (_ptr_buffer) {
20803 NDR_PULL_ALLOC(ndr, r->in.buffer);
20804 } else {
20805 r->in.buffer = NULL;
20807 if (r->in.buffer) {
20808 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20809 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20810 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20814 NDR_PULL_ALLOC(ndr, r->out.needed);
20815 ZERO_STRUCTP(r->out.needed);
20816 NDR_PULL_ALLOC(ndr, r->out.count);
20817 ZERO_STRUCTP(r->out.count);
20819 if (flags & NDR_OUT) {
20820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20821 if (_ptr_info) {
20822 NDR_PULL_ALLOC(ndr, r->out.info);
20823 } else {
20824 r->out.info = NULL;
20826 if (r->out.info) {
20827 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20828 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20829 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20832 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20833 NDR_PULL_ALLOC(ndr, r->out.needed);
20835 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20836 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20838 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20840 NDR_PULL_ALLOC(ndr, r->out.count);
20842 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20843 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20846 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20848 return NDR_ERR_SUCCESS;
20851 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20853 uint32_t cntr_info_0;
20854 if (flags & NDR_IN) {
20855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20858 if (flags & NDR_OUT) {
20859 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20860 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20861 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20863 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20864 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20867 return NDR_ERR_SUCCESS;
20870 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20872 uint32_t cntr_info_0;
20873 TALLOC_CTX *_mem_save_info_0;
20874 if (flags & NDR_IN) {
20875 ZERO_STRUCT(r->out);
20877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20880 if (flags & NDR_OUT) {
20881 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20882 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20883 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20884 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20885 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20886 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20888 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20889 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20893 return NDR_ERR_SUCCESS;
20896 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20898 uint32_t cntr_info_2;
20899 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20900 ndr->depth++;
20901 if (flags & NDR_SET_VALUES) {
20902 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20904 if (flags & NDR_IN) {
20905 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20906 ndr->depth++;
20907 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20908 ndr_print_ptr(ndr, "server", r->in.server);
20909 ndr->depth++;
20910 if (r->in.server) {
20911 ndr_print_string(ndr, "server", r->in.server);
20913 ndr->depth--;
20914 ndr_print_uint32(ndr, "level", r->in.level);
20915 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20916 ndr->depth++;
20917 if (r->in.buffer) {
20918 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20920 ndr->depth--;
20921 ndr_print_uint32(ndr, "offered", r->in.offered);
20922 ndr->depth--;
20924 if (flags & NDR_OUT) {
20925 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20926 ndr->depth++;
20927 ndr_print_ptr(ndr, "count", r->out.count);
20928 ndr->depth++;
20929 ndr_print_uint32(ndr, "count", *r->out.count);
20930 ndr->depth--;
20931 ndr_print_ptr(ndr, "info", r->out.info);
20932 ndr->depth++;
20933 ndr_print_ptr(ndr, "info", *r->out.info);
20934 ndr->depth++;
20935 if (*r->out.info) {
20936 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20937 ndr->depth++;
20938 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20939 char *idx_2=NULL;
20940 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20941 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20942 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20943 free(idx_2);
20946 ndr->depth--;
20948 ndr->depth--;
20949 ndr->depth--;
20950 ndr_print_ptr(ndr, "needed", r->out.needed);
20951 ndr->depth++;
20952 ndr_print_uint32(ndr, "needed", *r->out.needed);
20953 ndr->depth--;
20954 ndr_print_WERROR(ndr, "result", r->out.result);
20955 ndr->depth--;
20957 ndr->depth--;
20960 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20962 if (flags & NDR_IN) {
20963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20964 if (r->in.printername) {
20965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20966 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20968 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20971 if (r->in.datatype) {
20972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20977 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20978 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20980 if (flags & NDR_OUT) {
20981 if (r->out.handle == NULL) {
20982 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20984 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20985 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20987 return NDR_ERR_SUCCESS;
20990 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20992 uint32_t _ptr_printername;
20993 uint32_t _ptr_datatype;
20994 TALLOC_CTX *_mem_save_printername_0;
20995 TALLOC_CTX *_mem_save_datatype_0;
20996 TALLOC_CTX *_mem_save_handle_0;
20997 if (flags & NDR_IN) {
20998 ZERO_STRUCT(r->out);
21000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21001 if (_ptr_printername) {
21002 NDR_PULL_ALLOC(ndr, r->in.printername);
21003 } else {
21004 r->in.printername = NULL;
21006 if (r->in.printername) {
21007 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21008 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21009 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21010 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21011 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21012 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
21014 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21015 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21019 if (_ptr_datatype) {
21020 NDR_PULL_ALLOC(ndr, r->in.datatype);
21021 } else {
21022 r->in.datatype = NULL;
21024 if (r->in.datatype) {
21025 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21026 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21027 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21028 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21029 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21030 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
21032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21036 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21037 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21038 NDR_PULL_ALLOC(ndr, r->out.handle);
21039 ZERO_STRUCTP(r->out.handle);
21041 if (flags & NDR_OUT) {
21042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21043 NDR_PULL_ALLOC(ndr, r->out.handle);
21045 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21046 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21047 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21049 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21051 return NDR_ERR_SUCCESS;
21054 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
21056 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
21057 ndr->depth++;
21058 if (flags & NDR_SET_VALUES) {
21059 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21061 if (flags & NDR_IN) {
21062 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
21063 ndr->depth++;
21064 ndr_print_ptr(ndr, "printername", r->in.printername);
21065 ndr->depth++;
21066 if (r->in.printername) {
21067 ndr_print_string(ndr, "printername", r->in.printername);
21069 ndr->depth--;
21070 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21071 ndr->depth++;
21072 if (r->in.datatype) {
21073 ndr_print_string(ndr, "datatype", r->in.datatype);
21075 ndr->depth--;
21076 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21077 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21078 ndr->depth--;
21080 if (flags & NDR_OUT) {
21081 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
21082 ndr->depth++;
21083 ndr_print_ptr(ndr, "handle", r->out.handle);
21084 ndr->depth++;
21085 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21086 ndr->depth--;
21087 ndr_print_WERROR(ndr, "result", r->out.result);
21088 ndr->depth--;
21090 ndr->depth--;
21093 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
21095 if (flags & NDR_IN) {
21096 if (r->in.handle == NULL) {
21097 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21099 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
21101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
21102 if (r->in.ctr) {
21103 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
21105 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
21107 if (flags & NDR_OUT) {
21108 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21110 return NDR_ERR_SUCCESS;
21113 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
21115 uint32_t _ptr_ctr;
21116 TALLOC_CTX *_mem_save_handle_0;
21117 TALLOC_CTX *_mem_save_ctr_0;
21118 if (flags & NDR_IN) {
21119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21120 NDR_PULL_ALLOC(ndr, r->in.handle);
21122 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21123 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21124 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
21127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
21128 if (_ptr_ctr) {
21129 NDR_PULL_ALLOC(ndr, r->in.ctr);
21130 } else {
21131 r->in.ctr = NULL;
21133 if (r->in.ctr) {
21134 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21135 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
21136 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
21137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
21139 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
21141 if (flags & NDR_OUT) {
21142 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21144 return NDR_ERR_SUCCESS;
21147 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
21149 ndr_print_struct(ndr, name, "spoolss_SetJob");
21150 ndr->depth++;
21151 if (flags & NDR_SET_VALUES) {
21152 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21154 if (flags & NDR_IN) {
21155 ndr_print_struct(ndr, "in", "spoolss_SetJob");
21156 ndr->depth++;
21157 ndr_print_ptr(ndr, "handle", r->in.handle);
21158 ndr->depth++;
21159 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21160 ndr->depth--;
21161 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21162 ndr_print_ptr(ndr, "ctr", r->in.ctr);
21163 ndr->depth++;
21164 if (r->in.ctr) {
21165 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
21167 ndr->depth--;
21168 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
21169 ndr->depth--;
21171 if (flags & NDR_OUT) {
21172 ndr_print_struct(ndr, "out", "spoolss_SetJob");
21173 ndr->depth++;
21174 ndr_print_WERROR(ndr, "result", r->out.result);
21175 ndr->depth--;
21177 ndr->depth--;
21180 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
21182 if (flags & NDR_IN) {
21183 if (r->in.handle == NULL) {
21184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21186 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
21188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21190 if (r->in.buffer) {
21191 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21195 if (flags & NDR_OUT) {
21196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21197 if (r->out.info) {
21199 struct ndr_push *_ndr_info;
21200 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21201 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21202 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21203 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21206 if (r->out.needed == NULL) {
21207 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21212 return NDR_ERR_SUCCESS;
21215 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
21217 uint32_t _ptr_buffer;
21218 uint32_t _ptr_info;
21219 TALLOC_CTX *_mem_save_handle_0;
21220 TALLOC_CTX *_mem_save_buffer_0;
21221 TALLOC_CTX *_mem_save_info_0;
21222 TALLOC_CTX *_mem_save_needed_0;
21223 if (flags & NDR_IN) {
21224 ZERO_STRUCT(r->out);
21226 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21227 NDR_PULL_ALLOC(ndr, r->in.handle);
21229 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21230 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21231 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
21234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21236 if (_ptr_buffer) {
21237 NDR_PULL_ALLOC(ndr, r->in.buffer);
21238 } else {
21239 r->in.buffer = NULL;
21241 if (r->in.buffer) {
21242 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21243 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21244 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21248 NDR_PULL_ALLOC(ndr, r->out.needed);
21249 ZERO_STRUCTP(r->out.needed);
21251 if (flags & NDR_OUT) {
21252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21253 if (_ptr_info) {
21254 NDR_PULL_ALLOC(ndr, r->out.info);
21255 } else {
21256 r->out.info = NULL;
21258 if (r->out.info) {
21259 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21260 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21262 struct ndr_pull *_ndr_info;
21263 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21264 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21265 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21266 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21270 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21271 NDR_PULL_ALLOC(ndr, r->out.needed);
21273 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21274 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21277 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21279 return NDR_ERR_SUCCESS;
21282 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
21284 ndr_print_struct(ndr, name, "spoolss_GetJob");
21285 ndr->depth++;
21286 if (flags & NDR_SET_VALUES) {
21287 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21289 if (flags & NDR_IN) {
21290 ndr_print_struct(ndr, "in", "spoolss_GetJob");
21291 ndr->depth++;
21292 ndr_print_ptr(ndr, "handle", r->in.handle);
21293 ndr->depth++;
21294 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21295 ndr->depth--;
21296 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21297 ndr_print_uint32(ndr, "level", r->in.level);
21298 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21299 ndr->depth++;
21300 if (r->in.buffer) {
21301 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21303 ndr->depth--;
21304 ndr_print_uint32(ndr, "offered", r->in.offered);
21305 ndr->depth--;
21307 if (flags & NDR_OUT) {
21308 ndr_print_struct(ndr, "out", "spoolss_GetJob");
21309 ndr->depth++;
21310 ndr_print_ptr(ndr, "info", r->out.info);
21311 ndr->depth++;
21312 if (r->out.info) {
21313 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21314 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
21316 ndr->depth--;
21317 ndr_print_ptr(ndr, "needed", r->out.needed);
21318 ndr->depth++;
21319 ndr_print_uint32(ndr, "needed", *r->out.needed);
21320 ndr->depth--;
21321 ndr_print_WERROR(ndr, "result", r->out.result);
21322 ndr->depth--;
21324 ndr->depth--;
21327 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
21329 if (flags & NDR_IN) {
21330 if (r->in.handle == NULL) {
21331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21333 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
21335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
21336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21337 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21338 if (r->in.buffer) {
21339 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21343 if (flags & NDR_OUT) {
21344 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21345 if (r->out.info) {
21346 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21348 if (r->out.needed == NULL) {
21349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21352 if (r->out.count == NULL) {
21353 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21358 return NDR_ERR_SUCCESS;
21361 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
21363 uint32_t _ptr_buffer;
21364 uint32_t _ptr_info;
21365 TALLOC_CTX *_mem_save_handle_0;
21366 TALLOC_CTX *_mem_save_buffer_0;
21367 TALLOC_CTX *_mem_save_info_0;
21368 TALLOC_CTX *_mem_save_needed_0;
21369 TALLOC_CTX *_mem_save_count_0;
21370 if (flags & NDR_IN) {
21371 ZERO_STRUCT(r->out);
21373 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21374 NDR_PULL_ALLOC(ndr, r->in.handle);
21376 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21377 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21378 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
21381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
21382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21384 if (_ptr_buffer) {
21385 NDR_PULL_ALLOC(ndr, r->in.buffer);
21386 } else {
21387 r->in.buffer = NULL;
21389 if (r->in.buffer) {
21390 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21391 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21392 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21396 NDR_PULL_ALLOC(ndr, r->out.needed);
21397 ZERO_STRUCTP(r->out.needed);
21398 NDR_PULL_ALLOC(ndr, r->out.count);
21399 ZERO_STRUCTP(r->out.count);
21401 if (flags & NDR_OUT) {
21402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21403 if (_ptr_info) {
21404 NDR_PULL_ALLOC(ndr, r->out.info);
21405 } else {
21406 r->out.info = NULL;
21408 if (r->out.info) {
21409 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21410 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21411 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21414 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21415 NDR_PULL_ALLOC(ndr, r->out.needed);
21417 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21418 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21421 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21422 NDR_PULL_ALLOC(ndr, r->out.count);
21424 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21425 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21428 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21430 return NDR_ERR_SUCCESS;
21433 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
21435 uint32_t cntr_info_0;
21436 if (flags & NDR_IN) {
21437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21440 if (flags & NDR_OUT) {
21441 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21442 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21443 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21445 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21446 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21449 return NDR_ERR_SUCCESS;
21452 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
21454 uint32_t cntr_info_0;
21455 TALLOC_CTX *_mem_save_info_0;
21456 if (flags & NDR_IN) {
21457 ZERO_STRUCT(r->out);
21459 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21462 if (flags & NDR_OUT) {
21463 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21464 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21465 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21466 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21467 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21468 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21470 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21471 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21475 return NDR_ERR_SUCCESS;
21478 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
21480 uint32_t cntr_info_2;
21481 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
21482 ndr->depth++;
21483 if (flags & NDR_SET_VALUES) {
21484 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21486 if (flags & NDR_IN) {
21487 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
21488 ndr->depth++;
21489 ndr_print_ptr(ndr, "handle", r->in.handle);
21490 ndr->depth++;
21491 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21492 ndr->depth--;
21493 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
21494 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
21495 ndr_print_uint32(ndr, "level", r->in.level);
21496 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21497 ndr->depth++;
21498 if (r->in.buffer) {
21499 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21501 ndr->depth--;
21502 ndr_print_uint32(ndr, "offered", r->in.offered);
21503 ndr->depth--;
21505 if (flags & NDR_OUT) {
21506 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
21507 ndr->depth++;
21508 ndr_print_ptr(ndr, "count", r->out.count);
21509 ndr->depth++;
21510 ndr_print_uint32(ndr, "count", *r->out.count);
21511 ndr->depth--;
21512 ndr_print_ptr(ndr, "info", r->out.info);
21513 ndr->depth++;
21514 ndr_print_ptr(ndr, "info", *r->out.info);
21515 ndr->depth++;
21516 if (*r->out.info) {
21517 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21518 ndr->depth++;
21519 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21520 char *idx_2=NULL;
21521 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21522 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21523 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21524 free(idx_2);
21527 ndr->depth--;
21529 ndr->depth--;
21530 ndr->depth--;
21531 ndr_print_ptr(ndr, "needed", r->out.needed);
21532 ndr->depth++;
21533 ndr_print_uint32(ndr, "needed", *r->out.needed);
21534 ndr->depth--;
21535 ndr_print_WERROR(ndr, "result", r->out.result);
21536 ndr->depth--;
21538 ndr->depth--;
21541 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
21543 if (flags & NDR_IN) {
21544 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21545 if (r->in.server) {
21546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21548 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21549 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21551 if (r->in.info_ctr == NULL) {
21552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21554 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21555 if (r->in.devmode_ctr == NULL) {
21556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21558 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21559 if (r->in.secdesc_ctr == NULL) {
21560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21562 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21564 if (flags & NDR_OUT) {
21565 if (r->out.handle == NULL) {
21566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21568 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21569 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21571 return NDR_ERR_SUCCESS;
21574 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
21576 uint32_t _ptr_server;
21577 TALLOC_CTX *_mem_save_server_0;
21578 TALLOC_CTX *_mem_save_info_ctr_0;
21579 TALLOC_CTX *_mem_save_devmode_ctr_0;
21580 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21581 TALLOC_CTX *_mem_save_handle_0;
21582 if (flags & NDR_IN) {
21583 ZERO_STRUCT(r->out);
21585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21586 if (_ptr_server) {
21587 NDR_PULL_ALLOC(ndr, r->in.server);
21588 } else {
21589 r->in.server = NULL;
21591 if (r->in.server) {
21592 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21593 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21594 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21595 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21596 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21597 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
21599 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21600 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21603 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21604 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21606 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21607 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21608 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21610 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21611 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21613 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21614 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21615 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21617 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21618 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21620 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21621 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21622 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21624 NDR_PULL_ALLOC(ndr, r->out.handle);
21625 ZERO_STRUCTP(r->out.handle);
21627 if (flags & NDR_OUT) {
21628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21629 NDR_PULL_ALLOC(ndr, r->out.handle);
21631 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21632 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21633 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21635 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21637 return NDR_ERR_SUCCESS;
21640 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
21642 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
21643 ndr->depth++;
21644 if (flags & NDR_SET_VALUES) {
21645 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21647 if (flags & NDR_IN) {
21648 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
21649 ndr->depth++;
21650 ndr_print_ptr(ndr, "server", r->in.server);
21651 ndr->depth++;
21652 if (r->in.server) {
21653 ndr_print_string(ndr, "server", r->in.server);
21655 ndr->depth--;
21656 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21657 ndr->depth++;
21658 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21659 ndr->depth--;
21660 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21661 ndr->depth++;
21662 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21663 ndr->depth--;
21664 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21665 ndr->depth++;
21666 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21667 ndr->depth--;
21668 ndr->depth--;
21670 if (flags & NDR_OUT) {
21671 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
21672 ndr->depth++;
21673 ndr_print_ptr(ndr, "handle", r->out.handle);
21674 ndr->depth++;
21675 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21676 ndr->depth--;
21677 ndr_print_WERROR(ndr, "result", r->out.result);
21678 ndr->depth--;
21680 ndr->depth--;
21683 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
21685 if (flags & NDR_IN) {
21686 if (r->in.handle == NULL) {
21687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21689 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21691 if (flags & NDR_OUT) {
21692 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21694 return NDR_ERR_SUCCESS;
21697 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
21699 TALLOC_CTX *_mem_save_handle_0;
21700 if (flags & NDR_IN) {
21701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21702 NDR_PULL_ALLOC(ndr, r->in.handle);
21704 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21705 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21706 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21709 if (flags & NDR_OUT) {
21710 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21712 return NDR_ERR_SUCCESS;
21715 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21717 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21718 ndr->depth++;
21719 if (flags & NDR_SET_VALUES) {
21720 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21722 if (flags & NDR_IN) {
21723 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21724 ndr->depth++;
21725 ndr_print_ptr(ndr, "handle", r->in.handle);
21726 ndr->depth++;
21727 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21728 ndr->depth--;
21729 ndr->depth--;
21731 if (flags & NDR_OUT) {
21732 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21733 ndr->depth++;
21734 ndr_print_WERROR(ndr, "result", r->out.result);
21735 ndr->depth--;
21737 ndr->depth--;
21740 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21742 if (flags & NDR_IN) {
21743 if (r->in.handle == NULL) {
21744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21746 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21747 if (r->in.info_ctr == NULL) {
21748 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21750 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21751 if (r->in.devmode_ctr == NULL) {
21752 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21754 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21755 if (r->in.secdesc_ctr == NULL) {
21756 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21758 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21759 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21761 if (flags & NDR_OUT) {
21762 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21764 return NDR_ERR_SUCCESS;
21767 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21769 TALLOC_CTX *_mem_save_handle_0;
21770 TALLOC_CTX *_mem_save_info_ctr_0;
21771 TALLOC_CTX *_mem_save_devmode_ctr_0;
21772 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21773 if (flags & NDR_IN) {
21774 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21775 NDR_PULL_ALLOC(ndr, r->in.handle);
21777 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21778 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21779 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21781 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21782 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21784 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21785 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21786 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21787 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21788 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21789 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21791 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21792 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21793 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21795 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21796 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21798 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21799 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21800 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21802 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21804 if (flags & NDR_OUT) {
21805 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21807 return NDR_ERR_SUCCESS;
21810 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21812 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21813 ndr->depth++;
21814 if (flags & NDR_SET_VALUES) {
21815 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21817 if (flags & NDR_IN) {
21818 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21819 ndr->depth++;
21820 ndr_print_ptr(ndr, "handle", r->in.handle);
21821 ndr->depth++;
21822 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21823 ndr->depth--;
21824 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21825 ndr->depth++;
21826 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21827 ndr->depth--;
21828 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21829 ndr->depth++;
21830 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21831 ndr->depth--;
21832 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21833 ndr->depth++;
21834 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21835 ndr->depth--;
21836 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21837 ndr->depth--;
21839 if (flags & NDR_OUT) {
21840 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21841 ndr->depth++;
21842 ndr_print_WERROR(ndr, "result", r->out.result);
21843 ndr->depth--;
21845 ndr->depth--;
21848 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21850 if (flags & NDR_IN) {
21851 if (r->in.handle == NULL) {
21852 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21854 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21857 if (r->in.buffer) {
21858 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21862 if (flags & NDR_OUT) {
21863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21864 if (r->out.info) {
21866 struct ndr_push *_ndr_info;
21867 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21868 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21869 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21870 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21873 if (r->out.needed == NULL) {
21874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21879 return NDR_ERR_SUCCESS;
21882 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21884 uint32_t _ptr_buffer;
21885 uint32_t _ptr_info;
21886 TALLOC_CTX *_mem_save_handle_0;
21887 TALLOC_CTX *_mem_save_buffer_0;
21888 TALLOC_CTX *_mem_save_info_0;
21889 TALLOC_CTX *_mem_save_needed_0;
21890 if (flags & NDR_IN) {
21891 ZERO_STRUCT(r->out);
21893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21894 NDR_PULL_ALLOC(ndr, r->in.handle);
21896 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21897 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21898 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21902 if (_ptr_buffer) {
21903 NDR_PULL_ALLOC(ndr, r->in.buffer);
21904 } else {
21905 r->in.buffer = NULL;
21907 if (r->in.buffer) {
21908 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21909 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21910 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21914 NDR_PULL_ALLOC(ndr, r->out.needed);
21915 ZERO_STRUCTP(r->out.needed);
21917 if (flags & NDR_OUT) {
21918 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21919 if (_ptr_info) {
21920 NDR_PULL_ALLOC(ndr, r->out.info);
21921 } else {
21922 r->out.info = NULL;
21924 if (r->out.info) {
21925 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21926 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21928 struct ndr_pull *_ndr_info;
21929 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21930 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21931 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21932 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21937 NDR_PULL_ALLOC(ndr, r->out.needed);
21939 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21940 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21943 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21945 return NDR_ERR_SUCCESS;
21948 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21950 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21951 ndr->depth++;
21952 if (flags & NDR_SET_VALUES) {
21953 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21955 if (flags & NDR_IN) {
21956 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21957 ndr->depth++;
21958 ndr_print_ptr(ndr, "handle", r->in.handle);
21959 ndr->depth++;
21960 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21961 ndr->depth--;
21962 ndr_print_uint32(ndr, "level", r->in.level);
21963 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21964 ndr->depth++;
21965 if (r->in.buffer) {
21966 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21968 ndr->depth--;
21969 ndr_print_uint32(ndr, "offered", r->in.offered);
21970 ndr->depth--;
21972 if (flags & NDR_OUT) {
21973 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21974 ndr->depth++;
21975 ndr_print_ptr(ndr, "info", r->out.info);
21976 ndr->depth++;
21977 if (r->out.info) {
21978 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21979 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21981 ndr->depth--;
21982 ndr_print_ptr(ndr, "needed", r->out.needed);
21983 ndr->depth++;
21984 ndr_print_uint32(ndr, "needed", *r->out.needed);
21985 ndr->depth--;
21986 ndr_print_WERROR(ndr, "result", r->out.result);
21987 ndr->depth--;
21989 ndr->depth--;
21992 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21994 if (flags & NDR_IN) {
21995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21996 if (r->in.servername) {
21997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22000 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22002 if (r->in.info_ctr == NULL) {
22003 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22005 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22007 if (flags & NDR_OUT) {
22008 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22010 return NDR_ERR_SUCCESS;
22013 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
22015 uint32_t _ptr_servername;
22016 TALLOC_CTX *_mem_save_servername_0;
22017 TALLOC_CTX *_mem_save_info_ctr_0;
22018 if (flags & NDR_IN) {
22019 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22020 if (_ptr_servername) {
22021 NDR_PULL_ALLOC(ndr, r->in.servername);
22022 } else {
22023 r->in.servername = NULL;
22025 if (r->in.servername) {
22026 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22027 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22028 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22029 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22030 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22031 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
22033 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22034 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22037 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22038 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22040 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22041 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22042 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22045 if (flags & NDR_OUT) {
22046 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22048 return NDR_ERR_SUCCESS;
22051 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
22053 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
22054 ndr->depth++;
22055 if (flags & NDR_SET_VALUES) {
22056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22058 if (flags & NDR_IN) {
22059 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
22060 ndr->depth++;
22061 ndr_print_ptr(ndr, "servername", r->in.servername);
22062 ndr->depth++;
22063 if (r->in.servername) {
22064 ndr_print_string(ndr, "servername", r->in.servername);
22066 ndr->depth--;
22067 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22068 ndr->depth++;
22069 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22070 ndr->depth--;
22071 ndr->depth--;
22073 if (flags & NDR_OUT) {
22074 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
22075 ndr->depth++;
22076 ndr_print_WERROR(ndr, "result", r->out.result);
22077 ndr->depth--;
22079 ndr->depth--;
22082 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
22084 if (flags & NDR_IN) {
22085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22086 if (r->in.server) {
22087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22089 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22093 if (r->in.environment) {
22094 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22095 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22097 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22101 if (r->in.buffer) {
22102 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22106 if (flags & NDR_OUT) {
22107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22108 if (r->out.info) {
22109 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22111 if (r->out.needed == NULL) {
22112 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22115 if (r->out.count == NULL) {
22116 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22119 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22121 return NDR_ERR_SUCCESS;
22124 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
22126 uint32_t _ptr_server;
22127 uint32_t _ptr_environment;
22128 uint32_t _ptr_buffer;
22129 uint32_t _ptr_info;
22130 TALLOC_CTX *_mem_save_server_0;
22131 TALLOC_CTX *_mem_save_environment_0;
22132 TALLOC_CTX *_mem_save_buffer_0;
22133 TALLOC_CTX *_mem_save_info_0;
22134 TALLOC_CTX *_mem_save_needed_0;
22135 TALLOC_CTX *_mem_save_count_0;
22136 if (flags & NDR_IN) {
22137 ZERO_STRUCT(r->out);
22139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22140 if (_ptr_server) {
22141 NDR_PULL_ALLOC(ndr, r->in.server);
22142 } else {
22143 r->in.server = NULL;
22145 if (r->in.server) {
22146 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22147 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22148 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22149 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22150 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22151 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
22153 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22154 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22158 if (_ptr_environment) {
22159 NDR_PULL_ALLOC(ndr, r->in.environment);
22160 } else {
22161 r->in.environment = NULL;
22163 if (r->in.environment) {
22164 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22165 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22166 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22167 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22168 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22169 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
22171 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22177 if (_ptr_buffer) {
22178 NDR_PULL_ALLOC(ndr, r->in.buffer);
22179 } else {
22180 r->in.buffer = NULL;
22182 if (r->in.buffer) {
22183 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22184 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22185 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22189 NDR_PULL_ALLOC(ndr, r->out.needed);
22190 ZERO_STRUCTP(r->out.needed);
22191 NDR_PULL_ALLOC(ndr, r->out.count);
22192 ZERO_STRUCTP(r->out.count);
22194 if (flags & NDR_OUT) {
22195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22196 if (_ptr_info) {
22197 NDR_PULL_ALLOC(ndr, r->out.info);
22198 } else {
22199 r->out.info = NULL;
22201 if (r->out.info) {
22202 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22203 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22204 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22208 NDR_PULL_ALLOC(ndr, r->out.needed);
22210 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22211 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22215 NDR_PULL_ALLOC(ndr, r->out.count);
22217 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22218 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22223 return NDR_ERR_SUCCESS;
22226 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
22228 uint32_t cntr_info_0;
22229 if (flags & NDR_IN) {
22230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22233 if (flags & NDR_OUT) {
22234 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22235 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22236 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22238 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22239 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22242 return NDR_ERR_SUCCESS;
22245 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
22247 uint32_t cntr_info_0;
22248 TALLOC_CTX *_mem_save_info_0;
22249 if (flags & NDR_IN) {
22250 ZERO_STRUCT(r->out);
22252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22255 if (flags & NDR_OUT) {
22256 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22257 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22258 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22259 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22260 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22261 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22263 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22264 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22268 return NDR_ERR_SUCCESS;
22271 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
22273 uint32_t cntr_info_2;
22274 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
22275 ndr->depth++;
22276 if (flags & NDR_SET_VALUES) {
22277 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22279 if (flags & NDR_IN) {
22280 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
22281 ndr->depth++;
22282 ndr_print_ptr(ndr, "server", r->in.server);
22283 ndr->depth++;
22284 if (r->in.server) {
22285 ndr_print_string(ndr, "server", r->in.server);
22287 ndr->depth--;
22288 ndr_print_ptr(ndr, "environment", r->in.environment);
22289 ndr->depth++;
22290 if (r->in.environment) {
22291 ndr_print_string(ndr, "environment", r->in.environment);
22293 ndr->depth--;
22294 ndr_print_uint32(ndr, "level", r->in.level);
22295 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22296 ndr->depth++;
22297 if (r->in.buffer) {
22298 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22300 ndr->depth--;
22301 ndr_print_uint32(ndr, "offered", r->in.offered);
22302 ndr->depth--;
22304 if (flags & NDR_OUT) {
22305 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
22306 ndr->depth++;
22307 ndr_print_ptr(ndr, "count", r->out.count);
22308 ndr->depth++;
22309 ndr_print_uint32(ndr, "count", *r->out.count);
22310 ndr->depth--;
22311 ndr_print_ptr(ndr, "info", r->out.info);
22312 ndr->depth++;
22313 ndr_print_ptr(ndr, "info", *r->out.info);
22314 ndr->depth++;
22315 if (*r->out.info) {
22316 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22317 ndr->depth++;
22318 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22319 char *idx_2=NULL;
22320 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22321 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22322 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22323 free(idx_2);
22326 ndr->depth--;
22328 ndr->depth--;
22329 ndr->depth--;
22330 ndr_print_ptr(ndr, "needed", r->out.needed);
22331 ndr->depth++;
22332 ndr_print_uint32(ndr, "needed", *r->out.needed);
22333 ndr->depth--;
22334 ndr_print_WERROR(ndr, "result", r->out.result);
22335 ndr->depth--;
22337 ndr->depth--;
22340 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
22342 if (flags & NDR_IN) {
22343 if (r->in.handle == NULL) {
22344 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22346 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
22348 if (r->in.architecture) {
22349 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22350 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22351 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22352 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22356 if (r->in.buffer) {
22357 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22361 if (flags & NDR_OUT) {
22362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22363 if (r->out.info) {
22365 struct ndr_push *_ndr_info;
22366 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22367 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22368 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22369 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22372 if (r->out.needed == NULL) {
22373 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22376 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22378 return NDR_ERR_SUCCESS;
22381 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
22383 uint32_t _ptr_architecture;
22384 uint32_t _ptr_buffer;
22385 uint32_t _ptr_info;
22386 TALLOC_CTX *_mem_save_handle_0;
22387 TALLOC_CTX *_mem_save_architecture_0;
22388 TALLOC_CTX *_mem_save_buffer_0;
22389 TALLOC_CTX *_mem_save_info_0;
22390 TALLOC_CTX *_mem_save_needed_0;
22391 if (flags & NDR_IN) {
22392 ZERO_STRUCT(r->out);
22394 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22395 NDR_PULL_ALLOC(ndr, r->in.handle);
22397 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22398 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22399 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
22402 if (_ptr_architecture) {
22403 NDR_PULL_ALLOC(ndr, r->in.architecture);
22404 } else {
22405 r->in.architecture = NULL;
22407 if (r->in.architecture) {
22408 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
22409 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
22410 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22411 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22412 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22413 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
22415 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22416 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
22419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22421 if (_ptr_buffer) {
22422 NDR_PULL_ALLOC(ndr, r->in.buffer);
22423 } else {
22424 r->in.buffer = NULL;
22426 if (r->in.buffer) {
22427 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22428 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22429 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22433 NDR_PULL_ALLOC(ndr, r->out.needed);
22434 ZERO_STRUCTP(r->out.needed);
22436 if (flags & NDR_OUT) {
22437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22438 if (_ptr_info) {
22439 NDR_PULL_ALLOC(ndr, r->out.info);
22440 } else {
22441 r->out.info = NULL;
22443 if (r->out.info) {
22444 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22445 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22447 struct ndr_pull *_ndr_info;
22448 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22449 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22450 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22451 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22455 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22456 NDR_PULL_ALLOC(ndr, r->out.needed);
22458 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22459 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22462 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22464 return NDR_ERR_SUCCESS;
22467 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
22469 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
22470 ndr->depth++;
22471 if (flags & NDR_SET_VALUES) {
22472 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22474 if (flags & NDR_IN) {
22475 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
22476 ndr->depth++;
22477 ndr_print_ptr(ndr, "handle", r->in.handle);
22478 ndr->depth++;
22479 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22480 ndr->depth--;
22481 ndr_print_ptr(ndr, "architecture", r->in.architecture);
22482 ndr->depth++;
22483 if (r->in.architecture) {
22484 ndr_print_string(ndr, "architecture", r->in.architecture);
22486 ndr->depth--;
22487 ndr_print_uint32(ndr, "level", r->in.level);
22488 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22489 ndr->depth++;
22490 if (r->in.buffer) {
22491 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22493 ndr->depth--;
22494 ndr_print_uint32(ndr, "offered", r->in.offered);
22495 ndr->depth--;
22497 if (flags & NDR_OUT) {
22498 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
22499 ndr->depth++;
22500 ndr_print_ptr(ndr, "info", r->out.info);
22501 ndr->depth++;
22502 if (r->out.info) {
22503 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22504 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
22506 ndr->depth--;
22507 ndr_print_ptr(ndr, "needed", r->out.needed);
22508 ndr->depth++;
22509 ndr_print_uint32(ndr, "needed", *r->out.needed);
22510 ndr->depth--;
22511 ndr_print_WERROR(ndr, "result", r->out.result);
22512 ndr->depth--;
22514 ndr->depth--;
22517 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22519 if (flags & NDR_IN) {
22520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22521 if (r->in.server) {
22522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22524 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22525 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22528 if (r->in.environment) {
22529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22532 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22535 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22536 if (r->in.buffer) {
22537 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22541 if (flags & NDR_OUT) {
22542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22543 if (r->out.info) {
22545 struct ndr_push *_ndr_info;
22546 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22547 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22548 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22549 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22552 if (r->out.needed == NULL) {
22553 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22556 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22558 return NDR_ERR_SUCCESS;
22561 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
22563 uint32_t _ptr_server;
22564 uint32_t _ptr_environment;
22565 uint32_t _ptr_buffer;
22566 uint32_t _ptr_info;
22567 TALLOC_CTX *_mem_save_server_0;
22568 TALLOC_CTX *_mem_save_environment_0;
22569 TALLOC_CTX *_mem_save_buffer_0;
22570 TALLOC_CTX *_mem_save_info_0;
22571 TALLOC_CTX *_mem_save_needed_0;
22572 if (flags & NDR_IN) {
22573 ZERO_STRUCT(r->out);
22575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22576 if (_ptr_server) {
22577 NDR_PULL_ALLOC(ndr, r->in.server);
22578 } else {
22579 r->in.server = NULL;
22581 if (r->in.server) {
22582 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22583 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22584 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22585 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22586 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22587 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
22589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22594 if (_ptr_environment) {
22595 NDR_PULL_ALLOC(ndr, r->in.environment);
22596 } else {
22597 r->in.environment = NULL;
22599 if (r->in.environment) {
22600 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22601 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22602 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22603 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22604 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22605 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
22607 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22608 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22612 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22613 if (_ptr_buffer) {
22614 NDR_PULL_ALLOC(ndr, r->in.buffer);
22615 } else {
22616 r->in.buffer = NULL;
22618 if (r->in.buffer) {
22619 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22620 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22621 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22625 NDR_PULL_ALLOC(ndr, r->out.needed);
22626 ZERO_STRUCTP(r->out.needed);
22628 if (flags & NDR_OUT) {
22629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22630 if (_ptr_info) {
22631 NDR_PULL_ALLOC(ndr, r->out.info);
22632 } else {
22633 r->out.info = NULL;
22635 if (r->out.info) {
22636 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22637 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22639 struct ndr_pull *_ndr_info;
22640 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22641 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22642 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22643 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22647 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22648 NDR_PULL_ALLOC(ndr, r->out.needed);
22650 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22651 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22656 return NDR_ERR_SUCCESS;
22659 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22661 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
22662 ndr->depth++;
22663 if (flags & NDR_SET_VALUES) {
22664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22666 if (flags & NDR_IN) {
22667 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
22668 ndr->depth++;
22669 ndr_print_ptr(ndr, "server", r->in.server);
22670 ndr->depth++;
22671 if (r->in.server) {
22672 ndr_print_string(ndr, "server", r->in.server);
22674 ndr->depth--;
22675 ndr_print_ptr(ndr, "environment", r->in.environment);
22676 ndr->depth++;
22677 if (r->in.environment) {
22678 ndr_print_string(ndr, "environment", r->in.environment);
22680 ndr->depth--;
22681 ndr_print_uint32(ndr, "level", r->in.level);
22682 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22683 ndr->depth++;
22684 if (r->in.buffer) {
22685 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22687 ndr->depth--;
22688 ndr_print_uint32(ndr, "offered", r->in.offered);
22689 ndr->depth--;
22691 if (flags & NDR_OUT) {
22692 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
22693 ndr->depth++;
22694 ndr_print_ptr(ndr, "info", r->out.info);
22695 ndr->depth++;
22696 if (r->out.info) {
22697 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22698 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
22700 ndr->depth--;
22701 ndr_print_ptr(ndr, "needed", r->out.needed);
22702 ndr->depth++;
22703 ndr_print_uint32(ndr, "needed", *r->out.needed);
22704 ndr->depth--;
22705 ndr_print_WERROR(ndr, "result", r->out.result);
22706 ndr->depth--;
22708 ndr->depth--;
22711 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22713 if (flags & NDR_IN) {
22714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22715 if (r->in.server) {
22716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22725 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22728 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22730 if (flags & NDR_OUT) {
22731 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22733 return NDR_ERR_SUCCESS;
22736 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22738 uint32_t _ptr_server;
22739 TALLOC_CTX *_mem_save_server_0;
22740 if (flags & NDR_IN) {
22741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22742 if (_ptr_server) {
22743 NDR_PULL_ALLOC(ndr, r->in.server);
22744 } else {
22745 r->in.server = NULL;
22747 if (r->in.server) {
22748 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22749 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22750 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22751 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22752 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22753 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
22755 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22756 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22759 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22760 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22761 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22762 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
22764 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22765 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22766 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22767 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22768 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22769 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
22771 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22772 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22774 if (flags & NDR_OUT) {
22775 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22777 return NDR_ERR_SUCCESS;
22780 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22782 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22783 ndr->depth++;
22784 if (flags & NDR_SET_VALUES) {
22785 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22787 if (flags & NDR_IN) {
22788 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22789 ndr->depth++;
22790 ndr_print_ptr(ndr, "server", r->in.server);
22791 ndr->depth++;
22792 if (r->in.server) {
22793 ndr_print_string(ndr, "server", r->in.server);
22795 ndr->depth--;
22796 ndr_print_string(ndr, "architecture", r->in.architecture);
22797 ndr_print_string(ndr, "driver", r->in.driver);
22798 ndr->depth--;
22800 if (flags & NDR_OUT) {
22801 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22802 ndr->depth++;
22803 ndr_print_WERROR(ndr, "result", r->out.result);
22804 ndr->depth--;
22806 ndr->depth--;
22809 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22811 if (flags & NDR_IN) {
22812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22813 if (r->in.server) {
22814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22817 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22822 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22826 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.path_name, ndr_charset_length(r->in.path_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22832 if (flags & NDR_OUT) {
22833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22835 return NDR_ERR_SUCCESS;
22838 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22840 uint32_t _ptr_server;
22841 TALLOC_CTX *_mem_save_server_0;
22842 if (flags & NDR_IN) {
22843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22844 if (_ptr_server) {
22845 NDR_PULL_ALLOC(ndr, r->in.server);
22846 } else {
22847 r->in.server = NULL;
22849 if (r->in.server) {
22850 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22851 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22852 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22853 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22854 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22855 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
22857 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22858 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22861 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22862 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22863 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22864 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
22866 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22868 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22869 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22870 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22871 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path_name), ndr_get_array_length(ndr, &r->in.path_name));
22873 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22874 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t), CH_UTF16));
22875 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22876 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22877 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22878 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
22880 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22881 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
22883 if (flags & NDR_OUT) {
22884 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22886 return NDR_ERR_SUCCESS;
22889 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22891 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22892 ndr->depth++;
22893 if (flags & NDR_SET_VALUES) {
22894 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22896 if (flags & NDR_IN) {
22897 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22898 ndr->depth++;
22899 ndr_print_ptr(ndr, "server", r->in.server);
22900 ndr->depth++;
22901 if (r->in.server) {
22902 ndr_print_string(ndr, "server", r->in.server);
22904 ndr->depth--;
22905 ndr_print_string(ndr, "architecture", r->in.architecture);
22906 ndr_print_string(ndr, "path_name", r->in.path_name);
22907 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22908 ndr->depth--;
22910 if (flags & NDR_OUT) {
22911 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22912 ndr->depth++;
22913 ndr_print_WERROR(ndr, "result", r->out.result);
22914 ndr->depth--;
22916 ndr->depth--;
22919 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22921 if (flags & NDR_IN) {
22922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22923 if (r->in.servername) {
22924 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22925 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22926 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22927 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22929 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22930 if (r->in.environment) {
22931 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22933 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22934 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22937 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22938 if (r->in.buffer) {
22939 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22943 if (flags & NDR_OUT) {
22944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22945 if (r->out.info) {
22946 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22948 if (r->out.needed == NULL) {
22949 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22952 if (r->out.count == NULL) {
22953 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22956 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22958 return NDR_ERR_SUCCESS;
22961 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22963 uint32_t _ptr_servername;
22964 uint32_t _ptr_environment;
22965 uint32_t _ptr_buffer;
22966 uint32_t _ptr_info;
22967 TALLOC_CTX *_mem_save_servername_0;
22968 TALLOC_CTX *_mem_save_environment_0;
22969 TALLOC_CTX *_mem_save_buffer_0;
22970 TALLOC_CTX *_mem_save_info_0;
22971 TALLOC_CTX *_mem_save_needed_0;
22972 TALLOC_CTX *_mem_save_count_0;
22973 if (flags & NDR_IN) {
22974 ZERO_STRUCT(r->out);
22976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22977 if (_ptr_servername) {
22978 NDR_PULL_ALLOC(ndr, r->in.servername);
22979 } else {
22980 r->in.servername = NULL;
22982 if (r->in.servername) {
22983 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22984 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22985 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22986 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22987 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22988 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
22990 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22991 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22995 if (_ptr_environment) {
22996 NDR_PULL_ALLOC(ndr, r->in.environment);
22997 } else {
22998 r->in.environment = NULL;
23000 if (r->in.environment) {
23001 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23002 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23003 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23004 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23005 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23006 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
23008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23014 if (_ptr_buffer) {
23015 NDR_PULL_ALLOC(ndr, r->in.buffer);
23016 } else {
23017 r->in.buffer = NULL;
23019 if (r->in.buffer) {
23020 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23021 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23022 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23026 NDR_PULL_ALLOC(ndr, r->out.needed);
23027 ZERO_STRUCTP(r->out.needed);
23028 NDR_PULL_ALLOC(ndr, r->out.count);
23029 ZERO_STRUCTP(r->out.count);
23031 if (flags & NDR_OUT) {
23032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23033 if (_ptr_info) {
23034 NDR_PULL_ALLOC(ndr, r->out.info);
23035 } else {
23036 r->out.info = NULL;
23038 if (r->out.info) {
23039 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23040 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23041 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23045 NDR_PULL_ALLOC(ndr, r->out.needed);
23047 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23048 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23052 NDR_PULL_ALLOC(ndr, r->out.count);
23054 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23055 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23058 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23060 return NDR_ERR_SUCCESS;
23063 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
23065 uint32_t cntr_info_0;
23066 if (flags & NDR_IN) {
23067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23070 if (flags & NDR_OUT) {
23071 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23072 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23073 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23075 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23076 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23079 return NDR_ERR_SUCCESS;
23082 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
23084 uint32_t cntr_info_0;
23085 TALLOC_CTX *_mem_save_info_0;
23086 if (flags & NDR_IN) {
23087 ZERO_STRUCT(r->out);
23089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23092 if (flags & NDR_OUT) {
23093 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23094 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23095 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23096 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23097 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23098 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23100 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23101 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23105 return NDR_ERR_SUCCESS;
23108 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
23110 uint32_t cntr_info_2;
23111 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
23112 ndr->depth++;
23113 if (flags & NDR_SET_VALUES) {
23114 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23116 if (flags & NDR_IN) {
23117 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
23118 ndr->depth++;
23119 ndr_print_ptr(ndr, "servername", r->in.servername);
23120 ndr->depth++;
23121 if (r->in.servername) {
23122 ndr_print_string(ndr, "servername", r->in.servername);
23124 ndr->depth--;
23125 ndr_print_ptr(ndr, "environment", r->in.environment);
23126 ndr->depth++;
23127 if (r->in.environment) {
23128 ndr_print_string(ndr, "environment", r->in.environment);
23130 ndr->depth--;
23131 ndr_print_uint32(ndr, "level", r->in.level);
23132 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23133 ndr->depth++;
23134 if (r->in.buffer) {
23135 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23137 ndr->depth--;
23138 ndr_print_uint32(ndr, "offered", r->in.offered);
23139 ndr->depth--;
23141 if (flags & NDR_OUT) {
23142 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
23143 ndr->depth++;
23144 ndr_print_ptr(ndr, "count", r->out.count);
23145 ndr->depth++;
23146 ndr_print_uint32(ndr, "count", *r->out.count);
23147 ndr->depth--;
23148 ndr_print_ptr(ndr, "info", r->out.info);
23149 ndr->depth++;
23150 ndr_print_ptr(ndr, "info", *r->out.info);
23151 ndr->depth++;
23152 if (*r->out.info) {
23153 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23154 ndr->depth++;
23155 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23156 char *idx_2=NULL;
23157 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23158 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23159 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23160 free(idx_2);
23163 ndr->depth--;
23165 ndr->depth--;
23166 ndr->depth--;
23167 ndr_print_ptr(ndr, "needed", r->out.needed);
23168 ndr->depth++;
23169 ndr_print_uint32(ndr, "needed", *r->out.needed);
23170 ndr->depth--;
23171 ndr_print_WERROR(ndr, "result", r->out.result);
23172 ndr->depth--;
23174 ndr->depth--;
23177 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23179 if (flags & NDR_IN) {
23180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
23181 if (r->in.server) {
23182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
23183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
23185 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
23188 if (r->in.environment) {
23189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23192 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23196 if (r->in.buffer) {
23197 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23201 if (flags & NDR_OUT) {
23202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23203 if (r->out.info) {
23205 struct ndr_push *_ndr_info;
23206 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23207 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23208 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23209 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23212 if (r->out.needed == NULL) {
23213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23216 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23218 return NDR_ERR_SUCCESS;
23221 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
23223 uint32_t _ptr_server;
23224 uint32_t _ptr_environment;
23225 uint32_t _ptr_buffer;
23226 uint32_t _ptr_info;
23227 TALLOC_CTX *_mem_save_server_0;
23228 TALLOC_CTX *_mem_save_environment_0;
23229 TALLOC_CTX *_mem_save_buffer_0;
23230 TALLOC_CTX *_mem_save_info_0;
23231 TALLOC_CTX *_mem_save_needed_0;
23232 if (flags & NDR_IN) {
23233 ZERO_STRUCT(r->out);
23235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
23236 if (_ptr_server) {
23237 NDR_PULL_ALLOC(ndr, r->in.server);
23238 } else {
23239 r->in.server = NULL;
23241 if (r->in.server) {
23242 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
23243 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
23244 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
23245 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
23246 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
23247 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
23249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
23250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
23251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
23253 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
23254 if (_ptr_environment) {
23255 NDR_PULL_ALLOC(ndr, r->in.environment);
23256 } else {
23257 r->in.environment = NULL;
23259 if (r->in.environment) {
23260 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23261 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23262 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23263 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23264 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23265 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
23267 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23273 if (_ptr_buffer) {
23274 NDR_PULL_ALLOC(ndr, r->in.buffer);
23275 } else {
23276 r->in.buffer = NULL;
23278 if (r->in.buffer) {
23279 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23280 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23281 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23285 NDR_PULL_ALLOC(ndr, r->out.needed);
23286 ZERO_STRUCTP(r->out.needed);
23288 if (flags & NDR_OUT) {
23289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23290 if (_ptr_info) {
23291 NDR_PULL_ALLOC(ndr, r->out.info);
23292 } else {
23293 r->out.info = NULL;
23295 if (r->out.info) {
23296 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23297 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23299 struct ndr_pull *_ndr_info;
23300 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23301 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23302 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23303 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23308 NDR_PULL_ALLOC(ndr, r->out.needed);
23310 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23311 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23314 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23316 return NDR_ERR_SUCCESS;
23319 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23321 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
23322 ndr->depth++;
23323 if (flags & NDR_SET_VALUES) {
23324 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23326 if (flags & NDR_IN) {
23327 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
23328 ndr->depth++;
23329 ndr_print_ptr(ndr, "server", r->in.server);
23330 ndr->depth++;
23331 if (r->in.server) {
23332 ndr_print_string(ndr, "server", r->in.server);
23334 ndr->depth--;
23335 ndr_print_ptr(ndr, "environment", r->in.environment);
23336 ndr->depth++;
23337 if (r->in.environment) {
23338 ndr_print_string(ndr, "environment", r->in.environment);
23340 ndr->depth--;
23341 ndr_print_uint32(ndr, "level", r->in.level);
23342 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23343 ndr->depth++;
23344 if (r->in.buffer) {
23345 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23347 ndr->depth--;
23348 ndr_print_uint32(ndr, "offered", r->in.offered);
23349 ndr->depth--;
23351 if (flags & NDR_OUT) {
23352 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
23353 ndr->depth++;
23354 ndr_print_ptr(ndr, "info", r->out.info);
23355 ndr->depth++;
23356 if (r->out.info) {
23357 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23358 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
23360 ndr->depth--;
23361 ndr_print_ptr(ndr, "needed", r->out.needed);
23362 ndr->depth++;
23363 ndr_print_uint32(ndr, "needed", *r->out.needed);
23364 ndr->depth--;
23365 ndr_print_WERROR(ndr, "result", r->out.result);
23366 ndr->depth--;
23368 ndr->depth--;
23371 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
23373 if (flags & NDR_IN) {
23374 if (r->in.handle == NULL) {
23375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23377 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23379 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23380 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23382 if (flags & NDR_OUT) {
23383 if (r->out.job_id == NULL) {
23384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
23387 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23389 return NDR_ERR_SUCCESS;
23392 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
23394 TALLOC_CTX *_mem_save_handle_0;
23395 TALLOC_CTX *_mem_save_job_id_0;
23396 if (flags & NDR_IN) {
23397 ZERO_STRUCT(r->out);
23399 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23400 NDR_PULL_ALLOC(ndr, r->in.handle);
23402 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23403 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23404 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23407 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23408 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23409 NDR_PULL_ALLOC(ndr, r->out.job_id);
23410 ZERO_STRUCTP(r->out.job_id);
23412 if (flags & NDR_OUT) {
23413 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23414 NDR_PULL_ALLOC(ndr, r->out.job_id);
23416 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
23417 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
23418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
23419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
23420 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23422 return NDR_ERR_SUCCESS;
23425 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
23427 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
23428 ndr->depth++;
23429 if (flags & NDR_SET_VALUES) {
23430 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23432 if (flags & NDR_IN) {
23433 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
23434 ndr->depth++;
23435 ndr_print_ptr(ndr, "handle", r->in.handle);
23436 ndr->depth++;
23437 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23438 ndr->depth--;
23439 ndr_print_uint32(ndr, "level", r->in.level);
23440 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23441 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
23442 ndr->depth--;
23444 if (flags & NDR_OUT) {
23445 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
23446 ndr->depth++;
23447 ndr_print_ptr(ndr, "job_id", r->out.job_id);
23448 ndr->depth++;
23449 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
23450 ndr->depth--;
23451 ndr_print_WERROR(ndr, "result", r->out.result);
23452 ndr->depth--;
23454 ndr->depth--;
23457 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
23459 if (flags & NDR_IN) {
23460 if (r->in.handle == NULL) {
23461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23463 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23465 if (flags & NDR_OUT) {
23466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23468 return NDR_ERR_SUCCESS;
23471 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
23473 TALLOC_CTX *_mem_save_handle_0;
23474 if (flags & NDR_IN) {
23475 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23476 NDR_PULL_ALLOC(ndr, r->in.handle);
23478 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23479 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23480 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23483 if (flags & NDR_OUT) {
23484 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23486 return NDR_ERR_SUCCESS;
23489 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
23491 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
23492 ndr->depth++;
23493 if (flags & NDR_SET_VALUES) {
23494 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23496 if (flags & NDR_IN) {
23497 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
23498 ndr->depth++;
23499 ndr_print_ptr(ndr, "handle", r->in.handle);
23500 ndr->depth++;
23501 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23502 ndr->depth--;
23503 ndr->depth--;
23505 if (flags & NDR_OUT) {
23506 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
23507 ndr->depth++;
23508 ndr_print_WERROR(ndr, "result", r->out.result);
23509 ndr->depth--;
23511 ndr->depth--;
23514 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
23516 if (flags & NDR_IN) {
23517 if (r->in.handle == NULL) {
23518 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23520 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23521 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
23524 if (flags & NDR_OUT) {
23525 if (r->out.num_written == NULL) {
23526 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
23529 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23531 return NDR_ERR_SUCCESS;
23534 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
23536 TALLOC_CTX *_mem_save_handle_0;
23537 TALLOC_CTX *_mem_save_num_written_0;
23538 if (flags & NDR_IN) {
23539 ZERO_STRUCT(r->out);
23541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23542 NDR_PULL_ALLOC(ndr, r->in.handle);
23544 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23545 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23546 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23548 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
23549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
23550 NDR_PULL_ALLOC(ndr, r->out.num_written);
23551 ZERO_STRUCTP(r->out.num_written);
23553 if (flags & NDR_OUT) {
23554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23555 NDR_PULL_ALLOC(ndr, r->out.num_written);
23557 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
23558 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
23559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
23560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
23561 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23563 return NDR_ERR_SUCCESS;
23566 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
23568 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
23569 ndr->depth++;
23570 if (flags & NDR_SET_VALUES) {
23571 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23573 if (flags & NDR_IN) {
23574 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
23575 ndr->depth++;
23576 ndr_print_ptr(ndr, "handle", r->in.handle);
23577 ndr->depth++;
23578 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23579 ndr->depth--;
23580 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
23581 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
23582 ndr->depth--;
23584 if (flags & NDR_OUT) {
23585 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
23586 ndr->depth++;
23587 ndr_print_ptr(ndr, "num_written", r->out.num_written);
23588 ndr->depth++;
23589 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
23590 ndr->depth--;
23591 ndr_print_WERROR(ndr, "result", r->out.result);
23592 ndr->depth--;
23594 ndr->depth--;
23597 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
23599 if (flags & NDR_IN) {
23600 if (r->in.handle == NULL) {
23601 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23603 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23605 if (flags & NDR_OUT) {
23606 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23608 return NDR_ERR_SUCCESS;
23611 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
23613 TALLOC_CTX *_mem_save_handle_0;
23614 if (flags & NDR_IN) {
23615 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23616 NDR_PULL_ALLOC(ndr, r->in.handle);
23618 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23619 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23620 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23623 if (flags & NDR_OUT) {
23624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23626 return NDR_ERR_SUCCESS;
23629 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
23631 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
23632 ndr->depth++;
23633 if (flags & NDR_SET_VALUES) {
23634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23636 if (flags & NDR_IN) {
23637 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
23638 ndr->depth++;
23639 ndr_print_ptr(ndr, "handle", r->in.handle);
23640 ndr->depth++;
23641 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23642 ndr->depth--;
23643 ndr->depth--;
23645 if (flags & NDR_OUT) {
23646 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
23647 ndr->depth++;
23648 ndr_print_WERROR(ndr, "result", r->out.result);
23649 ndr->depth--;
23651 ndr->depth--;
23654 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
23656 if (flags & NDR_IN) {
23657 if (r->in.handle == NULL) {
23658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23660 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23662 if (flags & NDR_OUT) {
23663 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23665 return NDR_ERR_SUCCESS;
23668 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
23670 TALLOC_CTX *_mem_save_handle_0;
23671 if (flags & NDR_IN) {
23672 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23673 NDR_PULL_ALLOC(ndr, r->in.handle);
23675 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23676 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23677 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23680 if (flags & NDR_OUT) {
23681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23683 return NDR_ERR_SUCCESS;
23686 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
23688 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
23689 ndr->depth++;
23690 if (flags & NDR_SET_VALUES) {
23691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23693 if (flags & NDR_IN) {
23694 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
23695 ndr->depth++;
23696 ndr_print_ptr(ndr, "handle", r->in.handle);
23697 ndr->depth++;
23698 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23699 ndr->depth--;
23700 ndr->depth--;
23702 if (flags & NDR_OUT) {
23703 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
23704 ndr->depth++;
23705 ndr_print_WERROR(ndr, "result", r->out.result);
23706 ndr->depth--;
23708 ndr->depth--;
23711 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23713 if (flags & NDR_IN) {
23714 if (r->in.handle == NULL) {
23715 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23717 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23720 if (flags & NDR_OUT) {
23721 if (r->out.data == NULL) {
23722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23725 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23726 if (r->out._data_size == NULL) {
23727 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23730 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23732 return NDR_ERR_SUCCESS;
23735 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23737 TALLOC_CTX *_mem_save_handle_0;
23738 TALLOC_CTX *_mem_save__data_size_0;
23739 if (flags & NDR_IN) {
23740 ZERO_STRUCT(r->out);
23742 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23743 NDR_PULL_ALLOC(ndr, r->in.handle);
23745 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23746 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23747 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23750 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23751 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23752 NDR_PULL_ALLOC(ndr, r->out._data_size);
23753 ZERO_STRUCTP(r->out._data_size);
23755 if (flags & NDR_OUT) {
23756 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23757 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23758 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23760 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23762 NDR_PULL_ALLOC(ndr, r->out._data_size);
23764 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23765 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23769 if (r->out.data) {
23770 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23773 return NDR_ERR_SUCCESS;
23776 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23778 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23779 ndr->depth++;
23780 if (flags & NDR_SET_VALUES) {
23781 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23783 if (flags & NDR_IN) {
23784 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23785 ndr->depth++;
23786 ndr_print_ptr(ndr, "handle", r->in.handle);
23787 ndr->depth++;
23788 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23789 ndr->depth--;
23790 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23791 ndr->depth--;
23793 if (flags & NDR_OUT) {
23794 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23795 ndr->depth++;
23796 ndr_print_ptr(ndr, "data", r->out.data);
23797 ndr->depth++;
23798 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23799 ndr->depth--;
23800 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23801 ndr->depth++;
23802 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23803 ndr->depth--;
23804 ndr_print_WERROR(ndr, "result", r->out.result);
23805 ndr->depth--;
23807 ndr->depth--;
23810 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23812 if (flags & NDR_IN) {
23813 if (r->in.handle == NULL) {
23814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23816 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23818 if (flags & NDR_OUT) {
23819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23821 return NDR_ERR_SUCCESS;
23824 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23826 TALLOC_CTX *_mem_save_handle_0;
23827 if (flags & NDR_IN) {
23828 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23829 NDR_PULL_ALLOC(ndr, r->in.handle);
23831 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23832 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23833 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23836 if (flags & NDR_OUT) {
23837 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23839 return NDR_ERR_SUCCESS;
23842 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23844 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23845 ndr->depth++;
23846 if (flags & NDR_SET_VALUES) {
23847 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23849 if (flags & NDR_IN) {
23850 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23851 ndr->depth++;
23852 ndr_print_ptr(ndr, "handle", r->in.handle);
23853 ndr->depth++;
23854 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23855 ndr->depth--;
23856 ndr->depth--;
23858 if (flags & NDR_OUT) {
23859 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23860 ndr->depth++;
23861 ndr_print_WERROR(ndr, "result", r->out.result);
23862 ndr->depth--;
23864 ndr->depth--;
23867 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23869 if (flags & NDR_IN) {
23870 if (r->in.handle == NULL) {
23871 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23873 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23876 if (r->in.buffer) {
23877 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23878 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23882 if (flags & NDR_OUT) {
23883 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23884 if (r->out.buffer) {
23885 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23886 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23888 if (r->out.needed == NULL) {
23889 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23892 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23894 return NDR_ERR_SUCCESS;
23897 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23899 uint32_t _ptr_buffer;
23900 TALLOC_CTX *_mem_save_handle_0;
23901 TALLOC_CTX *_mem_save_buffer_0;
23902 TALLOC_CTX *_mem_save_needed_0;
23903 if (flags & NDR_IN) {
23904 ZERO_STRUCT(r->out);
23906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23907 NDR_PULL_ALLOC(ndr, r->in.handle);
23909 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23910 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23911 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23915 if (_ptr_buffer) {
23916 NDR_PULL_ALLOC(ndr, r->in.buffer);
23917 } else {
23918 r->in.buffer = NULL;
23920 if (r->in.buffer) {
23921 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23922 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23923 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23924 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23925 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23929 NDR_PULL_ALLOC(ndr, r->out.needed);
23930 ZERO_STRUCTP(r->out.needed);
23931 if (r->in.buffer) {
23932 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23935 if (flags & NDR_OUT) {
23936 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23937 if (_ptr_buffer) {
23938 NDR_PULL_ALLOC(ndr, r->out.buffer);
23939 } else {
23940 r->out.buffer = NULL;
23942 if (r->out.buffer) {
23943 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23944 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23945 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23946 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23947 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23950 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23951 NDR_PULL_ALLOC(ndr, r->out.needed);
23953 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23954 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23957 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23958 if (r->out.buffer) {
23959 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23962 return NDR_ERR_SUCCESS;
23965 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23967 ndr_print_struct(ndr, name, "spoolss_AddJob");
23968 ndr->depth++;
23969 if (flags & NDR_SET_VALUES) {
23970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23972 if (flags & NDR_IN) {
23973 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23974 ndr->depth++;
23975 ndr_print_ptr(ndr, "handle", r->in.handle);
23976 ndr->depth++;
23977 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23978 ndr->depth--;
23979 ndr_print_uint32(ndr, "level", r->in.level);
23980 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23981 ndr->depth++;
23982 if (r->in.buffer) {
23983 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23985 ndr->depth--;
23986 ndr_print_uint32(ndr, "offered", r->in.offered);
23987 ndr->depth--;
23989 if (flags & NDR_OUT) {
23990 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23991 ndr->depth++;
23992 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23993 ndr->depth++;
23994 if (r->out.buffer) {
23995 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23997 ndr->depth--;
23998 ndr_print_ptr(ndr, "needed", r->out.needed);
23999 ndr->depth++;
24000 ndr_print_uint32(ndr, "needed", *r->out.needed);
24001 ndr->depth--;
24002 ndr_print_WERROR(ndr, "result", r->out.result);
24003 ndr->depth--;
24005 ndr->depth--;
24008 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
24010 if (flags & NDR_IN) {
24011 if (r->in.handle == NULL) {
24012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24014 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
24017 if (flags & NDR_OUT) {
24018 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24020 return NDR_ERR_SUCCESS;
24023 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
24025 TALLOC_CTX *_mem_save_handle_0;
24026 if (flags & NDR_IN) {
24027 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24028 NDR_PULL_ALLOC(ndr, r->in.handle);
24030 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24031 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24032 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
24036 if (flags & NDR_OUT) {
24037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24039 return NDR_ERR_SUCCESS;
24042 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
24044 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
24045 ndr->depth++;
24046 if (flags & NDR_SET_VALUES) {
24047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24049 if (flags & NDR_IN) {
24050 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
24051 ndr->depth++;
24052 ndr_print_ptr(ndr, "handle", r->in.handle);
24053 ndr->depth++;
24054 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24055 ndr->depth--;
24056 ndr_print_uint32(ndr, "jobid", r->in.jobid);
24057 ndr->depth--;
24059 if (flags & NDR_OUT) {
24060 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
24061 ndr->depth++;
24062 ndr_print_WERROR(ndr, "result", r->out.result);
24063 ndr->depth--;
24065 ndr->depth--;
24068 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
24070 if (flags & NDR_IN) {
24071 if (r->in.handle == NULL) {
24072 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24074 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24075 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24081 if (flags & NDR_OUT) {
24082 if (r->out.type == NULL) {
24083 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24085 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
24086 if (r->out.data == NULL) {
24087 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24089 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
24090 if (r->out.needed == NULL) {
24091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24094 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24096 return NDR_ERR_SUCCESS;
24099 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
24101 TALLOC_CTX *_mem_save_handle_0;
24102 TALLOC_CTX *_mem_save_type_0;
24103 TALLOC_CTX *_mem_save_data_0;
24104 TALLOC_CTX *_mem_save_needed_0;
24105 if (flags & NDR_IN) {
24106 ZERO_STRUCT(r->out);
24108 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24109 NDR_PULL_ALLOC(ndr, r->in.handle);
24111 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24112 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24113 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24115 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24116 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24117 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24118 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
24120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24121 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
24122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24123 NDR_PULL_ALLOC(ndr, r->out.type);
24124 ZERO_STRUCTP(r->out.type);
24125 NDR_PULL_ALLOC(ndr, r->out.data);
24126 ZERO_STRUCTP(r->out.data);
24127 NDR_PULL_ALLOC(ndr, r->out.needed);
24128 ZERO_STRUCTP(r->out.needed);
24130 if (flags & NDR_OUT) {
24131 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24132 NDR_PULL_ALLOC(ndr, r->out.type);
24134 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24135 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
24136 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
24137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
24138 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24139 NDR_PULL_ALLOC(ndr, r->out.data);
24141 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
24142 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
24143 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
24144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
24145 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24146 NDR_PULL_ALLOC(ndr, r->out.needed);
24148 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24149 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24154 return NDR_ERR_SUCCESS;
24157 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
24159 if (flags & NDR_IN) {
24160 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24162 if (flags & NDR_OUT) {
24163 if (r->out.data == NULL) {
24164 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24166 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
24167 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24169 return NDR_ERR_SUCCESS;
24172 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
24174 TALLOC_CTX *_mem_save_data_0;
24175 if (flags & NDR_IN) {
24176 ZERO_STRUCT(r->out);
24178 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24179 NDR_PULL_ALLOC(ndr, r->out.data);
24180 ZERO_STRUCTP(r->out.data);
24182 if (flags & NDR_OUT) {
24183 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24184 NDR_PULL_ALLOC(ndr, r->out.data);
24186 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
24187 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
24188 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
24189 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
24192 return NDR_ERR_SUCCESS;
24195 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
24197 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
24198 ndr->depth++;
24199 if (flags & NDR_SET_VALUES) {
24200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24202 if (flags & NDR_IN) {
24203 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
24204 ndr->depth++;
24205 ndr_print_ptr(ndr, "handle", r->in.handle);
24206 ndr->depth++;
24207 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24208 ndr->depth--;
24209 ndr_print_string(ndr, "value_name", r->in.value_name);
24210 ndr_print_uint32(ndr, "offered", r->in.offered);
24211 ndr->depth--;
24213 if (flags & NDR_OUT) {
24214 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
24215 ndr->depth++;
24216 ndr_print_ptr(ndr, "type", r->out.type);
24217 ndr->depth++;
24218 ndr_print_winreg_Type(ndr, "type", *r->out.type);
24219 ndr->depth--;
24220 ndr_print_ptr(ndr, "data", r->out.data);
24221 ndr->depth++;
24222 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
24223 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
24224 ndr->depth--;
24225 ndr_print_ptr(ndr, "needed", r->out.needed);
24226 ndr->depth++;
24227 ndr_print_uint32(ndr, "needed", *r->out.needed);
24228 ndr->depth--;
24229 ndr_print_WERROR(ndr, "result", r->out.result);
24230 ndr->depth--;
24232 ndr->depth--;
24235 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
24237 if (flags & NDR_IN) {
24238 if (r->in.handle == NULL) {
24239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24241 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24246 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24247 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
24248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
24250 if (flags & NDR_OUT) {
24251 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24253 return NDR_ERR_SUCCESS;
24256 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
24258 if (flags & NDR_IN) {
24259 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24261 if (flags & NDR_OUT) {
24262 if (r->out.data == NULL) {
24263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24265 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
24266 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24268 return NDR_ERR_SUCCESS;
24271 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
24273 TALLOC_CTX *_mem_save_handle_0;
24274 if (flags & NDR_IN) {
24275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24276 NDR_PULL_ALLOC(ndr, r->in.handle);
24278 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24279 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24280 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24282 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24283 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24284 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24285 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
24287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
24289 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24291 struct ndr_pull *_ndr_data;
24292 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
24293 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
24294 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
24295 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
24297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
24299 if (flags & NDR_OUT) {
24300 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24302 return NDR_ERR_SUCCESS;
24305 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
24307 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
24308 ndr->depth++;
24309 if (flags & NDR_SET_VALUES) {
24310 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24312 if (flags & NDR_IN) {
24313 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
24314 ndr->depth++;
24315 ndr_print_ptr(ndr, "handle", r->in.handle);
24316 ndr->depth++;
24317 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24318 ndr->depth--;
24319 ndr_print_string(ndr, "value_name", r->in.value_name);
24320 ndr_print_winreg_Type(ndr, "type", r->in.type);
24321 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
24322 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
24323 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
24324 ndr->depth--;
24326 if (flags & NDR_OUT) {
24327 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
24328 ndr->depth++;
24329 ndr_print_WERROR(ndr, "result", r->out.result);
24330 ndr->depth--;
24332 ndr->depth--;
24335 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
24337 if (flags & NDR_IN) {
24339 if (flags & NDR_OUT) {
24340 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24342 return NDR_ERR_SUCCESS;
24345 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
24347 if (flags & NDR_IN) {
24349 if (flags & NDR_OUT) {
24350 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24352 return NDR_ERR_SUCCESS;
24355 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
24357 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
24358 ndr->depth++;
24359 if (flags & NDR_SET_VALUES) {
24360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24362 if (flags & NDR_IN) {
24363 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
24364 ndr->depth++;
24365 ndr->depth--;
24367 if (flags & NDR_OUT) {
24368 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
24369 ndr->depth++;
24370 ndr_print_WERROR(ndr, "result", r->out.result);
24371 ndr->depth--;
24373 ndr->depth--;
24376 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
24378 if (flags & NDR_IN) {
24379 if (r->in.handle == NULL) {
24380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24382 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24384 if (flags & NDR_OUT) {
24385 if (r->out.handle == NULL) {
24386 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24388 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24389 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24391 return NDR_ERR_SUCCESS;
24394 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
24396 TALLOC_CTX *_mem_save_handle_0;
24397 if (flags & NDR_IN) {
24398 ZERO_STRUCT(r->out);
24400 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24401 NDR_PULL_ALLOC(ndr, r->in.handle);
24403 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24404 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24405 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24407 NDR_PULL_ALLOC(ndr, r->out.handle);
24408 *r->out.handle = *r->in.handle;
24410 if (flags & NDR_OUT) {
24411 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24412 NDR_PULL_ALLOC(ndr, r->out.handle);
24414 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24415 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24416 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24418 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24420 return NDR_ERR_SUCCESS;
24423 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
24425 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
24426 ndr->depth++;
24427 if (flags & NDR_SET_VALUES) {
24428 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24430 if (flags & NDR_IN) {
24431 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
24432 ndr->depth++;
24433 ndr_print_ptr(ndr, "handle", r->in.handle);
24434 ndr->depth++;
24435 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24436 ndr->depth--;
24437 ndr->depth--;
24439 if (flags & NDR_OUT) {
24440 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
24441 ndr->depth++;
24442 ndr_print_ptr(ndr, "handle", r->out.handle);
24443 ndr->depth++;
24444 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24445 ndr->depth--;
24446 ndr_print_WERROR(ndr, "result", r->out.result);
24447 ndr->depth--;
24449 ndr->depth--;
24452 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
24454 if (flags & NDR_IN) {
24455 if (r->in.handle == NULL) {
24456 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24458 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24460 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24461 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24463 if (flags & NDR_OUT) {
24464 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24466 return NDR_ERR_SUCCESS;
24469 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
24471 TALLOC_CTX *_mem_save_handle_0;
24472 if (flags & NDR_IN) {
24473 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24474 NDR_PULL_ALLOC(ndr, r->in.handle);
24476 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24477 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24478 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24479 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24481 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24482 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24484 if (flags & NDR_OUT) {
24485 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24487 return NDR_ERR_SUCCESS;
24490 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
24492 ndr_print_struct(ndr, name, "spoolss_AddForm");
24493 ndr->depth++;
24494 if (flags & NDR_SET_VALUES) {
24495 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24497 if (flags & NDR_IN) {
24498 ndr_print_struct(ndr, "in", "spoolss_AddForm");
24499 ndr->depth++;
24500 ndr_print_ptr(ndr, "handle", r->in.handle);
24501 ndr->depth++;
24502 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24503 ndr->depth--;
24504 ndr_print_uint32(ndr, "level", r->in.level);
24505 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24506 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24507 ndr->depth--;
24509 if (flags & NDR_OUT) {
24510 ndr_print_struct(ndr, "out", "spoolss_AddForm");
24511 ndr->depth++;
24512 ndr_print_WERROR(ndr, "result", r->out.result);
24513 ndr->depth--;
24515 ndr->depth--;
24518 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
24520 if (flags & NDR_IN) {
24521 if (r->in.handle == NULL) {
24522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24524 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24530 if (flags & NDR_OUT) {
24531 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24533 return NDR_ERR_SUCCESS;
24536 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
24538 TALLOC_CTX *_mem_save_handle_0;
24539 if (flags & NDR_IN) {
24540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24541 NDR_PULL_ALLOC(ndr, r->in.handle);
24543 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24544 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24545 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24547 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24548 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24549 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24550 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
24552 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24553 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
24555 if (flags & NDR_OUT) {
24556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24558 return NDR_ERR_SUCCESS;
24561 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
24563 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
24564 ndr->depth++;
24565 if (flags & NDR_SET_VALUES) {
24566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24568 if (flags & NDR_IN) {
24569 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
24570 ndr->depth++;
24571 ndr_print_ptr(ndr, "handle", r->in.handle);
24572 ndr->depth++;
24573 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24574 ndr->depth--;
24575 ndr_print_string(ndr, "form_name", r->in.form_name);
24576 ndr->depth--;
24578 if (flags & NDR_OUT) {
24579 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
24580 ndr->depth++;
24581 ndr_print_WERROR(ndr, "result", r->out.result);
24582 ndr->depth--;
24584 ndr->depth--;
24587 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
24589 if (flags & NDR_IN) {
24590 if (r->in.handle == NULL) {
24591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24593 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24597 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24600 if (r->in.buffer) {
24601 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24605 if (flags & NDR_OUT) {
24606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24607 if (r->out.info) {
24609 struct ndr_push *_ndr_info;
24610 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24611 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24612 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24613 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24616 if (r->out.needed == NULL) {
24617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24622 return NDR_ERR_SUCCESS;
24625 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
24627 uint32_t _ptr_buffer;
24628 uint32_t _ptr_info;
24629 TALLOC_CTX *_mem_save_handle_0;
24630 TALLOC_CTX *_mem_save_buffer_0;
24631 TALLOC_CTX *_mem_save_info_0;
24632 TALLOC_CTX *_mem_save_needed_0;
24633 if (flags & NDR_IN) {
24634 ZERO_STRUCT(r->out);
24636 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24637 NDR_PULL_ALLOC(ndr, r->in.handle);
24639 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24640 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24641 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24643 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24644 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24645 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24646 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
24648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
24650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24652 if (_ptr_buffer) {
24653 NDR_PULL_ALLOC(ndr, r->in.buffer);
24654 } else {
24655 r->in.buffer = NULL;
24657 if (r->in.buffer) {
24658 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24659 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24660 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24664 NDR_PULL_ALLOC(ndr, r->out.needed);
24665 ZERO_STRUCTP(r->out.needed);
24667 if (flags & NDR_OUT) {
24668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24669 if (_ptr_info) {
24670 NDR_PULL_ALLOC(ndr, r->out.info);
24671 } else {
24672 r->out.info = NULL;
24674 if (r->out.info) {
24675 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24676 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24678 struct ndr_pull *_ndr_info;
24679 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24680 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24681 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24682 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24686 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24687 NDR_PULL_ALLOC(ndr, r->out.needed);
24689 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24690 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24693 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24695 return NDR_ERR_SUCCESS;
24698 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
24700 ndr_print_struct(ndr, name, "spoolss_GetForm");
24701 ndr->depth++;
24702 if (flags & NDR_SET_VALUES) {
24703 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24705 if (flags & NDR_IN) {
24706 ndr_print_struct(ndr, "in", "spoolss_GetForm");
24707 ndr->depth++;
24708 ndr_print_ptr(ndr, "handle", r->in.handle);
24709 ndr->depth++;
24710 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24711 ndr->depth--;
24712 ndr_print_string(ndr, "form_name", r->in.form_name);
24713 ndr_print_uint32(ndr, "level", r->in.level);
24714 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24715 ndr->depth++;
24716 if (r->in.buffer) {
24717 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24719 ndr->depth--;
24720 ndr_print_uint32(ndr, "offered", r->in.offered);
24721 ndr->depth--;
24723 if (flags & NDR_OUT) {
24724 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24725 ndr->depth++;
24726 ndr_print_ptr(ndr, "info", r->out.info);
24727 ndr->depth++;
24728 if (r->out.info) {
24729 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24730 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24732 ndr->depth--;
24733 ndr_print_ptr(ndr, "needed", r->out.needed);
24734 ndr->depth++;
24735 ndr_print_uint32(ndr, "needed", *r->out.needed);
24736 ndr->depth--;
24737 ndr_print_WERROR(ndr, "result", r->out.result);
24738 ndr->depth--;
24740 ndr->depth--;
24743 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24745 if (flags & NDR_IN) {
24746 if (r->in.handle == NULL) {
24747 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24749 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24750 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24751 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24752 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24753 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.form_name, ndr_charset_length(r->in.form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24755 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24756 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24758 if (flags & NDR_OUT) {
24759 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24761 return NDR_ERR_SUCCESS;
24764 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24766 TALLOC_CTX *_mem_save_handle_0;
24767 if (flags & NDR_IN) {
24768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24769 NDR_PULL_ALLOC(ndr, r->in.handle);
24771 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24772 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24773 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24775 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24776 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24777 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24778 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
24780 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24781 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
24782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24783 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24784 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24786 if (flags & NDR_OUT) {
24787 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24789 return NDR_ERR_SUCCESS;
24792 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24794 ndr_print_struct(ndr, name, "spoolss_SetForm");
24795 ndr->depth++;
24796 if (flags & NDR_SET_VALUES) {
24797 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24799 if (flags & NDR_IN) {
24800 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24801 ndr->depth++;
24802 ndr_print_ptr(ndr, "handle", r->in.handle);
24803 ndr->depth++;
24804 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24805 ndr->depth--;
24806 ndr_print_string(ndr, "form_name", r->in.form_name);
24807 ndr_print_uint32(ndr, "level", r->in.level);
24808 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24809 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24810 ndr->depth--;
24812 if (flags & NDR_OUT) {
24813 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24814 ndr->depth++;
24815 ndr_print_WERROR(ndr, "result", r->out.result);
24816 ndr->depth--;
24818 ndr->depth--;
24821 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24823 if (flags & NDR_IN) {
24824 if (r->in.handle == NULL) {
24825 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24827 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24830 if (r->in.buffer) {
24831 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24835 if (flags & NDR_OUT) {
24836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24837 if (r->out.info) {
24838 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24840 if (r->out.needed == NULL) {
24841 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24844 if (r->out.count == NULL) {
24845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24848 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24850 return NDR_ERR_SUCCESS;
24853 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24855 uint32_t _ptr_buffer;
24856 uint32_t _ptr_info;
24857 TALLOC_CTX *_mem_save_handle_0;
24858 TALLOC_CTX *_mem_save_buffer_0;
24859 TALLOC_CTX *_mem_save_info_0;
24860 TALLOC_CTX *_mem_save_needed_0;
24861 TALLOC_CTX *_mem_save_count_0;
24862 if (flags & NDR_IN) {
24863 ZERO_STRUCT(r->out);
24865 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24866 NDR_PULL_ALLOC(ndr, r->in.handle);
24868 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24869 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24870 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24874 if (_ptr_buffer) {
24875 NDR_PULL_ALLOC(ndr, r->in.buffer);
24876 } else {
24877 r->in.buffer = NULL;
24879 if (r->in.buffer) {
24880 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24881 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24882 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24886 NDR_PULL_ALLOC(ndr, r->out.needed);
24887 ZERO_STRUCTP(r->out.needed);
24888 NDR_PULL_ALLOC(ndr, r->out.count);
24889 ZERO_STRUCTP(r->out.count);
24891 if (flags & NDR_OUT) {
24892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24893 if (_ptr_info) {
24894 NDR_PULL_ALLOC(ndr, r->out.info);
24895 } else {
24896 r->out.info = NULL;
24898 if (r->out.info) {
24899 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24900 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24901 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24904 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24905 NDR_PULL_ALLOC(ndr, r->out.needed);
24907 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24908 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24912 NDR_PULL_ALLOC(ndr, r->out.count);
24914 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24915 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24920 return NDR_ERR_SUCCESS;
24923 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24925 uint32_t cntr_info_0;
24926 if (flags & NDR_IN) {
24927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24930 if (flags & NDR_OUT) {
24931 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24932 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24933 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24935 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24936 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24939 return NDR_ERR_SUCCESS;
24942 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24944 uint32_t cntr_info_0;
24945 TALLOC_CTX *_mem_save_info_0;
24946 if (flags & NDR_IN) {
24947 ZERO_STRUCT(r->out);
24949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24952 if (flags & NDR_OUT) {
24953 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24954 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24955 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24956 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24957 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24958 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24960 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24961 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24965 return NDR_ERR_SUCCESS;
24968 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24970 uint32_t cntr_info_2;
24971 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24972 ndr->depth++;
24973 if (flags & NDR_SET_VALUES) {
24974 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24976 if (flags & NDR_IN) {
24977 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24978 ndr->depth++;
24979 ndr_print_ptr(ndr, "handle", r->in.handle);
24980 ndr->depth++;
24981 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24982 ndr->depth--;
24983 ndr_print_uint32(ndr, "level", r->in.level);
24984 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24985 ndr->depth++;
24986 if (r->in.buffer) {
24987 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24989 ndr->depth--;
24990 ndr_print_uint32(ndr, "offered", r->in.offered);
24991 ndr->depth--;
24993 if (flags & NDR_OUT) {
24994 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24995 ndr->depth++;
24996 ndr_print_ptr(ndr, "count", r->out.count);
24997 ndr->depth++;
24998 ndr_print_uint32(ndr, "count", *r->out.count);
24999 ndr->depth--;
25000 ndr_print_ptr(ndr, "info", r->out.info);
25001 ndr->depth++;
25002 ndr_print_ptr(ndr, "info", *r->out.info);
25003 ndr->depth++;
25004 if (*r->out.info) {
25005 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25006 ndr->depth++;
25007 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25008 char *idx_2=NULL;
25009 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25010 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25011 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25012 free(idx_2);
25015 ndr->depth--;
25017 ndr->depth--;
25018 ndr->depth--;
25019 ndr_print_ptr(ndr, "needed", r->out.needed);
25020 ndr->depth++;
25021 ndr_print_uint32(ndr, "needed", *r->out.needed);
25022 ndr->depth--;
25023 ndr_print_WERROR(ndr, "result", r->out.result);
25024 ndr->depth--;
25026 ndr->depth--;
25029 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
25031 if (flags & NDR_IN) {
25032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25033 if (r->in.servername) {
25034 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25035 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25036 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25037 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25041 if (r->in.buffer) {
25042 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25046 if (flags & NDR_OUT) {
25047 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25048 if (r->out.info) {
25049 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25051 if (r->out.needed == NULL) {
25052 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25055 if (r->out.count == NULL) {
25056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25061 return NDR_ERR_SUCCESS;
25064 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
25066 uint32_t _ptr_servername;
25067 uint32_t _ptr_buffer;
25068 uint32_t _ptr_info;
25069 TALLOC_CTX *_mem_save_servername_0;
25070 TALLOC_CTX *_mem_save_buffer_0;
25071 TALLOC_CTX *_mem_save_info_0;
25072 TALLOC_CTX *_mem_save_needed_0;
25073 TALLOC_CTX *_mem_save_count_0;
25074 if (flags & NDR_IN) {
25075 ZERO_STRUCT(r->out);
25077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25078 if (_ptr_servername) {
25079 NDR_PULL_ALLOC(ndr, r->in.servername);
25080 } else {
25081 r->in.servername = NULL;
25083 if (r->in.servername) {
25084 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25085 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25086 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25087 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25088 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25089 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
25091 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25092 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25095 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25097 if (_ptr_buffer) {
25098 NDR_PULL_ALLOC(ndr, r->in.buffer);
25099 } else {
25100 r->in.buffer = NULL;
25102 if (r->in.buffer) {
25103 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25104 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25105 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25109 NDR_PULL_ALLOC(ndr, r->out.needed);
25110 ZERO_STRUCTP(r->out.needed);
25111 NDR_PULL_ALLOC(ndr, r->out.count);
25112 ZERO_STRUCTP(r->out.count);
25114 if (flags & NDR_OUT) {
25115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25116 if (_ptr_info) {
25117 NDR_PULL_ALLOC(ndr, r->out.info);
25118 } else {
25119 r->out.info = NULL;
25121 if (r->out.info) {
25122 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25123 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25124 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25127 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25128 NDR_PULL_ALLOC(ndr, r->out.needed);
25130 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25131 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25134 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25135 NDR_PULL_ALLOC(ndr, r->out.count);
25137 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25138 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25141 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25143 return NDR_ERR_SUCCESS;
25146 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
25148 uint32_t cntr_info_0;
25149 if (flags & NDR_IN) {
25150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25153 if (flags & NDR_OUT) {
25154 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25155 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25156 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25158 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25159 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25162 return NDR_ERR_SUCCESS;
25165 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
25167 uint32_t cntr_info_0;
25168 TALLOC_CTX *_mem_save_info_0;
25169 if (flags & NDR_IN) {
25170 ZERO_STRUCT(r->out);
25172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25175 if (flags & NDR_OUT) {
25176 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25177 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25178 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25179 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25180 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25181 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25183 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25184 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25188 return NDR_ERR_SUCCESS;
25191 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
25193 uint32_t cntr_info_2;
25194 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
25195 ndr->depth++;
25196 if (flags & NDR_SET_VALUES) {
25197 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25199 if (flags & NDR_IN) {
25200 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
25201 ndr->depth++;
25202 ndr_print_ptr(ndr, "servername", r->in.servername);
25203 ndr->depth++;
25204 if (r->in.servername) {
25205 ndr_print_string(ndr, "servername", r->in.servername);
25207 ndr->depth--;
25208 ndr_print_uint32(ndr, "level", r->in.level);
25209 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25210 ndr->depth++;
25211 if (r->in.buffer) {
25212 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25214 ndr->depth--;
25215 ndr_print_uint32(ndr, "offered", r->in.offered);
25216 ndr->depth--;
25218 if (flags & NDR_OUT) {
25219 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
25220 ndr->depth++;
25221 ndr_print_ptr(ndr, "count", r->out.count);
25222 ndr->depth++;
25223 ndr_print_uint32(ndr, "count", *r->out.count);
25224 ndr->depth--;
25225 ndr_print_ptr(ndr, "info", r->out.info);
25226 ndr->depth++;
25227 ndr_print_ptr(ndr, "info", *r->out.info);
25228 ndr->depth++;
25229 if (*r->out.info) {
25230 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25231 ndr->depth++;
25232 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25233 char *idx_2=NULL;
25234 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25235 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25236 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25237 free(idx_2);
25240 ndr->depth--;
25242 ndr->depth--;
25243 ndr->depth--;
25244 ndr_print_ptr(ndr, "needed", r->out.needed);
25245 ndr->depth++;
25246 ndr_print_uint32(ndr, "needed", *r->out.needed);
25247 ndr->depth--;
25248 ndr_print_WERROR(ndr, "result", r->out.result);
25249 ndr->depth--;
25251 ndr->depth--;
25254 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
25256 if (flags & NDR_IN) {
25257 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25258 if (r->in.servername) {
25259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25262 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25266 if (r->in.buffer) {
25267 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25271 if (flags & NDR_OUT) {
25272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25273 if (r->out.info) {
25274 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25276 if (r->out.needed == NULL) {
25277 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25280 if (r->out.count == NULL) {
25281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25286 return NDR_ERR_SUCCESS;
25289 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
25291 uint32_t _ptr_servername;
25292 uint32_t _ptr_buffer;
25293 uint32_t _ptr_info;
25294 TALLOC_CTX *_mem_save_servername_0;
25295 TALLOC_CTX *_mem_save_buffer_0;
25296 TALLOC_CTX *_mem_save_info_0;
25297 TALLOC_CTX *_mem_save_needed_0;
25298 TALLOC_CTX *_mem_save_count_0;
25299 if (flags & NDR_IN) {
25300 ZERO_STRUCT(r->out);
25302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25303 if (_ptr_servername) {
25304 NDR_PULL_ALLOC(ndr, r->in.servername);
25305 } else {
25306 r->in.servername = NULL;
25308 if (r->in.servername) {
25309 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25310 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25313 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25314 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
25316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25322 if (_ptr_buffer) {
25323 NDR_PULL_ALLOC(ndr, r->in.buffer);
25324 } else {
25325 r->in.buffer = NULL;
25327 if (r->in.buffer) {
25328 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25329 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25330 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25334 NDR_PULL_ALLOC(ndr, r->out.needed);
25335 ZERO_STRUCTP(r->out.needed);
25336 NDR_PULL_ALLOC(ndr, r->out.count);
25337 ZERO_STRUCTP(r->out.count);
25339 if (flags & NDR_OUT) {
25340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25341 if (_ptr_info) {
25342 NDR_PULL_ALLOC(ndr, r->out.info);
25343 } else {
25344 r->out.info = NULL;
25346 if (r->out.info) {
25347 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25348 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25349 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25352 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25353 NDR_PULL_ALLOC(ndr, r->out.needed);
25355 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25356 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25359 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25360 NDR_PULL_ALLOC(ndr, r->out.count);
25362 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25363 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25366 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25368 return NDR_ERR_SUCCESS;
25371 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
25373 uint32_t cntr_info_0;
25374 if (flags & NDR_IN) {
25375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25378 if (flags & NDR_OUT) {
25379 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25380 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25381 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25383 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25384 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25387 return NDR_ERR_SUCCESS;
25390 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
25392 uint32_t cntr_info_0;
25393 TALLOC_CTX *_mem_save_info_0;
25394 if (flags & NDR_IN) {
25395 ZERO_STRUCT(r->out);
25397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25400 if (flags & NDR_OUT) {
25401 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25402 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25403 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25404 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25405 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25406 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25408 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25409 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25413 return NDR_ERR_SUCCESS;
25416 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
25418 uint32_t cntr_info_2;
25419 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
25420 ndr->depth++;
25421 if (flags & NDR_SET_VALUES) {
25422 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25424 if (flags & NDR_IN) {
25425 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
25426 ndr->depth++;
25427 ndr_print_ptr(ndr, "servername", r->in.servername);
25428 ndr->depth++;
25429 if (r->in.servername) {
25430 ndr_print_string(ndr, "servername", r->in.servername);
25432 ndr->depth--;
25433 ndr_print_uint32(ndr, "level", r->in.level);
25434 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25435 ndr->depth++;
25436 if (r->in.buffer) {
25437 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25439 ndr->depth--;
25440 ndr_print_uint32(ndr, "offered", r->in.offered);
25441 ndr->depth--;
25443 if (flags & NDR_OUT) {
25444 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
25445 ndr->depth++;
25446 ndr_print_ptr(ndr, "count", r->out.count);
25447 ndr->depth++;
25448 ndr_print_uint32(ndr, "count", *r->out.count);
25449 ndr->depth--;
25450 ndr_print_ptr(ndr, "info", r->out.info);
25451 ndr->depth++;
25452 ndr_print_ptr(ndr, "info", *r->out.info);
25453 ndr->depth++;
25454 if (*r->out.info) {
25455 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25456 ndr->depth++;
25457 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25458 char *idx_2=NULL;
25459 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25460 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25461 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25462 free(idx_2);
25465 ndr->depth--;
25467 ndr->depth--;
25468 ndr->depth--;
25469 ndr_print_ptr(ndr, "needed", r->out.needed);
25470 ndr->depth++;
25471 ndr_print_uint32(ndr, "needed", *r->out.needed);
25472 ndr->depth--;
25473 ndr_print_WERROR(ndr, "result", r->out.result);
25474 ndr->depth--;
25476 ndr->depth--;
25479 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
25481 if (flags & NDR_IN) {
25482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
25483 if (r->in.server_name) {
25484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
25490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25493 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.monitor_name, ndr_charset_length(r->in.monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25495 if (flags & NDR_OUT) {
25496 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25498 return NDR_ERR_SUCCESS;
25501 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
25503 uint32_t _ptr_server_name;
25504 TALLOC_CTX *_mem_save_server_name_0;
25505 if (flags & NDR_IN) {
25506 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
25507 if (_ptr_server_name) {
25508 NDR_PULL_ALLOC(ndr, r->in.server_name);
25509 } else {
25510 r->in.server_name = NULL;
25512 if (r->in.server_name) {
25513 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25514 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
25515 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25516 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25517 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25518 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
25520 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25521 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
25522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
25524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
25525 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
25526 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
25527 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
25528 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.monitor_name), ndr_get_array_length(ndr, &r->in.monitor_name));
25530 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
25531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t), CH_UTF16));
25533 if (flags & NDR_OUT) {
25534 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25536 return NDR_ERR_SUCCESS;
25539 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
25541 ndr_print_struct(ndr, name, "spoolss_AddPort");
25542 ndr->depth++;
25543 if (flags & NDR_SET_VALUES) {
25544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25546 if (flags & NDR_IN) {
25547 ndr_print_struct(ndr, "in", "spoolss_AddPort");
25548 ndr->depth++;
25549 ndr_print_ptr(ndr, "server_name", r->in.server_name);
25550 ndr->depth++;
25551 if (r->in.server_name) {
25552 ndr_print_string(ndr, "server_name", r->in.server_name);
25554 ndr->depth--;
25555 ndr_print_uint32(ndr, "unknown", r->in.unknown);
25556 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
25557 ndr->depth--;
25559 if (flags & NDR_OUT) {
25560 ndr_print_struct(ndr, "out", "spoolss_AddPort");
25561 ndr->depth++;
25562 ndr_print_WERROR(ndr, "result", r->out.result);
25563 ndr->depth--;
25565 ndr->depth--;
25568 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
25570 if (flags & NDR_IN) {
25572 if (flags & NDR_OUT) {
25573 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25575 return NDR_ERR_SUCCESS;
25578 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
25580 if (flags & NDR_IN) {
25582 if (flags & NDR_OUT) {
25583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25585 return NDR_ERR_SUCCESS;
25588 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
25590 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
25591 ndr->depth++;
25592 if (flags & NDR_SET_VALUES) {
25593 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25595 if (flags & NDR_IN) {
25596 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
25597 ndr->depth++;
25598 ndr->depth--;
25600 if (flags & NDR_OUT) {
25601 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
25602 ndr->depth++;
25603 ndr_print_WERROR(ndr, "result", r->out.result);
25604 ndr->depth--;
25606 ndr->depth--;
25609 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
25611 if (flags & NDR_IN) {
25613 if (flags & NDR_OUT) {
25614 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25616 return NDR_ERR_SUCCESS;
25619 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
25621 if (flags & NDR_IN) {
25623 if (flags & NDR_OUT) {
25624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25626 return NDR_ERR_SUCCESS;
25629 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
25631 ndr_print_struct(ndr, name, "spoolss_DeletePort");
25632 ndr->depth++;
25633 if (flags & NDR_SET_VALUES) {
25634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25636 if (flags & NDR_IN) {
25637 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
25638 ndr->depth++;
25639 ndr->depth--;
25641 if (flags & NDR_OUT) {
25642 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
25643 ndr->depth++;
25644 ndr_print_WERROR(ndr, "result", r->out.result);
25645 ndr->depth--;
25647 ndr->depth--;
25650 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
25652 if (flags & NDR_IN) {
25653 if (r->in.handle == NULL) {
25654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25656 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25657 if (r->in.devmode_ctr == NULL) {
25658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25660 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25662 if (flags & NDR_OUT) {
25663 if (r->out.gdi_handle == NULL) {
25664 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25666 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25669 return NDR_ERR_SUCCESS;
25672 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
25674 TALLOC_CTX *_mem_save_handle_0;
25675 TALLOC_CTX *_mem_save_gdi_handle_0;
25676 TALLOC_CTX *_mem_save_devmode_ctr_0;
25677 if (flags & NDR_IN) {
25678 ZERO_STRUCT(r->out);
25680 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25681 NDR_PULL_ALLOC(ndr, r->in.handle);
25683 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25684 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25685 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25687 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25688 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25690 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25691 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25692 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25694 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25695 ZERO_STRUCTP(r->out.gdi_handle);
25697 if (flags & NDR_OUT) {
25698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25699 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25701 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25702 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25703 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25705 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25707 return NDR_ERR_SUCCESS;
25710 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25712 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25713 ndr->depth++;
25714 if (flags & NDR_SET_VALUES) {
25715 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25717 if (flags & NDR_IN) {
25718 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25719 ndr->depth++;
25720 ndr_print_ptr(ndr, "handle", r->in.handle);
25721 ndr->depth++;
25722 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25723 ndr->depth--;
25724 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25725 ndr->depth++;
25726 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25727 ndr->depth--;
25728 ndr->depth--;
25730 if (flags & NDR_OUT) {
25731 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25732 ndr->depth++;
25733 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25734 ndr->depth++;
25735 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25736 ndr->depth--;
25737 ndr_print_WERROR(ndr, "result", r->out.result);
25738 ndr->depth--;
25740 ndr->depth--;
25743 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25745 if (flags & NDR_IN) {
25747 if (flags & NDR_OUT) {
25748 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25750 return NDR_ERR_SUCCESS;
25753 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25755 if (flags & NDR_IN) {
25757 if (flags & NDR_OUT) {
25758 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25760 return NDR_ERR_SUCCESS;
25763 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25765 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25766 ndr->depth++;
25767 if (flags & NDR_SET_VALUES) {
25768 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25770 if (flags & NDR_IN) {
25771 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25772 ndr->depth++;
25773 ndr->depth--;
25775 if (flags & NDR_OUT) {
25776 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25777 ndr->depth++;
25778 ndr_print_WERROR(ndr, "result", r->out.result);
25779 ndr->depth--;
25781 ndr->depth--;
25784 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25786 if (flags & NDR_IN) {
25787 if (r->in.gdi_handle == NULL) {
25788 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25790 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25792 if (flags & NDR_OUT) {
25793 if (r->out.gdi_handle == NULL) {
25794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25796 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25797 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25799 return NDR_ERR_SUCCESS;
25802 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25804 TALLOC_CTX *_mem_save_gdi_handle_0;
25805 if (flags & NDR_IN) {
25806 ZERO_STRUCT(r->out);
25808 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25809 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25811 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25812 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25813 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25815 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25816 *r->out.gdi_handle = *r->in.gdi_handle;
25818 if (flags & NDR_OUT) {
25819 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25820 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25822 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25823 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25824 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25826 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25828 return NDR_ERR_SUCCESS;
25831 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25833 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25834 ndr->depth++;
25835 if (flags & NDR_SET_VALUES) {
25836 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25838 if (flags & NDR_IN) {
25839 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25840 ndr->depth++;
25841 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25842 ndr->depth++;
25843 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25844 ndr->depth--;
25845 ndr->depth--;
25847 if (flags & NDR_OUT) {
25848 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25849 ndr->depth++;
25850 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25851 ndr->depth++;
25852 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25853 ndr->depth--;
25854 ndr_print_WERROR(ndr, "result", r->out.result);
25855 ndr->depth--;
25857 ndr->depth--;
25860 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25862 if (flags & NDR_IN) {
25864 if (flags & NDR_OUT) {
25865 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25867 return NDR_ERR_SUCCESS;
25870 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25872 if (flags & NDR_IN) {
25874 if (flags & NDR_OUT) {
25875 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25877 return NDR_ERR_SUCCESS;
25880 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25882 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25883 ndr->depth++;
25884 if (flags & NDR_SET_VALUES) {
25885 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25887 if (flags & NDR_IN) {
25888 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25889 ndr->depth++;
25890 ndr->depth--;
25892 if (flags & NDR_OUT) {
25893 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25894 ndr->depth++;
25895 ndr_print_WERROR(ndr, "result", r->out.result);
25896 ndr->depth--;
25898 ndr->depth--;
25901 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25903 if (flags & NDR_IN) {
25905 if (flags & NDR_OUT) {
25906 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25908 return NDR_ERR_SUCCESS;
25911 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25913 if (flags & NDR_IN) {
25915 if (flags & NDR_OUT) {
25916 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25918 return NDR_ERR_SUCCESS;
25921 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25923 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25924 ndr->depth++;
25925 if (flags & NDR_SET_VALUES) {
25926 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25928 if (flags & NDR_IN) {
25929 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25930 ndr->depth++;
25931 ndr->depth--;
25933 if (flags & NDR_OUT) {
25934 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25935 ndr->depth++;
25936 ndr_print_WERROR(ndr, "result", r->out.result);
25937 ndr->depth--;
25939 ndr->depth--;
25942 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25944 if (flags & NDR_IN) {
25946 if (flags & NDR_OUT) {
25947 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25949 return NDR_ERR_SUCCESS;
25952 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25954 if (flags & NDR_IN) {
25956 if (flags & NDR_OUT) {
25957 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25959 return NDR_ERR_SUCCESS;
25962 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25964 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25965 ndr->depth++;
25966 if (flags & NDR_SET_VALUES) {
25967 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25969 if (flags & NDR_IN) {
25970 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25971 ndr->depth++;
25972 ndr->depth--;
25974 if (flags & NDR_OUT) {
25975 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25976 ndr->depth++;
25977 ndr_print_WERROR(ndr, "result", r->out.result);
25978 ndr->depth--;
25980 ndr->depth--;
25983 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25985 if (flags & NDR_IN) {
25987 if (flags & NDR_OUT) {
25988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25990 return NDR_ERR_SUCCESS;
25993 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25995 if (flags & NDR_IN) {
25997 if (flags & NDR_OUT) {
25998 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26000 return NDR_ERR_SUCCESS;
26003 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
26005 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
26006 ndr->depth++;
26007 if (flags & NDR_SET_VALUES) {
26008 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26010 if (flags & NDR_IN) {
26011 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
26012 ndr->depth++;
26013 ndr->depth--;
26015 if (flags & NDR_OUT) {
26016 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
26017 ndr->depth++;
26018 ndr_print_WERROR(ndr, "result", r->out.result);
26019 ndr->depth--;
26021 ndr->depth--;
26024 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
26026 if (flags & NDR_IN) {
26028 if (flags & NDR_OUT) {
26029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26031 return NDR_ERR_SUCCESS;
26034 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
26036 if (flags & NDR_IN) {
26038 if (flags & NDR_OUT) {
26039 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26041 return NDR_ERR_SUCCESS;
26044 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
26046 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
26047 ndr->depth++;
26048 if (flags & NDR_SET_VALUES) {
26049 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26051 if (flags & NDR_IN) {
26052 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
26053 ndr->depth++;
26054 ndr->depth--;
26056 if (flags & NDR_OUT) {
26057 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
26058 ndr->depth++;
26059 ndr_print_WERROR(ndr, "result", r->out.result);
26060 ndr->depth--;
26062 ndr->depth--;
26065 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
26067 if (flags & NDR_IN) {
26069 if (flags & NDR_OUT) {
26070 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26072 return NDR_ERR_SUCCESS;
26075 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
26077 if (flags & NDR_IN) {
26079 if (flags & NDR_OUT) {
26080 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26082 return NDR_ERR_SUCCESS;
26085 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
26087 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
26088 ndr->depth++;
26089 if (flags & NDR_SET_VALUES) {
26090 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26092 if (flags & NDR_IN) {
26093 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
26094 ndr->depth++;
26095 ndr->depth--;
26097 if (flags & NDR_OUT) {
26098 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
26099 ndr->depth++;
26100 ndr_print_WERROR(ndr, "result", r->out.result);
26101 ndr->depth--;
26103 ndr->depth--;
26106 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
26108 if (flags & NDR_IN) {
26110 if (flags & NDR_OUT) {
26111 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26113 return NDR_ERR_SUCCESS;
26116 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
26118 if (flags & NDR_IN) {
26120 if (flags & NDR_OUT) {
26121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26123 return NDR_ERR_SUCCESS;
26126 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
26128 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
26129 ndr->depth++;
26130 if (flags & NDR_SET_VALUES) {
26131 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26133 if (flags & NDR_IN) {
26134 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
26135 ndr->depth++;
26136 ndr->depth--;
26138 if (flags & NDR_OUT) {
26139 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
26140 ndr->depth++;
26141 ndr_print_WERROR(ndr, "result", r->out.result);
26142 ndr->depth--;
26144 ndr->depth--;
26147 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
26149 if (flags & NDR_IN) {
26151 if (flags & NDR_OUT) {
26152 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26154 return NDR_ERR_SUCCESS;
26157 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
26159 if (flags & NDR_IN) {
26161 if (flags & NDR_OUT) {
26162 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26164 return NDR_ERR_SUCCESS;
26167 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
26169 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
26170 ndr->depth++;
26171 if (flags & NDR_SET_VALUES) {
26172 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26174 if (flags & NDR_IN) {
26175 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
26176 ndr->depth++;
26177 ndr->depth--;
26179 if (flags & NDR_OUT) {
26180 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
26181 ndr->depth++;
26182 ndr_print_WERROR(ndr, "result", r->out.result);
26183 ndr->depth--;
26185 ndr->depth--;
26188 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
26190 if (flags & NDR_IN) {
26191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26192 if (r->in.servername) {
26193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26196 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
26199 if (r->in.print_processor_name) {
26200 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26203 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.print_processor_name, ndr_charset_length(r->in.print_processor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26207 if (r->in.buffer) {
26208 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26212 if (flags & NDR_OUT) {
26213 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26214 if (r->out.info) {
26215 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
26217 if (r->out.needed == NULL) {
26218 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26221 if (r->out.count == NULL) {
26222 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26225 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26227 return NDR_ERR_SUCCESS;
26230 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
26232 uint32_t _ptr_servername;
26233 uint32_t _ptr_print_processor_name;
26234 uint32_t _ptr_buffer;
26235 uint32_t _ptr_info;
26236 TALLOC_CTX *_mem_save_servername_0;
26237 TALLOC_CTX *_mem_save_print_processor_name_0;
26238 TALLOC_CTX *_mem_save_buffer_0;
26239 TALLOC_CTX *_mem_save_info_0;
26240 TALLOC_CTX *_mem_save_needed_0;
26241 TALLOC_CTX *_mem_save_count_0;
26242 if (flags & NDR_IN) {
26243 ZERO_STRUCT(r->out);
26245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26246 if (_ptr_servername) {
26247 NDR_PULL_ALLOC(ndr, r->in.servername);
26248 } else {
26249 r->in.servername = NULL;
26251 if (r->in.servername) {
26252 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26253 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26254 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26255 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26256 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26257 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
26259 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26260 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
26264 if (_ptr_print_processor_name) {
26265 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
26266 } else {
26267 r->in.print_processor_name = NULL;
26269 if (r->in.print_processor_name) {
26270 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
26271 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
26272 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
26273 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
26274 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
26275 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
26277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
26278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
26279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
26281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26282 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26283 if (_ptr_buffer) {
26284 NDR_PULL_ALLOC(ndr, r->in.buffer);
26285 } else {
26286 r->in.buffer = NULL;
26288 if (r->in.buffer) {
26289 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26290 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26291 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26295 NDR_PULL_ALLOC(ndr, r->out.needed);
26296 ZERO_STRUCTP(r->out.needed);
26297 NDR_PULL_ALLOC(ndr, r->out.count);
26298 ZERO_STRUCTP(r->out.count);
26300 if (flags & NDR_OUT) {
26301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26302 if (_ptr_info) {
26303 NDR_PULL_ALLOC(ndr, r->out.info);
26304 } else {
26305 r->out.info = NULL;
26307 if (r->out.info) {
26308 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26309 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26310 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26314 NDR_PULL_ALLOC(ndr, r->out.needed);
26316 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26317 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26321 NDR_PULL_ALLOC(ndr, r->out.count);
26323 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26324 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26329 return NDR_ERR_SUCCESS;
26332 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
26334 uint32_t cntr_info_0;
26335 if (flags & NDR_IN) {
26336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26339 if (flags & NDR_OUT) {
26340 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26341 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26342 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26344 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26345 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26348 return NDR_ERR_SUCCESS;
26351 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
26353 uint32_t cntr_info_0;
26354 TALLOC_CTX *_mem_save_info_0;
26355 if (flags & NDR_IN) {
26356 ZERO_STRUCT(r->out);
26358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26361 if (flags & NDR_OUT) {
26362 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26363 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26364 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26365 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26366 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26367 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26369 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26370 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26374 return NDR_ERR_SUCCESS;
26377 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
26379 uint32_t cntr_info_2;
26380 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
26381 ndr->depth++;
26382 if (flags & NDR_SET_VALUES) {
26383 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26385 if (flags & NDR_IN) {
26386 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
26387 ndr->depth++;
26388 ndr_print_ptr(ndr, "servername", r->in.servername);
26389 ndr->depth++;
26390 if (r->in.servername) {
26391 ndr_print_string(ndr, "servername", r->in.servername);
26393 ndr->depth--;
26394 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
26395 ndr->depth++;
26396 if (r->in.print_processor_name) {
26397 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
26399 ndr->depth--;
26400 ndr_print_uint32(ndr, "level", r->in.level);
26401 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26402 ndr->depth++;
26403 if (r->in.buffer) {
26404 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26406 ndr->depth--;
26407 ndr_print_uint32(ndr, "offered", r->in.offered);
26408 ndr->depth--;
26410 if (flags & NDR_OUT) {
26411 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
26412 ndr->depth++;
26413 ndr_print_ptr(ndr, "count", r->out.count);
26414 ndr->depth++;
26415 ndr_print_uint32(ndr, "count", *r->out.count);
26416 ndr->depth--;
26417 ndr_print_ptr(ndr, "info", r->out.info);
26418 ndr->depth++;
26419 ndr_print_ptr(ndr, "info", *r->out.info);
26420 ndr->depth++;
26421 if (*r->out.info) {
26422 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26423 ndr->depth++;
26424 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26425 char *idx_2=NULL;
26426 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26427 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26428 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26429 free(idx_2);
26432 ndr->depth--;
26434 ndr->depth--;
26435 ndr->depth--;
26436 ndr_print_ptr(ndr, "needed", r->out.needed);
26437 ndr->depth++;
26438 ndr_print_uint32(ndr, "needed", *r->out.needed);
26439 ndr->depth--;
26440 ndr_print_WERROR(ndr, "result", r->out.result);
26441 ndr->depth--;
26443 ndr->depth--;
26446 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
26448 if (flags & NDR_IN) {
26449 if (r->in.handle == NULL) {
26450 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26452 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
26454 if (r->in.data_type) {
26455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26458 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.data_type, ndr_charset_length(r->in.data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26460 if (r->in.devmode_ctr == NULL) {
26461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26463 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26465 if (flags & NDR_OUT) {
26466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26468 return NDR_ERR_SUCCESS;
26471 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
26473 uint32_t _ptr_data_type;
26474 TALLOC_CTX *_mem_save_handle_0;
26475 TALLOC_CTX *_mem_save_data_type_0;
26476 TALLOC_CTX *_mem_save_devmode_ctr_0;
26477 if (flags & NDR_IN) {
26478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26479 NDR_PULL_ALLOC(ndr, r->in.handle);
26481 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26482 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26483 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
26486 if (_ptr_data_type) {
26487 NDR_PULL_ALLOC(ndr, r->in.data_type);
26488 } else {
26489 r->in.data_type = NULL;
26491 if (r->in.data_type) {
26492 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26493 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
26494 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
26495 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
26496 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
26497 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.data_type), ndr_get_array_length(ndr, &r->in.data_type));
26499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
26500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t), CH_UTF16));
26501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
26503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26504 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26506 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26507 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26508 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26511 if (flags & NDR_OUT) {
26512 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26514 return NDR_ERR_SUCCESS;
26517 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
26519 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
26520 ndr->depth++;
26521 if (flags & NDR_SET_VALUES) {
26522 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26524 if (flags & NDR_IN) {
26525 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
26526 ndr->depth++;
26527 ndr_print_ptr(ndr, "handle", r->in.handle);
26528 ndr->depth++;
26529 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26530 ndr->depth--;
26531 ndr_print_ptr(ndr, "data_type", r->in.data_type);
26532 ndr->depth++;
26533 if (r->in.data_type) {
26534 ndr_print_string(ndr, "data_type", r->in.data_type);
26536 ndr->depth--;
26537 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26538 ndr->depth++;
26539 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26540 ndr->depth--;
26541 ndr->depth--;
26543 if (flags & NDR_OUT) {
26544 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
26545 ndr->depth++;
26546 ndr_print_WERROR(ndr, "result", r->out.result);
26547 ndr->depth--;
26549 ndr->depth--;
26552 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
26554 if (flags & NDR_IN) {
26555 if (r->in.handle == NULL) {
26556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26558 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26559 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26560 if (r->in.architecture) {
26561 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26564 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26567 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26568 if (r->in.buffer) {
26569 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
26573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
26575 if (flags & NDR_OUT) {
26576 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26577 if (r->out.info) {
26579 struct ndr_push *_ndr_info;
26580 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26581 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26582 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26583 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26586 if (r->out.needed == NULL) {
26587 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26590 if (r->out.server_major_version == NULL) {
26591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
26594 if (r->out.server_minor_version == NULL) {
26595 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
26598 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26600 return NDR_ERR_SUCCESS;
26603 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
26605 uint32_t _ptr_architecture;
26606 uint32_t _ptr_buffer;
26607 uint32_t _ptr_info;
26608 TALLOC_CTX *_mem_save_handle_0;
26609 TALLOC_CTX *_mem_save_architecture_0;
26610 TALLOC_CTX *_mem_save_buffer_0;
26611 TALLOC_CTX *_mem_save_info_0;
26612 TALLOC_CTX *_mem_save_needed_0;
26613 TALLOC_CTX *_mem_save_server_major_version_0;
26614 TALLOC_CTX *_mem_save_server_minor_version_0;
26615 if (flags & NDR_IN) {
26616 ZERO_STRUCT(r->out);
26618 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26619 NDR_PULL_ALLOC(ndr, r->in.handle);
26621 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26622 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26623 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26626 if (_ptr_architecture) {
26627 NDR_PULL_ALLOC(ndr, r->in.architecture);
26628 } else {
26629 r->in.architecture = NULL;
26631 if (r->in.architecture) {
26632 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26633 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26634 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26635 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26636 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26637 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
26639 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26640 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26645 if (_ptr_buffer) {
26646 NDR_PULL_ALLOC(ndr, r->in.buffer);
26647 } else {
26648 r->in.buffer = NULL;
26650 if (r->in.buffer) {
26651 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26652 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26653 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
26658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
26659 NDR_PULL_ALLOC(ndr, r->out.needed);
26660 ZERO_STRUCTP(r->out.needed);
26661 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26662 ZERO_STRUCTP(r->out.server_major_version);
26663 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26664 ZERO_STRUCTP(r->out.server_minor_version);
26666 if (flags & NDR_OUT) {
26667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26668 if (_ptr_info) {
26669 NDR_PULL_ALLOC(ndr, r->out.info);
26670 } else {
26671 r->out.info = NULL;
26673 if (r->out.info) {
26674 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26675 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26677 struct ndr_pull *_ndr_info;
26678 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26679 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26680 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26681 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26686 NDR_PULL_ALLOC(ndr, r->out.needed);
26688 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26689 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26692 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26693 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26695 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26696 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
26697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
26698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
26699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26700 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26702 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26703 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
26704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
26705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
26706 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26708 return NDR_ERR_SUCCESS;
26711 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26713 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26714 ndr->depth++;
26715 if (flags & NDR_SET_VALUES) {
26716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26718 if (flags & NDR_IN) {
26719 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26720 ndr->depth++;
26721 ndr_print_ptr(ndr, "handle", r->in.handle);
26722 ndr->depth++;
26723 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26724 ndr->depth--;
26725 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26726 ndr->depth++;
26727 if (r->in.architecture) {
26728 ndr_print_string(ndr, "architecture", r->in.architecture);
26730 ndr->depth--;
26731 ndr_print_uint32(ndr, "level", r->in.level);
26732 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26733 ndr->depth++;
26734 if (r->in.buffer) {
26735 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26737 ndr->depth--;
26738 ndr_print_uint32(ndr, "offered", r->in.offered);
26739 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26740 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26741 ndr->depth--;
26743 if (flags & NDR_OUT) {
26744 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26745 ndr->depth++;
26746 ndr_print_ptr(ndr, "info", r->out.info);
26747 ndr->depth++;
26748 if (r->out.info) {
26749 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26750 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26752 ndr->depth--;
26753 ndr_print_ptr(ndr, "needed", r->out.needed);
26754 ndr->depth++;
26755 ndr_print_uint32(ndr, "needed", *r->out.needed);
26756 ndr->depth--;
26757 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26758 ndr->depth++;
26759 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26760 ndr->depth--;
26761 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26762 ndr->depth++;
26763 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26764 ndr->depth--;
26765 ndr_print_WERROR(ndr, "result", r->out.result);
26766 ndr->depth--;
26768 ndr->depth--;
26771 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26773 if (flags & NDR_IN) {
26775 if (flags & NDR_OUT) {
26776 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26778 return NDR_ERR_SUCCESS;
26781 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26783 if (flags & NDR_IN) {
26785 if (flags & NDR_OUT) {
26786 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26788 return NDR_ERR_SUCCESS;
26791 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26793 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26794 ndr->depth++;
26795 if (flags & NDR_SET_VALUES) {
26796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26798 if (flags & NDR_IN) {
26799 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26800 ndr->depth++;
26801 ndr->depth--;
26803 if (flags & NDR_OUT) {
26804 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26805 ndr->depth++;
26806 ndr_print_WERROR(ndr, "result", r->out.result);
26807 ndr->depth--;
26809 ndr->depth--;
26812 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26814 if (flags & NDR_IN) {
26816 if (flags & NDR_OUT) {
26817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26819 return NDR_ERR_SUCCESS;
26822 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26824 if (flags & NDR_IN) {
26826 if (flags & NDR_OUT) {
26827 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26829 return NDR_ERR_SUCCESS;
26832 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26834 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26835 ndr->depth++;
26836 if (flags & NDR_SET_VALUES) {
26837 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26839 if (flags & NDR_IN) {
26840 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26841 ndr->depth++;
26842 ndr->depth--;
26844 if (flags & NDR_OUT) {
26845 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26846 ndr->depth++;
26847 ndr_print_WERROR(ndr, "result", r->out.result);
26848 ndr->depth--;
26850 ndr->depth--;
26853 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26855 if (flags & NDR_IN) {
26856 if (r->in.handle == NULL) {
26857 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26859 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26861 if (flags & NDR_OUT) {
26862 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26864 return NDR_ERR_SUCCESS;
26867 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26869 TALLOC_CTX *_mem_save_handle_0;
26870 if (flags & NDR_IN) {
26871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26872 NDR_PULL_ALLOC(ndr, r->in.handle);
26874 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26875 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26876 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26879 if (flags & NDR_OUT) {
26880 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26882 return NDR_ERR_SUCCESS;
26885 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26887 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26888 ndr->depth++;
26889 if (flags & NDR_SET_VALUES) {
26890 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26892 if (flags & NDR_IN) {
26893 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26894 ndr->depth++;
26895 ndr_print_ptr(ndr, "handle", r->in.handle);
26896 ndr->depth++;
26897 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26898 ndr->depth--;
26899 ndr->depth--;
26901 if (flags & NDR_OUT) {
26902 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26903 ndr->depth++;
26904 ndr_print_WERROR(ndr, "result", r->out.result);
26905 ndr->depth--;
26907 ndr->depth--;
26910 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26912 if (flags & NDR_IN) {
26914 if (flags & NDR_OUT) {
26915 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26917 return NDR_ERR_SUCCESS;
26920 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26922 if (flags & NDR_IN) {
26924 if (flags & NDR_OUT) {
26925 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26927 return NDR_ERR_SUCCESS;
26930 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26932 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26933 ndr->depth++;
26934 if (flags & NDR_SET_VALUES) {
26935 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26937 if (flags & NDR_IN) {
26938 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26939 ndr->depth++;
26940 ndr->depth--;
26942 if (flags & NDR_OUT) {
26943 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26944 ndr->depth++;
26945 ndr_print_WERROR(ndr, "result", r->out.result);
26946 ndr->depth--;
26948 ndr->depth--;
26951 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26953 if (flags & NDR_IN) {
26954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26959 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26962 if (r->in.buffer) {
26963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26964 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26967 if (flags & NDR_OUT) {
26968 if (r->out.handle == NULL) {
26969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26971 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26972 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26974 return NDR_ERR_SUCCESS;
26977 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26979 uint32_t _ptr_buffer;
26980 TALLOC_CTX *_mem_save_buffer_0;
26981 TALLOC_CTX *_mem_save_handle_0;
26982 if (flags & NDR_IN) {
26983 ZERO_STRUCT(r->out);
26985 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26986 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26987 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26988 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
26990 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26991 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
26992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26993 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26995 if (r->in.bufsize > 512) {
26996 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26999 if (_ptr_buffer) {
27000 NDR_PULL_ALLOC(ndr, r->in.buffer);
27001 } else {
27002 r->in.buffer = NULL;
27004 if (r->in.buffer) {
27005 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27006 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27007 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27008 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27009 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27012 NDR_PULL_ALLOC(ndr, r->out.handle);
27013 ZERO_STRUCTP(r->out.handle);
27014 if (r->in.buffer) {
27015 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
27018 if (flags & NDR_OUT) {
27019 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27020 NDR_PULL_ALLOC(ndr, r->out.handle);
27022 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27023 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27024 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27026 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27028 return NDR_ERR_SUCCESS;
27031 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
27033 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
27034 ndr->depth++;
27035 if (flags & NDR_SET_VALUES) {
27036 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27038 if (flags & NDR_IN) {
27039 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
27040 ndr->depth++;
27041 ndr_print_string(ndr, "server_name", r->in.server_name);
27042 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27043 ndr_print_winreg_Type(ndr, "type", r->in.type);
27044 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
27045 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27046 ndr->depth++;
27047 if (r->in.buffer) {
27048 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
27050 ndr->depth--;
27051 ndr->depth--;
27053 if (flags & NDR_OUT) {
27054 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
27055 ndr->depth++;
27056 ndr_print_ptr(ndr, "handle", r->out.handle);
27057 ndr->depth++;
27058 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27059 ndr->depth--;
27060 ndr_print_WERROR(ndr, "result", r->out.result);
27061 ndr->depth--;
27063 ndr->depth--;
27066 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
27068 if (flags & NDR_IN) {
27069 if (r->in.handle == NULL) {
27070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27072 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27073 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
27075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27076 if (r->in.buffer) {
27077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
27078 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
27081 if (flags & NDR_OUT) {
27082 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27084 return NDR_ERR_SUCCESS;
27087 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
27089 uint32_t _ptr_buffer;
27090 TALLOC_CTX *_mem_save_handle_0;
27091 TALLOC_CTX *_mem_save_buffer_0;
27092 if (flags & NDR_IN) {
27093 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27094 NDR_PULL_ALLOC(ndr, r->in.handle);
27096 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27097 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27098 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27100 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27101 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
27102 if (r->in.bufsize > 512) {
27103 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
27105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27106 if (_ptr_buffer) {
27107 NDR_PULL_ALLOC(ndr, r->in.buffer);
27108 } else {
27109 r->in.buffer = NULL;
27111 if (r->in.buffer) {
27112 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27113 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27114 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27115 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27116 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27119 if (r->in.buffer) {
27120 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
27123 if (flags & NDR_OUT) {
27124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27126 return NDR_ERR_SUCCESS;
27129 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
27131 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
27132 ndr->depth++;
27133 if (flags & NDR_SET_VALUES) {
27134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27136 if (flags & NDR_IN) {
27137 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
27138 ndr->depth++;
27139 ndr_print_ptr(ndr, "handle", r->in.handle);
27140 ndr->depth++;
27141 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27142 ndr->depth--;
27143 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27144 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
27145 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27146 ndr->depth++;
27147 if (r->in.buffer) {
27148 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
27150 ndr->depth--;
27151 ndr->depth--;
27153 if (flags & NDR_OUT) {
27154 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
27155 ndr->depth++;
27156 ndr_print_WERROR(ndr, "result", r->out.result);
27157 ndr->depth--;
27159 ndr->depth--;
27162 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
27164 if (flags & NDR_IN) {
27165 if (r->in.handle == NULL) {
27166 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27168 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27170 if (flags & NDR_OUT) {
27171 if (r->out.handle == NULL) {
27172 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27174 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27175 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27177 return NDR_ERR_SUCCESS;
27180 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
27182 TALLOC_CTX *_mem_save_handle_0;
27183 if (flags & NDR_IN) {
27184 ZERO_STRUCT(r->out);
27186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27187 NDR_PULL_ALLOC(ndr, r->in.handle);
27189 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27190 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27191 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27193 NDR_PULL_ALLOC(ndr, r->out.handle);
27194 *r->out.handle = *r->in.handle;
27196 if (flags & NDR_OUT) {
27197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27198 NDR_PULL_ALLOC(ndr, r->out.handle);
27200 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27201 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27206 return NDR_ERR_SUCCESS;
27209 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
27211 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
27212 ndr->depth++;
27213 if (flags & NDR_SET_VALUES) {
27214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27216 if (flags & NDR_IN) {
27217 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
27218 ndr->depth++;
27219 ndr_print_ptr(ndr, "handle", r->in.handle);
27220 ndr->depth++;
27221 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27222 ndr->depth--;
27223 ndr->depth--;
27225 if (flags & NDR_OUT) {
27226 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
27227 ndr->depth++;
27228 ndr_print_ptr(ndr, "handle", r->out.handle);
27229 ndr->depth++;
27230 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27231 ndr->depth--;
27232 ndr_print_WERROR(ndr, "result", r->out.result);
27233 ndr->depth--;
27235 ndr->depth--;
27238 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
27240 if (flags & NDR_IN) {
27242 if (flags & NDR_OUT) {
27243 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27245 return NDR_ERR_SUCCESS;
27248 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
27250 if (flags & NDR_IN) {
27252 if (flags & NDR_OUT) {
27253 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27255 return NDR_ERR_SUCCESS;
27258 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
27260 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
27261 ndr->depth++;
27262 if (flags & NDR_SET_VALUES) {
27263 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27265 if (flags & NDR_IN) {
27266 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
27267 ndr->depth++;
27268 ndr->depth--;
27270 if (flags & NDR_OUT) {
27271 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
27272 ndr->depth++;
27273 ndr_print_WERROR(ndr, "result", r->out.result);
27274 ndr->depth--;
27276 ndr->depth--;
27279 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27281 if (flags & NDR_IN) {
27283 if (flags & NDR_OUT) {
27284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27286 return NDR_ERR_SUCCESS;
27289 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27291 if (flags & NDR_IN) {
27293 if (flags & NDR_OUT) {
27294 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27296 return NDR_ERR_SUCCESS;
27299 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27301 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
27302 ndr->depth++;
27303 if (flags & NDR_SET_VALUES) {
27304 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27306 if (flags & NDR_IN) {
27307 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27308 ndr->depth++;
27309 ndr->depth--;
27311 if (flags & NDR_OUT) {
27312 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27313 ndr->depth++;
27314 ndr_print_WERROR(ndr, "result", r->out.result);
27315 ndr->depth--;
27317 ndr->depth--;
27320 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
27322 if (flags & NDR_IN) {
27324 if (flags & NDR_OUT) {
27325 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27327 return NDR_ERR_SUCCESS;
27330 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
27332 if (flags & NDR_IN) {
27334 if (flags & NDR_OUT) {
27335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27337 return NDR_ERR_SUCCESS;
27340 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
27342 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
27343 ndr->depth++;
27344 if (flags & NDR_SET_VALUES) {
27345 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27347 if (flags & NDR_IN) {
27348 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
27349 ndr->depth++;
27350 ndr->depth--;
27352 if (flags & NDR_OUT) {
27353 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
27354 ndr->depth++;
27355 ndr_print_WERROR(ndr, "result", r->out.result);
27356 ndr->depth--;
27358 ndr->depth--;
27361 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
27363 if (flags & NDR_IN) {
27365 if (flags & NDR_OUT) {
27366 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27368 return NDR_ERR_SUCCESS;
27371 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
27373 if (flags & NDR_IN) {
27375 if (flags & NDR_OUT) {
27376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27378 return NDR_ERR_SUCCESS;
27381 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
27383 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
27384 ndr->depth++;
27385 if (flags & NDR_SET_VALUES) {
27386 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27388 if (flags & NDR_IN) {
27389 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
27390 ndr->depth++;
27391 ndr->depth--;
27393 if (flags & NDR_OUT) {
27394 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
27395 ndr->depth++;
27396 ndr_print_WERROR(ndr, "result", r->out.result);
27397 ndr->depth--;
27399 ndr->depth--;
27402 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27404 if (flags & NDR_IN) {
27405 if (r->in.handle == NULL) {
27406 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27408 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27409 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
27411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
27412 if (r->in.local_machine) {
27413 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27414 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27415 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27416 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.local_machine, ndr_charset_length(r->in.local_machine, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
27420 if (r->in.notify_options) {
27421 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27424 if (flags & NDR_OUT) {
27425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27427 return NDR_ERR_SUCCESS;
27430 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27432 uint32_t _ptr_local_machine;
27433 uint32_t _ptr_notify_options;
27434 TALLOC_CTX *_mem_save_handle_0;
27435 TALLOC_CTX *_mem_save_local_machine_0;
27436 TALLOC_CTX *_mem_save_notify_options_0;
27437 if (flags & NDR_IN) {
27438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27439 NDR_PULL_ALLOC(ndr, r->in.handle);
27441 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27442 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27443 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27445 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
27447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
27448 if (_ptr_local_machine) {
27449 NDR_PULL_ALLOC(ndr, r->in.local_machine);
27450 } else {
27451 r->in.local_machine = NULL;
27453 if (r->in.local_machine) {
27454 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
27455 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
27456 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
27457 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
27458 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
27459 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.local_machine), ndr_get_array_length(ndr, &r->in.local_machine));
27461 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
27462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t), CH_UTF16));
27463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
27465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
27467 if (_ptr_notify_options) {
27468 NDR_PULL_ALLOC(ndr, r->in.notify_options);
27469 } else {
27470 r->in.notify_options = NULL;
27472 if (r->in.notify_options) {
27473 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27474 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
27475 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
27479 if (flags & NDR_OUT) {
27480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27482 return NDR_ERR_SUCCESS;
27485 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27487 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27488 ndr->depth++;
27489 if (flags & NDR_SET_VALUES) {
27490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27492 if (flags & NDR_IN) {
27493 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27494 ndr->depth++;
27495 ndr_print_ptr(ndr, "handle", r->in.handle);
27496 ndr->depth++;
27497 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27498 ndr->depth--;
27499 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27500 ndr_print_uint32(ndr, "options", r->in.options);
27501 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
27502 ndr->depth++;
27503 if (r->in.local_machine) {
27504 ndr_print_string(ndr, "local_machine", r->in.local_machine);
27506 ndr->depth--;
27507 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27508 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
27509 ndr->depth++;
27510 if (r->in.notify_options) {
27511 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
27513 ndr->depth--;
27514 ndr->depth--;
27516 if (flags & NDR_OUT) {
27517 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27518 ndr->depth++;
27519 ndr_print_WERROR(ndr, "result", r->out.result);
27520 ndr->depth--;
27522 ndr->depth--;
27525 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27527 if (flags & NDR_IN) {
27528 if (r->in.handle == NULL) {
27529 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27531 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
27533 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
27535 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27536 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27538 if (flags & NDR_OUT) {
27539 if (r->out.reply_result == NULL) {
27540 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27542 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
27543 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27545 return NDR_ERR_SUCCESS;
27548 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
27550 TALLOC_CTX *_mem_save_handle_0;
27551 TALLOC_CTX *_mem_save_reply_result_0;
27552 if (flags & NDR_IN) {
27553 ZERO_STRUCT(r->out);
27555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27556 NDR_PULL_ALLOC(ndr, r->in.handle);
27558 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27559 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27560 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
27563 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
27565 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27566 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27567 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27568 ZERO_STRUCTP(r->out.reply_result);
27570 if (flags & NDR_OUT) {
27571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27572 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27574 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
27575 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
27576 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
27577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
27578 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27580 return NDR_ERR_SUCCESS;
27583 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27585 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
27586 ndr->depth++;
27587 if (flags & NDR_SET_VALUES) {
27588 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27590 if (flags & NDR_IN) {
27591 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
27592 ndr->depth++;
27593 ndr_print_ptr(ndr, "handle", r->in.handle);
27594 ndr->depth++;
27595 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27596 ndr->depth--;
27597 ndr_print_uint32(ndr, "color", r->in.color);
27598 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27599 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
27600 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
27601 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
27602 ndr->depth--;
27604 if (flags & NDR_OUT) {
27605 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
27606 ndr->depth++;
27607 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
27608 ndr->depth++;
27609 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
27610 ndr->depth--;
27611 ndr_print_WERROR(ndr, "result", r->out.result);
27612 ndr->depth--;
27614 ndr->depth--;
27617 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27619 if (flags & NDR_IN) {
27620 if (r->in.handle == NULL) {
27621 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27623 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
27625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
27626 if (r->in.options) {
27627 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27630 if (flags & NDR_OUT) {
27631 if (r->out.info == NULL) {
27632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27634 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
27635 if (*r->out.info) {
27636 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27638 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27640 return NDR_ERR_SUCCESS;
27643 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
27645 uint32_t _ptr_options;
27646 uint32_t _ptr_info;
27647 TALLOC_CTX *_mem_save_handle_0;
27648 TALLOC_CTX *_mem_save_options_0;
27649 TALLOC_CTX *_mem_save_info_0;
27650 TALLOC_CTX *_mem_save_info_1;
27651 if (flags & NDR_IN) {
27652 ZERO_STRUCT(r->out);
27654 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27655 NDR_PULL_ALLOC(ndr, r->in.handle);
27657 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27658 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27659 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
27662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
27663 if (_ptr_options) {
27664 NDR_PULL_ALLOC(ndr, r->in.options);
27665 } else {
27666 r->in.options = NULL;
27668 if (r->in.options) {
27669 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27670 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
27671 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
27674 NDR_PULL_ALLOC(ndr, r->out.info);
27675 ZERO_STRUCTP(r->out.info);
27677 if (flags & NDR_OUT) {
27678 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27679 NDR_PULL_ALLOC(ndr, r->out.info);
27681 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27682 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
27683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27684 if (_ptr_info) {
27685 NDR_PULL_ALLOC(ndr, *r->out.info);
27686 } else {
27687 *r->out.info = NULL;
27689 if (*r->out.info) {
27690 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
27691 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
27692 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
27695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
27696 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27698 return NDR_ERR_SUCCESS;
27701 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27703 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
27704 ndr->depth++;
27705 if (flags & NDR_SET_VALUES) {
27706 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27708 if (flags & NDR_IN) {
27709 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27710 ndr->depth++;
27711 ndr_print_ptr(ndr, "handle", r->in.handle);
27712 ndr->depth++;
27713 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27714 ndr->depth--;
27715 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27716 ndr_print_ptr(ndr, "options", r->in.options);
27717 ndr->depth++;
27718 if (r->in.options) {
27719 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27721 ndr->depth--;
27722 ndr->depth--;
27724 if (flags & NDR_OUT) {
27725 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27726 ndr->depth++;
27727 ndr_print_ptr(ndr, "info", r->out.info);
27728 ndr->depth++;
27729 ndr_print_ptr(ndr, "info", *r->out.info);
27730 ndr->depth++;
27731 if (*r->out.info) {
27732 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27734 ndr->depth--;
27735 ndr->depth--;
27736 ndr_print_WERROR(ndr, "result", r->out.result);
27737 ndr->depth--;
27739 ndr->depth--;
27742 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27744 if (flags & NDR_IN) {
27746 if (flags & NDR_OUT) {
27747 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27749 return NDR_ERR_SUCCESS;
27752 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27754 if (flags & NDR_IN) {
27756 if (flags & NDR_OUT) {
27757 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27759 return NDR_ERR_SUCCESS;
27762 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27764 ndr_print_struct(ndr, name, "spoolss_44");
27765 ndr->depth++;
27766 if (flags & NDR_SET_VALUES) {
27767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27769 if (flags & NDR_IN) {
27770 ndr_print_struct(ndr, "in", "spoolss_44");
27771 ndr->depth++;
27772 ndr->depth--;
27774 if (flags & NDR_OUT) {
27775 ndr_print_struct(ndr, "out", "spoolss_44");
27776 ndr->depth++;
27777 ndr_print_WERROR(ndr, "result", r->out.result);
27778 ndr->depth--;
27780 ndr->depth--;
27783 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27785 if (flags & NDR_IN) {
27786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27787 if (r->in.printername) {
27788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27793 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27794 if (r->in.datatype) {
27795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27798 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27800 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27801 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27803 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27804 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27806 if (flags & NDR_OUT) {
27807 if (r->out.handle == NULL) {
27808 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27810 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27811 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27813 return NDR_ERR_SUCCESS;
27816 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27818 uint32_t _ptr_printername;
27819 uint32_t _ptr_datatype;
27820 TALLOC_CTX *_mem_save_printername_0;
27821 TALLOC_CTX *_mem_save_datatype_0;
27822 TALLOC_CTX *_mem_save_handle_0;
27823 if (flags & NDR_IN) {
27824 ZERO_STRUCT(r->out);
27826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27827 if (_ptr_printername) {
27828 NDR_PULL_ALLOC(ndr, r->in.printername);
27829 } else {
27830 r->in.printername = NULL;
27832 if (r->in.printername) {
27833 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27834 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27835 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27836 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27837 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27838 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
27840 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27841 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27845 if (_ptr_datatype) {
27846 NDR_PULL_ALLOC(ndr, r->in.datatype);
27847 } else {
27848 r->in.datatype = NULL;
27850 if (r->in.datatype) {
27851 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27852 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27853 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27854 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27855 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27856 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
27858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27862 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27863 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27865 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27866 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27867 NDR_PULL_ALLOC(ndr, r->out.handle);
27868 ZERO_STRUCTP(r->out.handle);
27870 if (flags & NDR_OUT) {
27871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27872 NDR_PULL_ALLOC(ndr, r->out.handle);
27874 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27875 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27876 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27878 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27880 return NDR_ERR_SUCCESS;
27883 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27885 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27886 ndr->depth++;
27887 if (flags & NDR_SET_VALUES) {
27888 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27890 if (flags & NDR_IN) {
27891 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27892 ndr->depth++;
27893 ndr_print_ptr(ndr, "printername", r->in.printername);
27894 ndr->depth++;
27895 if (r->in.printername) {
27896 ndr_print_string(ndr, "printername", r->in.printername);
27898 ndr->depth--;
27899 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27900 ndr->depth++;
27901 if (r->in.datatype) {
27902 ndr_print_string(ndr, "datatype", r->in.datatype);
27904 ndr->depth--;
27905 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27906 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27907 ndr_print_uint32(ndr, "level", r->in.level);
27908 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27909 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27910 ndr->depth--;
27912 if (flags & NDR_OUT) {
27913 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27914 ndr->depth++;
27915 ndr_print_ptr(ndr, "handle", r->out.handle);
27916 ndr->depth++;
27917 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27918 ndr->depth--;
27919 ndr_print_WERROR(ndr, "result", r->out.result);
27920 ndr->depth--;
27922 ndr->depth--;
27925 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27927 if (flags & NDR_IN) {
27928 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27929 if (r->in.server) {
27930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27931 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27933 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27935 if (r->in.info_ctr == NULL) {
27936 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27938 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27939 if (r->in.devmode_ctr == NULL) {
27940 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27942 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27943 if (r->in.secdesc_ctr == NULL) {
27944 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27946 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27947 if (r->in.userlevel_ctr == NULL) {
27948 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27950 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27952 if (flags & NDR_OUT) {
27953 if (r->out.handle == NULL) {
27954 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27956 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27959 return NDR_ERR_SUCCESS;
27962 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27964 uint32_t _ptr_server;
27965 TALLOC_CTX *_mem_save_server_0;
27966 TALLOC_CTX *_mem_save_info_ctr_0;
27967 TALLOC_CTX *_mem_save_devmode_ctr_0;
27968 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27969 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27970 TALLOC_CTX *_mem_save_handle_0;
27971 if (flags & NDR_IN) {
27972 ZERO_STRUCT(r->out);
27974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27975 if (_ptr_server) {
27976 NDR_PULL_ALLOC(ndr, r->in.server);
27977 } else {
27978 r->in.server = NULL;
27980 if (r->in.server) {
27981 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27982 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27983 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27984 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27985 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27986 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
27988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27992 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27993 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27995 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27996 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27997 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27999 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28000 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
28002 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28003 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
28004 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
28005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28006 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28007 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
28009 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28010 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
28011 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
28012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28013 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28014 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
28016 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28017 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
28018 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
28019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28020 NDR_PULL_ALLOC(ndr, r->out.handle);
28021 ZERO_STRUCTP(r->out.handle);
28023 if (flags & NDR_OUT) {
28024 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28025 NDR_PULL_ALLOC(ndr, r->out.handle);
28027 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28028 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
28029 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
28030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28031 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28033 return NDR_ERR_SUCCESS;
28036 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
28038 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
28039 ndr->depth++;
28040 if (flags & NDR_SET_VALUES) {
28041 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28043 if (flags & NDR_IN) {
28044 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
28045 ndr->depth++;
28046 ndr_print_ptr(ndr, "server", r->in.server);
28047 ndr->depth++;
28048 if (r->in.server) {
28049 ndr_print_string(ndr, "server", r->in.server);
28051 ndr->depth--;
28052 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28053 ndr->depth++;
28054 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28055 ndr->depth--;
28056 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
28057 ndr->depth++;
28058 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
28059 ndr->depth--;
28060 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
28061 ndr->depth++;
28062 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
28063 ndr->depth--;
28064 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
28065 ndr->depth++;
28066 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
28067 ndr->depth--;
28068 ndr->depth--;
28070 if (flags & NDR_OUT) {
28071 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
28072 ndr->depth++;
28073 ndr_print_ptr(ndr, "handle", r->out.handle);
28074 ndr->depth++;
28075 ndr_print_policy_handle(ndr, "handle", r->out.handle);
28076 ndr->depth--;
28077 ndr_print_WERROR(ndr, "result", r->out.result);
28078 ndr->depth--;
28080 ndr->depth--;
28083 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
28085 if (flags & NDR_IN) {
28087 if (flags & NDR_OUT) {
28088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28090 return NDR_ERR_SUCCESS;
28093 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
28095 if (flags & NDR_IN) {
28097 if (flags & NDR_OUT) {
28098 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28100 return NDR_ERR_SUCCESS;
28103 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
28105 ndr_print_struct(ndr, name, "spoolss_47");
28106 ndr->depth++;
28107 if (flags & NDR_SET_VALUES) {
28108 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28110 if (flags & NDR_IN) {
28111 ndr_print_struct(ndr, "in", "spoolss_47");
28112 ndr->depth++;
28113 ndr->depth--;
28115 if (flags & NDR_OUT) {
28116 ndr_print_struct(ndr, "out", "spoolss_47");
28117 ndr->depth++;
28118 ndr_print_WERROR(ndr, "result", r->out.result);
28119 ndr->depth--;
28121 ndr->depth--;
28124 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
28126 if (flags & NDR_IN) {
28127 if (r->in.handle == NULL) {
28128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28130 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
28132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
28133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
28135 if (flags & NDR_OUT) {
28136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
28137 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
28138 if (r->out.value_needed == NULL) {
28139 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
28142 if (r->out.type == NULL) {
28143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28145 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28147 uint32_t _flags_save_uint8 = ndr->flags;
28148 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
28149 if (r->out.data == NULL) {
28150 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
28153 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
28154 ndr->flags = _flags_save_uint8;
28156 if (r->out.data_needed == NULL) {
28157 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
28160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28162 return NDR_ERR_SUCCESS;
28165 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
28167 TALLOC_CTX *_mem_save_handle_0;
28168 TALLOC_CTX *_mem_save_value_needed_0;
28169 TALLOC_CTX *_mem_save_type_0;
28170 TALLOC_CTX *_mem_save_data_needed_0;
28171 if (flags & NDR_IN) {
28172 ZERO_STRUCT(r->out);
28174 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28175 NDR_PULL_ALLOC(ndr, r->in.handle);
28177 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28178 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28179 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
28182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
28183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
28184 NDR_PULL_ALLOC(ndr, r->out.value_needed);
28185 ZERO_STRUCTP(r->out.value_needed);
28186 NDR_PULL_ALLOC(ndr, r->out.type);
28187 ZERO_STRUCTP(r->out.type);
28188 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
28189 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
28190 NDR_PULL_ALLOC(ndr, r->out.data_needed);
28191 ZERO_STRUCTP(r->out.data_needed);
28193 if (flags & NDR_OUT) {
28194 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
28195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, ndr_get_array_size(ndr, &r->out.value_name), sizeof(uint16_t), CH_UTF16));
28196 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28197 NDR_PULL_ALLOC(ndr, r->out.value_needed);
28199 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28200 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
28201 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
28202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
28203 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28204 NDR_PULL_ALLOC(ndr, r->out.type);
28206 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28207 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28208 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28211 uint32_t _flags_save_uint8 = ndr->flags;
28212 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
28213 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
28214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28215 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
28217 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
28218 ndr->flags = _flags_save_uint8;
28220 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28221 NDR_PULL_ALLOC(ndr, r->out.data_needed);
28223 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28224 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
28225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
28226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
28227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28228 if (r->out.value_name) {
28229 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
28231 if (r->out.data) {
28232 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
28235 return NDR_ERR_SUCCESS;
28238 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
28240 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
28241 ndr->depth++;
28242 if (flags & NDR_SET_VALUES) {
28243 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28245 if (flags & NDR_IN) {
28246 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
28247 ndr->depth++;
28248 ndr_print_ptr(ndr, "handle", r->in.handle);
28249 ndr->depth++;
28250 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28251 ndr->depth--;
28252 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
28253 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
28254 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
28255 ndr->depth--;
28257 if (flags & NDR_OUT) {
28258 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
28259 ndr->depth++;
28260 ndr_print_string(ndr, "value_name", r->out.value_name);
28261 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
28262 ndr->depth++;
28263 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
28264 ndr->depth--;
28265 ndr_print_ptr(ndr, "type", r->out.type);
28266 ndr->depth++;
28267 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28268 ndr->depth--;
28269 ndr_print_ptr(ndr, "data", r->out.data);
28270 ndr->depth++;
28271 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
28272 ndr->depth--;
28273 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
28274 ndr->depth++;
28275 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
28276 ndr->depth--;
28277 ndr_print_WERROR(ndr, "result", r->out.result);
28278 ndr->depth--;
28280 ndr->depth--;
28283 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
28285 if (flags & NDR_IN) {
28286 if (r->in.handle == NULL) {
28287 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28289 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28293 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28295 if (flags & NDR_OUT) {
28296 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28298 return NDR_ERR_SUCCESS;
28301 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
28303 TALLOC_CTX *_mem_save_handle_0;
28304 if (flags & NDR_IN) {
28305 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28306 NDR_PULL_ALLOC(ndr, r->in.handle);
28308 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28309 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28310 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28312 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28313 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28314 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28315 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
28317 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28318 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
28320 if (flags & NDR_OUT) {
28321 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28323 return NDR_ERR_SUCCESS;
28326 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
28328 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
28329 ndr->depth++;
28330 if (flags & NDR_SET_VALUES) {
28331 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28333 if (flags & NDR_IN) {
28334 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
28335 ndr->depth++;
28336 ndr_print_ptr(ndr, "handle", r->in.handle);
28337 ndr->depth++;
28338 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28339 ndr->depth--;
28340 ndr_print_string(ndr, "value_name", r->in.value_name);
28341 ndr->depth--;
28343 if (flags & NDR_OUT) {
28344 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
28345 ndr->depth++;
28346 ndr_print_WERROR(ndr, "result", r->out.result);
28347 ndr->depth--;
28349 ndr->depth--;
28352 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
28354 if (flags & NDR_IN) {
28356 if (flags & NDR_OUT) {
28357 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28359 return NDR_ERR_SUCCESS;
28362 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
28364 if (flags & NDR_IN) {
28366 if (flags & NDR_OUT) {
28367 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28369 return NDR_ERR_SUCCESS;
28372 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
28374 ndr_print_struct(ndr, name, "spoolss_4a");
28375 ndr->depth++;
28376 if (flags & NDR_SET_VALUES) {
28377 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28379 if (flags & NDR_IN) {
28380 ndr_print_struct(ndr, "in", "spoolss_4a");
28381 ndr->depth++;
28382 ndr->depth--;
28384 if (flags & NDR_OUT) {
28385 ndr_print_struct(ndr, "out", "spoolss_4a");
28386 ndr->depth++;
28387 ndr_print_WERROR(ndr, "result", r->out.result);
28388 ndr->depth--;
28390 ndr->depth--;
28393 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
28395 if (flags & NDR_IN) {
28397 if (flags & NDR_OUT) {
28398 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28400 return NDR_ERR_SUCCESS;
28403 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
28405 if (flags & NDR_IN) {
28407 if (flags & NDR_OUT) {
28408 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28410 return NDR_ERR_SUCCESS;
28413 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
28415 ndr_print_struct(ndr, name, "spoolss_4b");
28416 ndr->depth++;
28417 if (flags & NDR_SET_VALUES) {
28418 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28420 if (flags & NDR_IN) {
28421 ndr_print_struct(ndr, "in", "spoolss_4b");
28422 ndr->depth++;
28423 ndr->depth--;
28425 if (flags & NDR_OUT) {
28426 ndr_print_struct(ndr, "out", "spoolss_4b");
28427 ndr->depth++;
28428 ndr_print_WERROR(ndr, "result", r->out.result);
28429 ndr->depth--;
28431 ndr->depth--;
28434 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
28436 if (flags & NDR_IN) {
28438 if (flags & NDR_OUT) {
28439 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28441 return NDR_ERR_SUCCESS;
28444 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
28446 if (flags & NDR_IN) {
28448 if (flags & NDR_OUT) {
28449 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28451 return NDR_ERR_SUCCESS;
28454 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
28456 ndr_print_struct(ndr, name, "spoolss_4c");
28457 ndr->depth++;
28458 if (flags & NDR_SET_VALUES) {
28459 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28461 if (flags & NDR_IN) {
28462 ndr_print_struct(ndr, "in", "spoolss_4c");
28463 ndr->depth++;
28464 ndr->depth--;
28466 if (flags & NDR_OUT) {
28467 ndr_print_struct(ndr, "out", "spoolss_4c");
28468 ndr->depth++;
28469 ndr_print_WERROR(ndr, "result", r->out.result);
28470 ndr->depth--;
28472 ndr->depth--;
28475 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
28477 if (flags & NDR_IN) {
28478 if (r->in.handle == NULL) {
28479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28481 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28485 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28489 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28490 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28491 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
28492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
28494 if (flags & NDR_OUT) {
28495 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28497 return NDR_ERR_SUCCESS;
28500 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
28502 if (flags & NDR_IN) {
28503 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28505 if (flags & NDR_OUT) {
28506 if (r->out.data == NULL) {
28507 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28509 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28510 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28512 return NDR_ERR_SUCCESS;
28515 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
28517 TALLOC_CTX *_mem_save_handle_0;
28518 if (flags & NDR_IN) {
28519 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28520 NDR_PULL_ALLOC(ndr, r->in.handle);
28522 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28523 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28524 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28526 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28527 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28528 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28529 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28531 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28533 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28534 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28535 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28536 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
28538 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
28540 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28542 struct ndr_pull *_ndr_data;
28543 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
28544 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
28545 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
28546 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
28548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
28550 if (flags & NDR_OUT) {
28551 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28553 return NDR_ERR_SUCCESS;
28556 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
28558 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
28559 ndr->depth++;
28560 if (flags & NDR_SET_VALUES) {
28561 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28563 if (flags & NDR_IN) {
28564 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
28565 ndr->depth++;
28566 ndr_print_ptr(ndr, "handle", r->in.handle);
28567 ndr->depth++;
28568 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28569 ndr->depth--;
28570 ndr_print_string(ndr, "key_name", r->in.key_name);
28571 ndr_print_string(ndr, "value_name", r->in.value_name);
28572 ndr_print_winreg_Type(ndr, "type", r->in.type);
28573 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
28574 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
28575 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
28576 ndr->depth--;
28578 if (flags & NDR_OUT) {
28579 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
28580 ndr->depth++;
28581 ndr_print_WERROR(ndr, "result", r->out.result);
28582 ndr->depth--;
28584 ndr->depth--;
28587 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
28589 if (flags & NDR_IN) {
28590 if (r->in.handle == NULL) {
28591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28593 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28597 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28604 if (flags & NDR_OUT) {
28605 if (r->out.type == NULL) {
28606 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28608 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28609 if (r->out.data == NULL) {
28610 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28612 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
28613 if (r->out.needed == NULL) {
28614 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28617 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28619 return NDR_ERR_SUCCESS;
28622 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
28624 TALLOC_CTX *_mem_save_handle_0;
28625 TALLOC_CTX *_mem_save_type_0;
28626 TALLOC_CTX *_mem_save_data_0;
28627 TALLOC_CTX *_mem_save_needed_0;
28628 if (flags & NDR_IN) {
28629 ZERO_STRUCT(r->out);
28631 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28632 NDR_PULL_ALLOC(ndr, r->in.handle);
28634 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28635 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28636 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28638 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28639 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28640 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28641 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28643 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28645 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28646 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28647 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28648 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
28650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
28652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28653 NDR_PULL_ALLOC(ndr, r->out.type);
28654 ZERO_STRUCTP(r->out.type);
28655 NDR_PULL_ALLOC(ndr, r->out.data);
28656 ZERO_STRUCTP(r->out.data);
28657 NDR_PULL_ALLOC(ndr, r->out.needed);
28658 ZERO_STRUCTP(r->out.needed);
28660 if (flags & NDR_OUT) {
28661 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28662 NDR_PULL_ALLOC(ndr, r->out.type);
28664 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28665 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28666 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28669 NDR_PULL_ALLOC(ndr, r->out.data);
28671 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28672 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28673 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
28674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28675 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28676 NDR_PULL_ALLOC(ndr, r->out.needed);
28678 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28679 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28684 return NDR_ERR_SUCCESS;
28687 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
28689 if (flags & NDR_IN) {
28690 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28692 if (flags & NDR_OUT) {
28693 if (r->out.data == NULL) {
28694 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28696 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28697 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28699 return NDR_ERR_SUCCESS;
28702 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
28704 TALLOC_CTX *_mem_save_data_0;
28705 if (flags & NDR_IN) {
28706 ZERO_STRUCT(r->out);
28708 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28709 NDR_PULL_ALLOC(ndr, r->out.data);
28710 ZERO_STRUCTP(r->out.data);
28712 if (flags & NDR_OUT) {
28713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28714 NDR_PULL_ALLOC(ndr, r->out.data);
28716 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28717 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28718 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28719 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28722 return NDR_ERR_SUCCESS;
28725 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28727 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28728 ndr->depth++;
28729 if (flags & NDR_SET_VALUES) {
28730 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28732 if (flags & NDR_IN) {
28733 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28734 ndr->depth++;
28735 ndr_print_ptr(ndr, "handle", r->in.handle);
28736 ndr->depth++;
28737 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28738 ndr->depth--;
28739 ndr_print_string(ndr, "key_name", r->in.key_name);
28740 ndr_print_string(ndr, "value_name", r->in.value_name);
28741 ndr_print_uint32(ndr, "offered", r->in.offered);
28742 ndr->depth--;
28744 if (flags & NDR_OUT) {
28745 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28746 ndr->depth++;
28747 ndr_print_ptr(ndr, "type", r->out.type);
28748 ndr->depth++;
28749 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28750 ndr->depth--;
28751 ndr_print_ptr(ndr, "data", r->out.data);
28752 ndr->depth++;
28753 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28754 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28755 ndr->depth--;
28756 ndr_print_ptr(ndr, "needed", r->out.needed);
28757 ndr->depth++;
28758 ndr_print_uint32(ndr, "needed", *r->out.needed);
28759 ndr->depth--;
28760 ndr_print_WERROR(ndr, "result", r->out.result);
28761 ndr->depth--;
28763 ndr->depth--;
28766 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28768 if (flags & NDR_IN) {
28769 if (r->in.handle == NULL) {
28770 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28772 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28779 if (flags & NDR_OUT) {
28780 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28781 if (r->out.needed == NULL) {
28782 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28785 if (r->out.count == NULL) {
28786 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28789 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28791 return NDR_ERR_SUCCESS;
28794 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28796 TALLOC_CTX *_mem_save_handle_0;
28797 TALLOC_CTX *_mem_save_needed_0;
28798 TALLOC_CTX *_mem_save_count_0;
28799 if (flags & NDR_IN) {
28800 ZERO_STRUCT(r->out);
28802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28803 NDR_PULL_ALLOC(ndr, r->in.handle);
28805 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28806 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28807 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28809 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28810 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28811 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28812 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28815 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28817 NDR_PULL_ALLOC(ndr, r->out.needed);
28818 ZERO_STRUCTP(r->out.needed);
28819 NDR_PULL_ALLOC(ndr, r->out.count);
28820 ZERO_STRUCTP(r->out.count);
28822 if (flags & NDR_OUT) {
28823 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28824 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28825 NDR_PULL_ALLOC(ndr, r->out.needed);
28827 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28828 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28831 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28832 NDR_PULL_ALLOC(ndr, r->out.count);
28834 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28835 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28838 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28840 return NDR_ERR_SUCCESS;
28843 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28845 uint32_t cntr_info_0;
28846 if (flags & NDR_IN) {
28847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28849 if (flags & NDR_OUT) {
28850 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28851 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28853 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28854 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28857 return NDR_ERR_SUCCESS;
28860 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28862 uint32_t cntr_info_0;
28863 TALLOC_CTX *_mem_save_info_0;
28864 if (flags & NDR_IN) {
28865 ZERO_STRUCT(r->out);
28867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28869 if (flags & NDR_OUT) {
28870 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28871 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28872 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28873 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28874 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28876 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28877 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28881 return NDR_ERR_SUCCESS;
28884 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28886 uint32_t cntr_info_2;
28887 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28888 ndr->depth++;
28889 if (flags & NDR_SET_VALUES) {
28890 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28892 if (flags & NDR_IN) {
28893 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28894 ndr->depth++;
28895 ndr_print_ptr(ndr, "handle", r->in.handle);
28896 ndr->depth++;
28897 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28898 ndr->depth--;
28899 ndr_print_string(ndr, "key_name", r->in.key_name);
28900 ndr_print_uint32(ndr, "offered", r->in.offered);
28901 ndr->depth--;
28903 if (flags & NDR_OUT) {
28904 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28905 ndr->depth++;
28906 ndr_print_ptr(ndr, "count", r->out.count);
28907 ndr->depth++;
28908 ndr_print_uint32(ndr, "count", *r->out.count);
28909 ndr->depth--;
28910 ndr_print_ptr(ndr, "info", r->out.info);
28911 ndr->depth++;
28912 ndr_print_ptr(ndr, "info", *r->out.info);
28913 ndr->depth++;
28914 if (*r->out.info) {
28915 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28916 ndr->depth++;
28917 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28918 char *idx_2=NULL;
28919 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28920 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28921 free(idx_2);
28924 ndr->depth--;
28926 ndr->depth--;
28927 ndr->depth--;
28928 ndr_print_ptr(ndr, "needed", r->out.needed);
28929 ndr->depth++;
28930 ndr_print_uint32(ndr, "needed", *r->out.needed);
28931 ndr->depth--;
28932 ndr_print_WERROR(ndr, "result", r->out.result);
28933 ndr->depth--;
28935 ndr->depth--;
28938 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28940 if (flags & NDR_IN) {
28941 if (r->in.handle == NULL) {
28942 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28944 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28945 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28947 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28948 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28951 if (flags & NDR_OUT) {
28952 if (r->out._ndr_size == NULL) {
28953 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28956 if (r->out.key_buffer == NULL) {
28957 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28960 struct ndr_push *_ndr_key_buffer;
28961 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28962 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28963 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28964 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28966 if (r->out.needed == NULL) {
28967 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28970 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28972 return NDR_ERR_SUCCESS;
28975 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28977 TALLOC_CTX *_mem_save_handle_0;
28978 TALLOC_CTX *_mem_save__ndr_size_0;
28979 TALLOC_CTX *_mem_save_key_buffer_0;
28980 TALLOC_CTX *_mem_save_needed_0;
28981 if (flags & NDR_IN) {
28982 ZERO_STRUCT(r->out);
28984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28985 NDR_PULL_ALLOC(ndr, r->in.handle);
28987 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28988 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28989 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28991 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28992 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28993 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28994 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28996 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28997 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
28998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28999 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
29000 ZERO_STRUCTP(r->out._ndr_size);
29001 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
29002 ZERO_STRUCTP(r->out.key_buffer);
29003 NDR_PULL_ALLOC(ndr, r->out.needed);
29004 ZERO_STRUCTP(r->out.needed);
29006 if (flags & NDR_OUT) {
29007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29008 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
29010 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
29011 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
29012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
29013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
29014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29015 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
29017 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29018 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
29020 struct ndr_pull *_ndr_key_buffer;
29021 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
29022 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
29023 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
29024 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
29026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
29027 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29028 NDR_PULL_ALLOC(ndr, r->out.needed);
29030 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29031 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29034 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29036 return NDR_ERR_SUCCESS;
29039 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
29041 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
29042 ndr->depth++;
29043 if (flags & NDR_SET_VALUES) {
29044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29046 if (flags & NDR_IN) {
29047 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
29048 ndr->depth++;
29049 ndr_print_ptr(ndr, "handle", r->in.handle);
29050 ndr->depth++;
29051 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29052 ndr->depth--;
29053 ndr_print_string(ndr, "key_name", r->in.key_name);
29054 ndr_print_uint32(ndr, "offered", r->in.offered);
29055 ndr->depth--;
29057 if (flags & NDR_OUT) {
29058 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
29059 ndr->depth++;
29060 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
29061 ndr->depth++;
29062 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
29063 ndr->depth--;
29064 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
29065 ndr->depth++;
29066 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
29067 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
29068 ndr->depth--;
29069 ndr_print_ptr(ndr, "needed", r->out.needed);
29070 ndr->depth++;
29071 ndr_print_uint32(ndr, "needed", *r->out.needed);
29072 ndr->depth--;
29073 ndr_print_WERROR(ndr, "result", r->out.result);
29074 ndr->depth--;
29076 ndr->depth--;
29079 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
29081 if (flags & NDR_IN) {
29082 if (r->in.handle == NULL) {
29083 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29085 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29092 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29093 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29095 if (flags & NDR_OUT) {
29096 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29098 return NDR_ERR_SUCCESS;
29101 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
29103 TALLOC_CTX *_mem_save_handle_0;
29104 if (flags & NDR_IN) {
29105 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29106 NDR_PULL_ALLOC(ndr, r->in.handle);
29108 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29109 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29110 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29112 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29113 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29114 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29115 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
29117 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29118 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
29119 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
29120 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
29121 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
29122 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
29124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
29125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
29127 if (flags & NDR_OUT) {
29128 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29130 return NDR_ERR_SUCCESS;
29133 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
29135 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
29136 ndr->depth++;
29137 if (flags & NDR_SET_VALUES) {
29138 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29140 if (flags & NDR_IN) {
29141 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
29142 ndr->depth++;
29143 ndr_print_ptr(ndr, "handle", r->in.handle);
29144 ndr->depth++;
29145 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29146 ndr->depth--;
29147 ndr_print_string(ndr, "key_name", r->in.key_name);
29148 ndr_print_string(ndr, "value_name", r->in.value_name);
29149 ndr->depth--;
29151 if (flags & NDR_OUT) {
29152 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
29153 ndr->depth++;
29154 ndr_print_WERROR(ndr, "result", r->out.result);
29155 ndr->depth--;
29157 ndr->depth--;
29160 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
29162 if (flags & NDR_IN) {
29163 if (r->in.handle == NULL) {
29164 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29166 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.key_name, ndr_charset_length(r->in.key_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29172 if (flags & NDR_OUT) {
29173 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29175 return NDR_ERR_SUCCESS;
29178 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
29180 TALLOC_CTX *_mem_save_handle_0;
29181 if (flags & NDR_IN) {
29182 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29183 NDR_PULL_ALLOC(ndr, r->in.handle);
29185 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29186 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29187 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29189 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29190 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29191 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29192 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
29194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
29197 if (flags & NDR_OUT) {
29198 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29200 return NDR_ERR_SUCCESS;
29203 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
29205 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
29206 ndr->depth++;
29207 if (flags & NDR_SET_VALUES) {
29208 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29210 if (flags & NDR_IN) {
29211 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
29212 ndr->depth++;
29213 ndr_print_ptr(ndr, "handle", r->in.handle);
29214 ndr->depth++;
29215 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29216 ndr->depth--;
29217 ndr_print_string(ndr, "key_name", r->in.key_name);
29218 ndr->depth--;
29220 if (flags & NDR_OUT) {
29221 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
29222 ndr->depth++;
29223 ndr_print_WERROR(ndr, "result", r->out.result);
29224 ndr->depth--;
29226 ndr->depth--;
29229 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
29231 if (flags & NDR_IN) {
29233 if (flags & NDR_OUT) {
29234 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29236 return NDR_ERR_SUCCESS;
29239 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
29241 if (flags & NDR_IN) {
29243 if (flags & NDR_OUT) {
29244 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29246 return NDR_ERR_SUCCESS;
29249 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
29251 ndr_print_struct(ndr, name, "spoolss_53");
29252 ndr->depth++;
29253 if (flags & NDR_SET_VALUES) {
29254 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29256 if (flags & NDR_IN) {
29257 ndr_print_struct(ndr, "in", "spoolss_53");
29258 ndr->depth++;
29259 ndr->depth--;
29261 if (flags & NDR_OUT) {
29262 ndr_print_struct(ndr, "out", "spoolss_53");
29263 ndr->depth++;
29264 ndr_print_WERROR(ndr, "result", r->out.result);
29265 ndr->depth--;
29267 ndr->depth--;
29270 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29272 if (flags & NDR_IN) {
29273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
29274 if (r->in.server) {
29275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29278 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29283 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29284 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29285 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29286 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29288 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
29289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
29291 if (flags & NDR_OUT) {
29292 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29294 return NDR_ERR_SUCCESS;
29297 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
29299 uint32_t _ptr_server;
29300 TALLOC_CTX *_mem_save_server_0;
29301 if (flags & NDR_IN) {
29302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
29303 if (_ptr_server) {
29304 NDR_PULL_ALLOC(ndr, r->in.server);
29305 } else {
29306 r->in.server = NULL;
29308 if (r->in.server) {
29309 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
29310 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
29311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
29312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
29313 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
29314 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
29316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
29317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
29318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
29320 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29321 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29322 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29323 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
29325 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29326 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29327 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
29328 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
29329 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
29330 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
29332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
29333 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
29334 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
29335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
29337 if (flags & NDR_OUT) {
29338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29340 return NDR_ERR_SUCCESS;
29343 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29345 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
29346 ndr->depth++;
29347 if (flags & NDR_SET_VALUES) {
29348 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29350 if (flags & NDR_IN) {
29351 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
29352 ndr->depth++;
29353 ndr_print_ptr(ndr, "server", r->in.server);
29354 ndr->depth++;
29355 if (r->in.server) {
29356 ndr_print_string(ndr, "server", r->in.server);
29358 ndr->depth--;
29359 ndr_print_string(ndr, "architecture", r->in.architecture);
29360 ndr_print_string(ndr, "driver", r->in.driver);
29361 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
29362 ndr_print_uint32(ndr, "version", r->in.version);
29363 ndr->depth--;
29365 if (flags & NDR_OUT) {
29366 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
29367 ndr->depth++;
29368 ndr_print_WERROR(ndr, "result", r->out.result);
29369 ndr->depth--;
29371 ndr->depth--;
29374 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
29376 if (flags & NDR_IN) {
29378 if (flags & NDR_OUT) {
29379 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29381 return NDR_ERR_SUCCESS;
29384 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
29386 if (flags & NDR_IN) {
29388 if (flags & NDR_OUT) {
29389 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29391 return NDR_ERR_SUCCESS;
29394 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
29396 ndr_print_struct(ndr, name, "spoolss_55");
29397 ndr->depth++;
29398 if (flags & NDR_SET_VALUES) {
29399 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29401 if (flags & NDR_IN) {
29402 ndr_print_struct(ndr, "in", "spoolss_55");
29403 ndr->depth++;
29404 ndr->depth--;
29406 if (flags & NDR_OUT) {
29407 ndr_print_struct(ndr, "out", "spoolss_55");
29408 ndr->depth++;
29409 ndr_print_WERROR(ndr, "result", r->out.result);
29410 ndr->depth--;
29412 ndr->depth--;
29415 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
29417 if (flags & NDR_IN) {
29419 if (flags & NDR_OUT) {
29420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29422 return NDR_ERR_SUCCESS;
29425 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
29427 if (flags & NDR_IN) {
29429 if (flags & NDR_OUT) {
29430 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29432 return NDR_ERR_SUCCESS;
29435 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
29437 ndr_print_struct(ndr, name, "spoolss_56");
29438 ndr->depth++;
29439 if (flags & NDR_SET_VALUES) {
29440 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29442 if (flags & NDR_IN) {
29443 ndr_print_struct(ndr, "in", "spoolss_56");
29444 ndr->depth++;
29445 ndr->depth--;
29447 if (flags & NDR_OUT) {
29448 ndr_print_struct(ndr, "out", "spoolss_56");
29449 ndr->depth++;
29450 ndr_print_WERROR(ndr, "result", r->out.result);
29451 ndr->depth--;
29453 ndr->depth--;
29456 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
29458 if (flags & NDR_IN) {
29460 if (flags & NDR_OUT) {
29461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29463 return NDR_ERR_SUCCESS;
29466 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
29468 if (flags & NDR_IN) {
29470 if (flags & NDR_OUT) {
29471 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29473 return NDR_ERR_SUCCESS;
29476 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
29478 ndr_print_struct(ndr, name, "spoolss_57");
29479 ndr->depth++;
29480 if (flags & NDR_SET_VALUES) {
29481 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29483 if (flags & NDR_IN) {
29484 ndr_print_struct(ndr, "in", "spoolss_57");
29485 ndr->depth++;
29486 ndr->depth--;
29488 if (flags & NDR_OUT) {
29489 ndr_print_struct(ndr, "out", "spoolss_57");
29490 ndr->depth++;
29491 ndr_print_WERROR(ndr, "result", r->out.result);
29492 ndr->depth--;
29494 ndr->depth--;
29497 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
29499 if (flags & NDR_IN) {
29500 if (r->in.handle == NULL) {
29501 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29503 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29506 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.function_name, ndr_charset_length(r->in.function_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29508 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
29509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
29510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
29511 if (r->in.status_code == NULL) {
29512 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
29516 if (flags & NDR_OUT) {
29517 if (r->out.out_data == NULL) {
29518 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
29521 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
29522 if (r->out.needed == NULL) {
29523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29526 if (r->out.status_code == NULL) {
29527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
29530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29532 return NDR_ERR_SUCCESS;
29535 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
29537 TALLOC_CTX *_mem_save_handle_0;
29538 TALLOC_CTX *_mem_save_needed_0;
29539 TALLOC_CTX *_mem_save_status_code_0;
29540 if (flags & NDR_IN) {
29541 ZERO_STRUCT(r->out);
29543 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29544 NDR_PULL_ALLOC(ndr, r->in.handle);
29546 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29547 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29548 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29550 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
29551 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
29552 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
29553 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.function_name), ndr_get_array_length(ndr, &r->in.function_name));
29555 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
29556 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t), CH_UTF16));
29557 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
29558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
29559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
29560 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29561 NDR_PULL_ALLOC(ndr, r->in.status_code);
29563 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29564 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
29565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
29566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29567 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
29568 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
29569 NDR_PULL_ALLOC(ndr, r->out.needed);
29570 ZERO_STRUCTP(r->out.needed);
29571 NDR_PULL_ALLOC(ndr, r->out.status_code);
29572 *r->out.status_code = *r->in.status_code;
29574 if (flags & NDR_OUT) {
29575 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
29576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29577 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
29579 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
29580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29581 NDR_PULL_ALLOC(ndr, r->out.needed);
29583 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29584 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29587 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29588 NDR_PULL_ALLOC(ndr, r->out.status_code);
29590 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29591 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
29592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
29593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29594 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29595 if (r->out.out_data) {
29596 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
29599 return NDR_ERR_SUCCESS;
29602 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
29604 ndr_print_struct(ndr, name, "spoolss_XcvData");
29605 ndr->depth++;
29606 if (flags & NDR_SET_VALUES) {
29607 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29609 if (flags & NDR_IN) {
29610 ndr_print_struct(ndr, "in", "spoolss_XcvData");
29611 ndr->depth++;
29612 ndr_print_ptr(ndr, "handle", r->in.handle);
29613 ndr->depth++;
29614 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29615 ndr->depth--;
29616 ndr_print_string(ndr, "function_name", r->in.function_name);
29617 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
29618 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
29619 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
29620 ndr_print_ptr(ndr, "status_code", r->in.status_code);
29621 ndr->depth++;
29622 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
29623 ndr->depth--;
29624 ndr->depth--;
29626 if (flags & NDR_OUT) {
29627 ndr_print_struct(ndr, "out", "spoolss_XcvData");
29628 ndr->depth++;
29629 ndr_print_ptr(ndr, "out_data", r->out.out_data);
29630 ndr->depth++;
29631 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
29632 ndr->depth--;
29633 ndr_print_ptr(ndr, "needed", r->out.needed);
29634 ndr->depth++;
29635 ndr_print_uint32(ndr, "needed", *r->out.needed);
29636 ndr->depth--;
29637 ndr_print_ptr(ndr, "status_code", r->out.status_code);
29638 ndr->depth++;
29639 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
29640 ndr->depth--;
29641 ndr_print_WERROR(ndr, "result", r->out.result);
29642 ndr->depth--;
29644 ndr->depth--;
29647 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
29649 if (flags & NDR_IN) {
29650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29651 if (r->in.servername) {
29652 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29657 if (r->in.info_ctr == NULL) {
29658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29660 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29661 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
29663 if (flags & NDR_OUT) {
29664 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29666 return NDR_ERR_SUCCESS;
29669 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
29671 uint32_t _ptr_servername;
29672 TALLOC_CTX *_mem_save_servername_0;
29673 TALLOC_CTX *_mem_save_info_ctr_0;
29674 if (flags & NDR_IN) {
29675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29676 if (_ptr_servername) {
29677 NDR_PULL_ALLOC(ndr, r->in.servername);
29678 } else {
29679 r->in.servername = NULL;
29681 if (r->in.servername) {
29682 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29683 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29684 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29685 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29686 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29687 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
29689 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29690 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29693 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29694 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
29696 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29697 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
29698 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29700 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
29702 if (flags & NDR_OUT) {
29703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29705 return NDR_ERR_SUCCESS;
29708 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
29710 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29711 ndr->depth++;
29712 if (flags & NDR_SET_VALUES) {
29713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29715 if (flags & NDR_IN) {
29716 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29717 ndr->depth++;
29718 ndr_print_ptr(ndr, "servername", r->in.servername);
29719 ndr->depth++;
29720 if (r->in.servername) {
29721 ndr_print_string(ndr, "servername", r->in.servername);
29723 ndr->depth--;
29724 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29725 ndr->depth++;
29726 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29727 ndr->depth--;
29728 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29729 ndr->depth--;
29731 if (flags & NDR_OUT) {
29732 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29733 ndr->depth++;
29734 ndr_print_WERROR(ndr, "result", r->out.result);
29735 ndr->depth--;
29737 ndr->depth--;
29740 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29742 if (flags & NDR_IN) {
29744 if (flags & NDR_OUT) {
29745 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29747 return NDR_ERR_SUCCESS;
29750 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29752 if (flags & NDR_IN) {
29754 if (flags & NDR_OUT) {
29755 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29757 return NDR_ERR_SUCCESS;
29760 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29762 ndr_print_struct(ndr, name, "spoolss_5a");
29763 ndr->depth++;
29764 if (flags & NDR_SET_VALUES) {
29765 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29767 if (flags & NDR_IN) {
29768 ndr_print_struct(ndr, "in", "spoolss_5a");
29769 ndr->depth++;
29770 ndr->depth--;
29772 if (flags & NDR_OUT) {
29773 ndr_print_struct(ndr, "out", "spoolss_5a");
29774 ndr->depth++;
29775 ndr_print_WERROR(ndr, "result", r->out.result);
29776 ndr->depth--;
29778 ndr->depth--;
29781 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29783 if (flags & NDR_IN) {
29785 if (flags & NDR_OUT) {
29786 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29788 return NDR_ERR_SUCCESS;
29791 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29793 if (flags & NDR_IN) {
29795 if (flags & NDR_OUT) {
29796 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29798 return NDR_ERR_SUCCESS;
29801 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29803 ndr_print_struct(ndr, name, "spoolss_5b");
29804 ndr->depth++;
29805 if (flags & NDR_SET_VALUES) {
29806 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29808 if (flags & NDR_IN) {
29809 ndr_print_struct(ndr, "in", "spoolss_5b");
29810 ndr->depth++;
29811 ndr->depth--;
29813 if (flags & NDR_OUT) {
29814 ndr_print_struct(ndr, "out", "spoolss_5b");
29815 ndr->depth++;
29816 ndr_print_WERROR(ndr, "result", r->out.result);
29817 ndr->depth--;
29819 ndr->depth--;
29822 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29824 if (flags & NDR_IN) {
29826 if (flags & NDR_OUT) {
29827 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29829 return NDR_ERR_SUCCESS;
29832 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29834 if (flags & NDR_IN) {
29836 if (flags & NDR_OUT) {
29837 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29839 return NDR_ERR_SUCCESS;
29842 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29844 ndr_print_struct(ndr, name, "spoolss_5c");
29845 ndr->depth++;
29846 if (flags & NDR_SET_VALUES) {
29847 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29849 if (flags & NDR_IN) {
29850 ndr_print_struct(ndr, "in", "spoolss_5c");
29851 ndr->depth++;
29852 ndr->depth--;
29854 if (flags & NDR_OUT) {
29855 ndr_print_struct(ndr, "out", "spoolss_5c");
29856 ndr->depth++;
29857 ndr_print_WERROR(ndr, "result", r->out.result);
29858 ndr->depth--;
29860 ndr->depth--;
29863 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29865 if (flags & NDR_IN) {
29867 if (flags & NDR_OUT) {
29868 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29870 return NDR_ERR_SUCCESS;
29873 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29875 if (flags & NDR_IN) {
29877 if (flags & NDR_OUT) {
29878 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29880 return NDR_ERR_SUCCESS;
29883 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29885 ndr_print_struct(ndr, name, "spoolss_5d");
29886 ndr->depth++;
29887 if (flags & NDR_SET_VALUES) {
29888 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29890 if (flags & NDR_IN) {
29891 ndr_print_struct(ndr, "in", "spoolss_5d");
29892 ndr->depth++;
29893 ndr->depth--;
29895 if (flags & NDR_OUT) {
29896 ndr_print_struct(ndr, "out", "spoolss_5d");
29897 ndr->depth++;
29898 ndr_print_WERROR(ndr, "result", r->out.result);
29899 ndr->depth--;
29901 ndr->depth--;
29904 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29906 if (flags & NDR_IN) {
29908 if (flags & NDR_OUT) {
29909 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29911 return NDR_ERR_SUCCESS;
29914 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29916 if (flags & NDR_IN) {
29918 if (flags & NDR_OUT) {
29919 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29921 return NDR_ERR_SUCCESS;
29924 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29926 ndr_print_struct(ndr, name, "spoolss_5e");
29927 ndr->depth++;
29928 if (flags & NDR_SET_VALUES) {
29929 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29931 if (flags & NDR_IN) {
29932 ndr_print_struct(ndr, "in", "spoolss_5e");
29933 ndr->depth++;
29934 ndr->depth--;
29936 if (flags & NDR_OUT) {
29937 ndr_print_struct(ndr, "out", "spoolss_5e");
29938 ndr->depth++;
29939 ndr_print_WERROR(ndr, "result", r->out.result);
29940 ndr->depth--;
29942 ndr->depth--;
29945 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29947 if (flags & NDR_IN) {
29949 if (flags & NDR_OUT) {
29950 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29952 return NDR_ERR_SUCCESS;
29955 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29957 if (flags & NDR_IN) {
29959 if (flags & NDR_OUT) {
29960 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29962 return NDR_ERR_SUCCESS;
29965 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29967 ndr_print_struct(ndr, name, "spoolss_5f");
29968 ndr->depth++;
29969 if (flags & NDR_SET_VALUES) {
29970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29972 if (flags & NDR_IN) {
29973 ndr_print_struct(ndr, "in", "spoolss_5f");
29974 ndr->depth++;
29975 ndr->depth--;
29977 if (flags & NDR_OUT) {
29978 ndr_print_struct(ndr, "out", "spoolss_5f");
29979 ndr->depth++;
29980 ndr_print_WERROR(ndr, "result", r->out.result);
29981 ndr->depth--;
29983 ndr->depth--;
29986 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29988 if (flags & NDR_IN) {
29990 if (flags & NDR_OUT) {
29991 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29993 return NDR_ERR_SUCCESS;
29996 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29998 if (flags & NDR_IN) {
30000 if (flags & NDR_OUT) {
30001 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30003 return NDR_ERR_SUCCESS;
30006 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
30008 ndr_print_struct(ndr, name, "spoolss_60");
30009 ndr->depth++;
30010 if (flags & NDR_SET_VALUES) {
30011 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30013 if (flags & NDR_IN) {
30014 ndr_print_struct(ndr, "in", "spoolss_60");
30015 ndr->depth++;
30016 ndr->depth--;
30018 if (flags & NDR_OUT) {
30019 ndr_print_struct(ndr, "out", "spoolss_60");
30020 ndr->depth++;
30021 ndr_print_WERROR(ndr, "result", r->out.result);
30022 ndr->depth--;
30024 ndr->depth--;
30027 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
30029 if (flags & NDR_IN) {
30031 if (flags & NDR_OUT) {
30032 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30034 return NDR_ERR_SUCCESS;
30037 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
30039 if (flags & NDR_IN) {
30041 if (flags & NDR_OUT) {
30042 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30044 return NDR_ERR_SUCCESS;
30047 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
30049 ndr_print_struct(ndr, name, "spoolss_61");
30050 ndr->depth++;
30051 if (flags & NDR_SET_VALUES) {
30052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30054 if (flags & NDR_IN) {
30055 ndr_print_struct(ndr, "in", "spoolss_61");
30056 ndr->depth++;
30057 ndr->depth--;
30059 if (flags & NDR_OUT) {
30060 ndr_print_struct(ndr, "out", "spoolss_61");
30061 ndr->depth++;
30062 ndr_print_WERROR(ndr, "result", r->out.result);
30063 ndr->depth--;
30065 ndr->depth--;
30068 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
30070 if (flags & NDR_IN) {
30072 if (flags & NDR_OUT) {
30073 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30075 return NDR_ERR_SUCCESS;
30078 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
30080 if (flags & NDR_IN) {
30082 if (flags & NDR_OUT) {
30083 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30085 return NDR_ERR_SUCCESS;
30088 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
30090 ndr_print_struct(ndr, name, "spoolss_62");
30091 ndr->depth++;
30092 if (flags & NDR_SET_VALUES) {
30093 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30095 if (flags & NDR_IN) {
30096 ndr_print_struct(ndr, "in", "spoolss_62");
30097 ndr->depth++;
30098 ndr->depth--;
30100 if (flags & NDR_OUT) {
30101 ndr_print_struct(ndr, "out", "spoolss_62");
30102 ndr->depth++;
30103 ndr_print_WERROR(ndr, "result", r->out.result);
30104 ndr->depth--;
30106 ndr->depth--;
30109 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
30111 if (flags & NDR_IN) {
30113 if (flags & NDR_OUT) {
30114 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30116 return NDR_ERR_SUCCESS;
30119 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
30121 if (flags & NDR_IN) {
30123 if (flags & NDR_OUT) {
30124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30126 return NDR_ERR_SUCCESS;
30129 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
30131 ndr_print_struct(ndr, name, "spoolss_63");
30132 ndr->depth++;
30133 if (flags & NDR_SET_VALUES) {
30134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30136 if (flags & NDR_IN) {
30137 ndr_print_struct(ndr, "in", "spoolss_63");
30138 ndr->depth++;
30139 ndr->depth--;
30141 if (flags & NDR_OUT) {
30142 ndr_print_struct(ndr, "out", "spoolss_63");
30143 ndr->depth++;
30144 ndr_print_WERROR(ndr, "result", r->out.result);
30145 ndr->depth--;
30147 ndr->depth--;
30150 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
30152 if (flags & NDR_IN) {
30154 if (flags & NDR_OUT) {
30155 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30157 return NDR_ERR_SUCCESS;
30160 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
30162 if (flags & NDR_IN) {
30164 if (flags & NDR_OUT) {
30165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30167 return NDR_ERR_SUCCESS;
30170 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
30172 ndr_print_struct(ndr, name, "spoolss_64");
30173 ndr->depth++;
30174 if (flags & NDR_SET_VALUES) {
30175 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30177 if (flags & NDR_IN) {
30178 ndr_print_struct(ndr, "in", "spoolss_64");
30179 ndr->depth++;
30180 ndr->depth--;
30182 if (flags & NDR_OUT) {
30183 ndr_print_struct(ndr, "out", "spoolss_64");
30184 ndr->depth++;
30185 ndr_print_WERROR(ndr, "result", r->out.result);
30186 ndr->depth--;
30188 ndr->depth--;
30191 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
30193 if (flags & NDR_IN) {
30195 if (flags & NDR_OUT) {
30196 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30198 return NDR_ERR_SUCCESS;
30201 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
30203 if (flags & NDR_IN) {
30205 if (flags & NDR_OUT) {
30206 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30208 return NDR_ERR_SUCCESS;
30211 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
30213 ndr_print_struct(ndr, name, "spoolss_65");
30214 ndr->depth++;
30215 if (flags & NDR_SET_VALUES) {
30216 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30218 if (flags & NDR_IN) {
30219 ndr_print_struct(ndr, "in", "spoolss_65");
30220 ndr->depth++;
30221 ndr->depth--;
30223 if (flags & NDR_OUT) {
30224 ndr_print_struct(ndr, "out", "spoolss_65");
30225 ndr->depth++;
30226 ndr_print_WERROR(ndr, "result", r->out.result);
30227 ndr->depth--;
30229 ndr->depth--;
30232 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30234 uint32_t cntr_core_printer_drivers_1;
30235 if (flags & NDR_IN) {
30236 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30237 if (r->in.servername) {
30238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30241 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30243 if (r->in.architecture == NULL) {
30244 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30249 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
30251 if (r->in.core_driver_dependencies == NULL) {
30252 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
30255 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
30256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30258 if (flags & NDR_OUT) {
30259 if (r->out.core_printer_drivers == NULL) {
30260 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30262 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30263 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30264 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30266 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30268 return NDR_ERR_SUCCESS;
30271 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
30273 uint32_t _ptr_servername;
30274 uint32_t cntr_core_printer_drivers_1;
30275 TALLOC_CTX *_mem_save_servername_0;
30276 TALLOC_CTX *_mem_save_core_printer_drivers_1;
30277 if (flags & NDR_IN) {
30278 ZERO_STRUCT(r->out);
30280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30281 if (_ptr_servername) {
30282 NDR_PULL_ALLOC(ndr, r->in.servername);
30283 } else {
30284 r->in.servername = NULL;
30286 if (r->in.servername) {
30287 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30288 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30289 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30290 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30291 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30292 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
30294 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30295 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30298 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30299 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30300 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30301 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
30303 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30304 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
30306 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
30307 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.core_driver_dependencies, ndr_get_array_size(ndr, &r->in.core_driver_dependencies), sizeof(uint16_t), CH_UTF16));
30308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
30309 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
30310 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
30311 if (r->in.core_driver_dependencies) {
30312 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
30315 if (flags & NDR_OUT) {
30316 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
30317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30318 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
30320 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
30321 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
30322 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30323 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
30326 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30327 if (r->out.core_printer_drivers) {
30328 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
30331 return NDR_ERR_SUCCESS;
30334 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30336 uint32_t cntr_core_printer_drivers_1;
30337 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
30338 ndr->depth++;
30339 if (flags & NDR_SET_VALUES) {
30340 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30342 if (flags & NDR_IN) {
30343 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
30344 ndr->depth++;
30345 ndr_print_ptr(ndr, "servername", r->in.servername);
30346 ndr->depth++;
30347 if (r->in.servername) {
30348 ndr_print_string(ndr, "servername", r->in.servername);
30350 ndr->depth--;
30351 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30352 ndr->depth++;
30353 ndr_print_string(ndr, "architecture", r->in.architecture);
30354 ndr->depth--;
30355 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
30356 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30357 ndr->depth++;
30358 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30359 ndr->depth--;
30360 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
30361 ndr->depth--;
30363 if (flags & NDR_OUT) {
30364 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
30365 ndr->depth++;
30366 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
30367 ndr->depth++;
30368 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
30369 ndr->depth++;
30370 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
30371 char *idx_1=NULL;
30372 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
30373 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
30374 free(idx_1);
30377 ndr->depth--;
30378 ndr->depth--;
30379 ndr_print_WERROR(ndr, "result", r->out.result);
30380 ndr->depth--;
30382 ndr->depth--;
30385 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
30387 if (flags & NDR_IN) {
30389 if (flags & NDR_OUT) {
30390 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30392 return NDR_ERR_SUCCESS;
30395 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
30397 if (flags & NDR_IN) {
30399 if (flags & NDR_OUT) {
30400 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30402 return NDR_ERR_SUCCESS;
30405 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
30407 ndr_print_struct(ndr, name, "spoolss_67");
30408 ndr->depth++;
30409 if (flags & NDR_SET_VALUES) {
30410 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30412 if (flags & NDR_IN) {
30413 ndr_print_struct(ndr, "in", "spoolss_67");
30414 ndr->depth++;
30415 ndr->depth--;
30417 if (flags & NDR_OUT) {
30418 ndr_print_struct(ndr, "out", "spoolss_67");
30419 ndr->depth++;
30420 ndr_print_WERROR(ndr, "result", r->out.result);
30421 ndr->depth--;
30423 ndr->depth--;
30426 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30428 if (flags & NDR_IN) {
30429 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30430 if (r->in.servername) {
30431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30436 if (r->in.architecture == NULL) {
30437 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30442 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
30444 if (r->in.language) {
30445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30446 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30447 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30448 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30450 if (r->in.package_id == NULL) {
30451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30456 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.package_id, ndr_charset_length(r->in.package_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
30458 if (r->in.driver_package_cab) {
30459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30464 if (flags & NDR_OUT) {
30465 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
30466 if (r->out.driver_package_cab) {
30467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30468 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30470 if (r->out.required == NULL) {
30471 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
30474 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30476 return NDR_ERR_SUCCESS;
30479 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
30481 uint32_t _ptr_servername;
30482 uint32_t _ptr_language;
30483 uint32_t _ptr_driver_package_cab;
30484 TALLOC_CTX *_mem_save_servername_0;
30485 TALLOC_CTX *_mem_save_language_0;
30486 TALLOC_CTX *_mem_save_driver_package_cab_0;
30487 TALLOC_CTX *_mem_save_required_0;
30488 if (flags & NDR_IN) {
30489 ZERO_STRUCT(r->out);
30491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30492 if (_ptr_servername) {
30493 NDR_PULL_ALLOC(ndr, r->in.servername);
30494 } else {
30495 r->in.servername = NULL;
30497 if (r->in.servername) {
30498 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30499 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30500 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30501 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30502 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30503 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
30505 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30509 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30510 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30511 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30512 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
30514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
30517 if (_ptr_language) {
30518 NDR_PULL_ALLOC(ndr, r->in.language);
30519 } else {
30520 r->in.language = NULL;
30522 if (r->in.language) {
30523 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
30524 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
30525 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
30526 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
30527 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
30528 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.language), ndr_get_array_length(ndr, &r->in.language));
30530 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
30531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
30532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
30534 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
30535 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
30536 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
30537 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.package_id), ndr_get_array_length(ndr, &r->in.package_id));
30539 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
30540 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t), CH_UTF16));
30541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30542 if (_ptr_driver_package_cab) {
30543 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
30544 } else {
30545 r->in.driver_package_cab = NULL;
30547 if (r->in.driver_package_cab) {
30548 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30549 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
30550 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
30551 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, ndr_get_array_size(ndr, &r->in.driver_package_cab), sizeof(uint16_t), CH_UTF16));
30552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
30555 NDR_PULL_ALLOC(ndr, r->out.required);
30556 ZERO_STRUCTP(r->out.required);
30557 if (r->in.driver_package_cab) {
30558 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
30561 if (flags & NDR_OUT) {
30562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30563 if (_ptr_driver_package_cab) {
30564 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
30565 } else {
30566 r->out.driver_package_cab = NULL;
30568 if (r->out.driver_package_cab) {
30569 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30570 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
30571 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
30572 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, ndr_get_array_size(ndr, &r->out.driver_package_cab), sizeof(uint16_t), CH_UTF16));
30573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30575 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30576 NDR_PULL_ALLOC(ndr, r->out.required);
30578 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
30579 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
30580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
30581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
30582 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30583 if (r->out.driver_package_cab) {
30584 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
30587 return NDR_ERR_SUCCESS;
30590 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30592 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
30593 ndr->depth++;
30594 if (flags & NDR_SET_VALUES) {
30595 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30597 if (flags & NDR_IN) {
30598 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
30599 ndr->depth++;
30600 ndr_print_ptr(ndr, "servername", r->in.servername);
30601 ndr->depth++;
30602 if (r->in.servername) {
30603 ndr_print_string(ndr, "servername", r->in.servername);
30605 ndr->depth--;
30606 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30607 ndr->depth++;
30608 ndr_print_string(ndr, "architecture", r->in.architecture);
30609 ndr->depth--;
30610 ndr_print_ptr(ndr, "language", r->in.language);
30611 ndr->depth++;
30612 if (r->in.language) {
30613 ndr_print_string(ndr, "language", r->in.language);
30615 ndr->depth--;
30616 ndr_print_ptr(ndr, "package_id", r->in.package_id);
30617 ndr->depth++;
30618 ndr_print_string(ndr, "package_id", r->in.package_id);
30619 ndr->depth--;
30620 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
30621 ndr->depth++;
30622 if (r->in.driver_package_cab) {
30623 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
30625 ndr->depth--;
30626 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
30627 ndr->depth--;
30629 if (flags & NDR_OUT) {
30630 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
30631 ndr->depth++;
30632 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
30633 ndr->depth++;
30634 if (r->out.driver_package_cab) {
30635 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
30637 ndr->depth--;
30638 ndr_print_ptr(ndr, "required", r->out.required);
30639 ndr->depth++;
30640 ndr_print_uint32(ndr, "required", *r->out.required);
30641 ndr->depth--;
30642 ndr_print_WERROR(ndr, "result", r->out.result);
30643 ndr->depth--;
30645 ndr->depth--;
30648 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
30650 if (flags & NDR_IN) {
30652 if (flags & NDR_OUT) {
30653 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30655 return NDR_ERR_SUCCESS;
30658 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
30660 if (flags & NDR_IN) {
30662 if (flags & NDR_OUT) {
30663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30665 return NDR_ERR_SUCCESS;
30668 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
30670 ndr_print_struct(ndr, name, "spoolss_69");
30671 ndr->depth++;
30672 if (flags & NDR_SET_VALUES) {
30673 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30675 if (flags & NDR_IN) {
30676 ndr_print_struct(ndr, "in", "spoolss_69");
30677 ndr->depth++;
30678 ndr->depth--;
30680 if (flags & NDR_OUT) {
30681 ndr_print_struct(ndr, "out", "spoolss_69");
30682 ndr->depth++;
30683 ndr_print_WERROR(ndr, "result", r->out.result);
30684 ndr->depth--;
30686 ndr->depth--;
30689 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
30691 if (flags & NDR_IN) {
30693 if (flags & NDR_OUT) {
30694 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30696 return NDR_ERR_SUCCESS;
30699 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
30701 if (flags & NDR_IN) {
30703 if (flags & NDR_OUT) {
30704 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30706 return NDR_ERR_SUCCESS;
30709 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30711 ndr_print_struct(ndr, name, "spoolss_6a");
30712 ndr->depth++;
30713 if (flags & NDR_SET_VALUES) {
30714 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30716 if (flags & NDR_IN) {
30717 ndr_print_struct(ndr, "in", "spoolss_6a");
30718 ndr->depth++;
30719 ndr->depth--;
30721 if (flags & NDR_OUT) {
30722 ndr_print_struct(ndr, "out", "spoolss_6a");
30723 ndr->depth++;
30724 ndr_print_WERROR(ndr, "result", r->out.result);
30725 ndr->depth--;
30727 ndr->depth--;
30730 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30732 if (flags & NDR_IN) {
30734 if (flags & NDR_OUT) {
30735 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30737 return NDR_ERR_SUCCESS;
30740 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30742 if (flags & NDR_IN) {
30744 if (flags & NDR_OUT) {
30745 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30747 return NDR_ERR_SUCCESS;
30750 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30752 ndr_print_struct(ndr, name, "spoolss_6b");
30753 ndr->depth++;
30754 if (flags & NDR_SET_VALUES) {
30755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30757 if (flags & NDR_IN) {
30758 ndr_print_struct(ndr, "in", "spoolss_6b");
30759 ndr->depth++;
30760 ndr->depth--;
30762 if (flags & NDR_OUT) {
30763 ndr_print_struct(ndr, "out", "spoolss_6b");
30764 ndr->depth++;
30765 ndr_print_WERROR(ndr, "result", r->out.result);
30766 ndr->depth--;
30768 ndr->depth--;
30771 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30773 if (flags & NDR_IN) {
30775 if (flags & NDR_OUT) {
30776 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30778 return NDR_ERR_SUCCESS;
30781 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30783 if (flags & NDR_IN) {
30785 if (flags & NDR_OUT) {
30786 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30788 return NDR_ERR_SUCCESS;
30791 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30793 ndr_print_struct(ndr, name, "spoolss_6c");
30794 ndr->depth++;
30795 if (flags & NDR_SET_VALUES) {
30796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30798 if (flags & NDR_IN) {
30799 ndr_print_struct(ndr, "in", "spoolss_6c");
30800 ndr->depth++;
30801 ndr->depth--;
30803 if (flags & NDR_OUT) {
30804 ndr_print_struct(ndr, "out", "spoolss_6c");
30805 ndr->depth++;
30806 ndr_print_WERROR(ndr, "result", r->out.result);
30807 ndr->depth--;
30809 ndr->depth--;
30812 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30814 if (flags & NDR_IN) {
30816 if (flags & NDR_OUT) {
30817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30819 return NDR_ERR_SUCCESS;
30822 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30824 if (flags & NDR_IN) {
30826 if (flags & NDR_OUT) {
30827 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30829 return NDR_ERR_SUCCESS;
30832 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30834 ndr_print_struct(ndr, name, "spoolss_6d");
30835 ndr->depth++;
30836 if (flags & NDR_SET_VALUES) {
30837 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30839 if (flags & NDR_IN) {
30840 ndr_print_struct(ndr, "in", "spoolss_6d");
30841 ndr->depth++;
30842 ndr->depth--;
30844 if (flags & NDR_OUT) {
30845 ndr_print_struct(ndr, "out", "spoolss_6d");
30846 ndr->depth++;
30847 ndr_print_WERROR(ndr, "result", r->out.result);
30848 ndr->depth--;
30850 ndr->depth--;
30853 static const struct ndr_interface_call spoolss_calls[] = {
30855 "spoolss_EnumPrinters",
30856 sizeof(struct spoolss_EnumPrinters),
30857 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30858 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30859 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30860 false,
30863 "spoolss_OpenPrinter",
30864 sizeof(struct spoolss_OpenPrinter),
30865 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30866 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30867 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30868 false,
30871 "spoolss_SetJob",
30872 sizeof(struct spoolss_SetJob),
30873 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30874 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30875 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30876 false,
30879 "spoolss_GetJob",
30880 sizeof(struct spoolss_GetJob),
30881 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30882 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30883 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30884 false,
30887 "spoolss_EnumJobs",
30888 sizeof(struct spoolss_EnumJobs),
30889 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30890 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30891 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30892 false,
30895 "spoolss_AddPrinter",
30896 sizeof(struct spoolss_AddPrinter),
30897 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30898 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30899 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30900 false,
30903 "spoolss_DeletePrinter",
30904 sizeof(struct spoolss_DeletePrinter),
30905 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30906 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30907 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30908 false,
30911 "spoolss_SetPrinter",
30912 sizeof(struct spoolss_SetPrinter),
30913 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30914 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30915 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30916 false,
30919 "spoolss_GetPrinter",
30920 sizeof(struct spoolss_GetPrinter),
30921 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30922 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30923 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30924 false,
30927 "spoolss_AddPrinterDriver",
30928 sizeof(struct spoolss_AddPrinterDriver),
30929 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30930 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30931 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30932 false,
30935 "spoolss_EnumPrinterDrivers",
30936 sizeof(struct spoolss_EnumPrinterDrivers),
30937 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30938 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30939 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30940 false,
30943 "spoolss_GetPrinterDriver",
30944 sizeof(struct spoolss_GetPrinterDriver),
30945 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30946 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30947 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30948 false,
30951 "spoolss_GetPrinterDriverDirectory",
30952 sizeof(struct spoolss_GetPrinterDriverDirectory),
30953 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30954 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30955 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30956 false,
30959 "spoolss_DeletePrinterDriver",
30960 sizeof(struct spoolss_DeletePrinterDriver),
30961 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30962 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30963 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30964 false,
30967 "spoolss_AddPrintProcessor",
30968 sizeof(struct spoolss_AddPrintProcessor),
30969 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30970 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30971 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30972 false,
30975 "spoolss_EnumPrintProcessors",
30976 sizeof(struct spoolss_EnumPrintProcessors),
30977 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30978 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30979 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30980 false,
30983 "spoolss_GetPrintProcessorDirectory",
30984 sizeof(struct spoolss_GetPrintProcessorDirectory),
30985 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30986 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30987 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30988 false,
30991 "spoolss_StartDocPrinter",
30992 sizeof(struct spoolss_StartDocPrinter),
30993 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30994 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30995 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30996 false,
30999 "spoolss_StartPagePrinter",
31000 sizeof(struct spoolss_StartPagePrinter),
31001 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
31002 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
31003 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
31004 false,
31007 "spoolss_WritePrinter",
31008 sizeof(struct spoolss_WritePrinter),
31009 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
31010 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
31011 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
31012 false,
31015 "spoolss_EndPagePrinter",
31016 sizeof(struct spoolss_EndPagePrinter),
31017 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
31018 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
31019 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
31020 false,
31023 "spoolss_AbortPrinter",
31024 sizeof(struct spoolss_AbortPrinter),
31025 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
31026 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
31027 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
31028 false,
31031 "spoolss_ReadPrinter",
31032 sizeof(struct spoolss_ReadPrinter),
31033 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
31034 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
31035 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
31036 false,
31039 "spoolss_EndDocPrinter",
31040 sizeof(struct spoolss_EndDocPrinter),
31041 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
31042 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
31043 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
31044 false,
31047 "spoolss_AddJob",
31048 sizeof(struct spoolss_AddJob),
31049 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
31050 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
31051 (ndr_print_function_t) ndr_print_spoolss_AddJob,
31052 false,
31055 "spoolss_ScheduleJob",
31056 sizeof(struct spoolss_ScheduleJob),
31057 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
31058 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
31059 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
31060 false,
31063 "spoolss_GetPrinterData",
31064 sizeof(struct spoolss_GetPrinterData),
31065 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
31066 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
31067 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
31068 false,
31071 "spoolss_SetPrinterData",
31072 sizeof(struct spoolss_SetPrinterData),
31073 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
31074 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
31075 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
31076 false,
31079 "spoolss_WaitForPrinterChange",
31080 sizeof(struct spoolss_WaitForPrinterChange),
31081 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
31082 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
31083 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
31084 false,
31087 "spoolss_ClosePrinter",
31088 sizeof(struct spoolss_ClosePrinter),
31089 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
31090 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
31091 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
31092 false,
31095 "spoolss_AddForm",
31096 sizeof(struct spoolss_AddForm),
31097 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
31098 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
31099 (ndr_print_function_t) ndr_print_spoolss_AddForm,
31100 false,
31103 "spoolss_DeleteForm",
31104 sizeof(struct spoolss_DeleteForm),
31105 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
31106 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
31107 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
31108 false,
31111 "spoolss_GetForm",
31112 sizeof(struct spoolss_GetForm),
31113 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
31114 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
31115 (ndr_print_function_t) ndr_print_spoolss_GetForm,
31116 false,
31119 "spoolss_SetForm",
31120 sizeof(struct spoolss_SetForm),
31121 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
31122 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
31123 (ndr_print_function_t) ndr_print_spoolss_SetForm,
31124 false,
31127 "spoolss_EnumForms",
31128 sizeof(struct spoolss_EnumForms),
31129 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
31130 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
31131 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
31132 false,
31135 "spoolss_EnumPorts",
31136 sizeof(struct spoolss_EnumPorts),
31137 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
31138 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
31139 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
31140 false,
31143 "spoolss_EnumMonitors",
31144 sizeof(struct spoolss_EnumMonitors),
31145 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
31146 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
31147 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
31148 false,
31151 "spoolss_AddPort",
31152 sizeof(struct spoolss_AddPort),
31153 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
31154 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
31155 (ndr_print_function_t) ndr_print_spoolss_AddPort,
31156 false,
31159 "spoolss_ConfigurePort",
31160 sizeof(struct spoolss_ConfigurePort),
31161 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
31162 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
31163 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
31164 false,
31167 "spoolss_DeletePort",
31168 sizeof(struct spoolss_DeletePort),
31169 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
31170 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
31171 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
31172 false,
31175 "spoolss_CreatePrinterIC",
31176 sizeof(struct spoolss_CreatePrinterIC),
31177 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
31178 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
31179 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
31180 false,
31183 "spoolss_PlayGDIScriptOnPrinterIC",
31184 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
31185 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
31186 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
31187 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
31188 false,
31191 "spoolss_DeletePrinterIC",
31192 sizeof(struct spoolss_DeletePrinterIC),
31193 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
31194 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
31195 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
31196 false,
31199 "spoolss_AddPrinterConnection",
31200 sizeof(struct spoolss_AddPrinterConnection),
31201 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
31202 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
31203 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
31204 false,
31207 "spoolss_DeletePrinterConnection",
31208 sizeof(struct spoolss_DeletePrinterConnection),
31209 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
31210 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
31211 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
31212 false,
31215 "spoolss_PrinterMessageBox",
31216 sizeof(struct spoolss_PrinterMessageBox),
31217 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
31218 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
31219 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
31220 false,
31223 "spoolss_AddMonitor",
31224 sizeof(struct spoolss_AddMonitor),
31225 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
31226 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
31227 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
31228 false,
31231 "spoolss_DeleteMonitor",
31232 sizeof(struct spoolss_DeleteMonitor),
31233 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
31234 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
31235 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
31236 false,
31239 "spoolss_DeletePrintProcessor",
31240 sizeof(struct spoolss_DeletePrintProcessor),
31241 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
31242 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
31243 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
31244 false,
31247 "spoolss_AddPrintProvidor",
31248 sizeof(struct spoolss_AddPrintProvidor),
31249 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
31250 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
31251 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
31252 false,
31255 "spoolss_DeletePrintProvidor",
31256 sizeof(struct spoolss_DeletePrintProvidor),
31257 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
31258 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
31259 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
31260 false,
31263 "spoolss_EnumPrintProcDataTypes",
31264 sizeof(struct spoolss_EnumPrintProcDataTypes),
31265 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
31266 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
31267 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
31268 false,
31271 "spoolss_ResetPrinter",
31272 sizeof(struct spoolss_ResetPrinter),
31273 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
31274 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
31275 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
31276 false,
31279 "spoolss_GetPrinterDriver2",
31280 sizeof(struct spoolss_GetPrinterDriver2),
31281 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
31282 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
31283 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
31284 false,
31287 "spoolss_FindFirstPrinterChangeNotification",
31288 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
31289 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
31290 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
31291 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
31292 false,
31295 "spoolss_FindNextPrinterChangeNotification",
31296 sizeof(struct spoolss_FindNextPrinterChangeNotification),
31297 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
31298 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
31299 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
31300 false,
31303 "spoolss_FindClosePrinterNotify",
31304 sizeof(struct spoolss_FindClosePrinterNotify),
31305 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
31306 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
31307 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
31308 false,
31311 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31312 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
31313 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31314 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31315 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31316 false,
31319 "spoolss_ReplyOpenPrinter",
31320 sizeof(struct spoolss_ReplyOpenPrinter),
31321 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
31322 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
31323 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
31324 false,
31327 "spoolss_RouterReplyPrinter",
31328 sizeof(struct spoolss_RouterReplyPrinter),
31329 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
31330 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
31331 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
31332 false,
31335 "spoolss_ReplyClosePrinter",
31336 sizeof(struct spoolss_ReplyClosePrinter),
31337 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
31338 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
31339 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
31340 false,
31343 "spoolss_AddPortEx",
31344 sizeof(struct spoolss_AddPortEx),
31345 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
31346 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
31347 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
31348 false,
31351 "spoolss_RouterFindFirstPrinterChangeNotification",
31352 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
31353 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
31354 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
31355 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
31356 false,
31359 "spoolss_SpoolerInit",
31360 sizeof(struct spoolss_SpoolerInit),
31361 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
31362 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
31363 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
31364 false,
31367 "spoolss_ResetPrinterEx",
31368 sizeof(struct spoolss_ResetPrinterEx),
31369 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
31370 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
31371 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
31372 false,
31375 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31376 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
31377 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31378 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31379 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31380 false,
31383 "spoolss_RouterReplyPrinterEx",
31384 sizeof(struct spoolss_RouterReplyPrinterEx),
31385 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
31386 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
31387 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
31388 false,
31391 "spoolss_RouterRefreshPrinterChangeNotify",
31392 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
31393 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
31394 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
31395 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
31396 false,
31399 "spoolss_44",
31400 sizeof(struct spoolss_44),
31401 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
31402 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
31403 (ndr_print_function_t) ndr_print_spoolss_44,
31404 false,
31407 "spoolss_OpenPrinterEx",
31408 sizeof(struct spoolss_OpenPrinterEx),
31409 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
31410 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
31411 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
31412 false,
31415 "spoolss_AddPrinterEx",
31416 sizeof(struct spoolss_AddPrinterEx),
31417 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
31418 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
31419 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
31420 false,
31423 "spoolss_47",
31424 sizeof(struct spoolss_47),
31425 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
31426 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
31427 (ndr_print_function_t) ndr_print_spoolss_47,
31428 false,
31431 "spoolss_EnumPrinterData",
31432 sizeof(struct spoolss_EnumPrinterData),
31433 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
31434 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
31435 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
31436 false,
31439 "spoolss_DeletePrinterData",
31440 sizeof(struct spoolss_DeletePrinterData),
31441 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
31442 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
31443 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
31444 false,
31447 "spoolss_4a",
31448 sizeof(struct spoolss_4a),
31449 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
31450 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
31451 (ndr_print_function_t) ndr_print_spoolss_4a,
31452 false,
31455 "spoolss_4b",
31456 sizeof(struct spoolss_4b),
31457 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
31458 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
31459 (ndr_print_function_t) ndr_print_spoolss_4b,
31460 false,
31463 "spoolss_4c",
31464 sizeof(struct spoolss_4c),
31465 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
31466 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
31467 (ndr_print_function_t) ndr_print_spoolss_4c,
31468 false,
31471 "spoolss_SetPrinterDataEx",
31472 sizeof(struct spoolss_SetPrinterDataEx),
31473 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
31474 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
31475 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
31476 false,
31479 "spoolss_GetPrinterDataEx",
31480 sizeof(struct spoolss_GetPrinterDataEx),
31481 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
31482 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
31483 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
31484 false,
31487 "spoolss_EnumPrinterDataEx",
31488 sizeof(struct spoolss_EnumPrinterDataEx),
31489 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
31490 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
31491 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
31492 false,
31495 "spoolss_EnumPrinterKey",
31496 sizeof(struct spoolss_EnumPrinterKey),
31497 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
31498 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
31499 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
31500 false,
31503 "spoolss_DeletePrinterDataEx",
31504 sizeof(struct spoolss_DeletePrinterDataEx),
31505 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
31506 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
31507 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
31508 false,
31511 "spoolss_DeletePrinterKey",
31512 sizeof(struct spoolss_DeletePrinterKey),
31513 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
31514 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
31515 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
31516 false,
31519 "spoolss_53",
31520 sizeof(struct spoolss_53),
31521 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
31522 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
31523 (ndr_print_function_t) ndr_print_spoolss_53,
31524 false,
31527 "spoolss_DeletePrinterDriverEx",
31528 sizeof(struct spoolss_DeletePrinterDriverEx),
31529 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
31530 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
31531 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
31532 false,
31535 "spoolss_55",
31536 sizeof(struct spoolss_55),
31537 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
31538 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
31539 (ndr_print_function_t) ndr_print_spoolss_55,
31540 false,
31543 "spoolss_56",
31544 sizeof(struct spoolss_56),
31545 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
31546 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
31547 (ndr_print_function_t) ndr_print_spoolss_56,
31548 false,
31551 "spoolss_57",
31552 sizeof(struct spoolss_57),
31553 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
31554 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
31555 (ndr_print_function_t) ndr_print_spoolss_57,
31556 false,
31559 "spoolss_XcvData",
31560 sizeof(struct spoolss_XcvData),
31561 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
31562 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
31563 (ndr_print_function_t) ndr_print_spoolss_XcvData,
31564 false,
31567 "spoolss_AddPrinterDriverEx",
31568 sizeof(struct spoolss_AddPrinterDriverEx),
31569 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
31570 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
31571 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
31572 false,
31575 "spoolss_5a",
31576 sizeof(struct spoolss_5a),
31577 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
31578 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
31579 (ndr_print_function_t) ndr_print_spoolss_5a,
31580 false,
31583 "spoolss_5b",
31584 sizeof(struct spoolss_5b),
31585 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
31586 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
31587 (ndr_print_function_t) ndr_print_spoolss_5b,
31588 false,
31591 "spoolss_5c",
31592 sizeof(struct spoolss_5c),
31593 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
31594 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
31595 (ndr_print_function_t) ndr_print_spoolss_5c,
31596 false,
31599 "spoolss_5d",
31600 sizeof(struct spoolss_5d),
31601 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
31602 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
31603 (ndr_print_function_t) ndr_print_spoolss_5d,
31604 false,
31607 "spoolss_5e",
31608 sizeof(struct spoolss_5e),
31609 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
31610 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
31611 (ndr_print_function_t) ndr_print_spoolss_5e,
31612 false,
31615 "spoolss_5f",
31616 sizeof(struct spoolss_5f),
31617 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
31618 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
31619 (ndr_print_function_t) ndr_print_spoolss_5f,
31620 false,
31623 "spoolss_60",
31624 sizeof(struct spoolss_60),
31625 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
31626 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
31627 (ndr_print_function_t) ndr_print_spoolss_60,
31628 false,
31631 "spoolss_61",
31632 sizeof(struct spoolss_61),
31633 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
31634 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
31635 (ndr_print_function_t) ndr_print_spoolss_61,
31636 false,
31639 "spoolss_62",
31640 sizeof(struct spoolss_62),
31641 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
31642 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
31643 (ndr_print_function_t) ndr_print_spoolss_62,
31644 false,
31647 "spoolss_63",
31648 sizeof(struct spoolss_63),
31649 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
31650 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
31651 (ndr_print_function_t) ndr_print_spoolss_63,
31652 false,
31655 "spoolss_64",
31656 sizeof(struct spoolss_64),
31657 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
31658 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
31659 (ndr_print_function_t) ndr_print_spoolss_64,
31660 false,
31663 "spoolss_65",
31664 sizeof(struct spoolss_65),
31665 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
31666 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
31667 (ndr_print_function_t) ndr_print_spoolss_65,
31668 false,
31671 "spoolss_GetCorePrinterDrivers",
31672 sizeof(struct spoolss_GetCorePrinterDrivers),
31673 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
31674 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
31675 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
31676 false,
31679 "spoolss_67",
31680 sizeof(struct spoolss_67),
31681 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
31682 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
31683 (ndr_print_function_t) ndr_print_spoolss_67,
31684 false,
31687 "spoolss_GetPrinterDriverPackagePath",
31688 sizeof(struct spoolss_GetPrinterDriverPackagePath),
31689 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
31690 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
31691 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
31692 false,
31695 "spoolss_69",
31696 sizeof(struct spoolss_69),
31697 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
31698 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
31699 (ndr_print_function_t) ndr_print_spoolss_69,
31700 false,
31703 "spoolss_6a",
31704 sizeof(struct spoolss_6a),
31705 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
31706 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
31707 (ndr_print_function_t) ndr_print_spoolss_6a,
31708 false,
31711 "spoolss_6b",
31712 sizeof(struct spoolss_6b),
31713 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31714 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31715 (ndr_print_function_t) ndr_print_spoolss_6b,
31716 false,
31719 "spoolss_6c",
31720 sizeof(struct spoolss_6c),
31721 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31722 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31723 (ndr_print_function_t) ndr_print_spoolss_6c,
31724 false,
31727 "spoolss_6d",
31728 sizeof(struct spoolss_6d),
31729 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31730 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31731 (ndr_print_function_t) ndr_print_spoolss_6d,
31732 false,
31734 { NULL, 0, NULL, NULL, NULL, false }
31737 static const char * const spoolss_endpoint_strings[] = {
31738 "ncacn_np:[\\pipe\\spoolss]",
31741 static const struct ndr_interface_string_array spoolss_endpoints = {
31742 .count = 1,
31743 .names = spoolss_endpoint_strings
31746 static const char * const spoolss_authservice_strings[] = {
31747 "host",
31750 static const struct ndr_interface_string_array spoolss_authservices = {
31751 .count = 1,
31752 .names = spoolss_authservice_strings
31756 const struct ndr_interface_table ndr_table_spoolss = {
31757 .name = "spoolss",
31758 .syntax_id = {
31759 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31760 NDR_SPOOLSS_VERSION
31762 .helpstring = NDR_SPOOLSS_HELPSTRING,
31763 .num_calls = 110,
31764 .calls = spoolss_calls,
31765 .endpoints = &spoolss_endpoints,
31766 .authservices = &spoolss_authservices