1 /* parser auto-generated by pidl */
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));
22 if (ndr_flags & NDR_BUFFERS) {
24 return NDR_ERR_SUCCESS;
27 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 if (ndr_flags & NDR_BUFFERS) {
42 return NDR_ERR_SUCCESS;
45 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
47 ndr_print_struct(ndr, name, "spoolss_Time");
49 ndr_print_uint16(ndr, "year", r->year);
50 ndr_print_uint16(ndr, "month", r->month);
51 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
52 ndr_print_uint16(ndr, "day", r->day);
53 ndr_print_uint16(ndr, "hour", r->hour);
54 ndr_print_uint16(ndr, "minute", r->minute);
55 ndr_print_uint16(ndr, "second", r->second);
56 ndr_print_uint16(ndr, "millisecond", r->millisecond);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
62 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
65 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
72 if (ndr_flags & NDR_BUFFERS) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
77 return NDR_ERR_SUCCESS;
80 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
83 TALLOC_CTX *_mem_save_time_0;
84 if (ndr_flags & NDR_SCALARS) {
85 NDR_CHECK(ndr_pull_align(ndr, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
89 NDR_PULL_ALLOC(ndr, r->time);
94 if (ndr_flags & NDR_BUFFERS) {
96 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
97 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
102 return NDR_ERR_SUCCESS;
105 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
107 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
110 ndr_print_ptr(ndr, "time", r->time);
113 ndr_print_spoolss_Time(ndr, "time", r->time);
119 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
122 return NDR_ERR_SUCCESS;
125 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
130 return NDR_ERR_SUCCESS;
133 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
135 const char *val = NULL;
138 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr, name, "ENUM", val, r);
145 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
148 return NDR_ERR_SUCCESS;
151 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
156 return NDR_ERR_SUCCESS;
159 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
161 const char *val = NULL;
164 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr, name, "ENUM", val, r);
173 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
176 return NDR_ERR_SUCCESS;
179 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
184 return NDR_ERR_SUCCESS;
187 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
189 const char *val = NULL;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr, name, "ENUM", val, r);
199 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
202 return NDR_ERR_SUCCESS;
205 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
210 return NDR_ERR_SUCCESS;
213 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
215 const char *val = NULL;
218 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr, name, "ENUM", val, r);
227 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
230 return NDR_ERR_SUCCESS;
233 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
238 return NDR_ERR_SUCCESS;
241 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
243 ndr_print_uint32(ndr, name, r);
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
273 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
276 return NDR_ERR_SUCCESS;
279 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
284 return NDR_ERR_SUCCESS;
287 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
289 ndr_print_uint32(ndr, name, r);
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
309 if (ndr_flags & NDR_SCALARS) {
310 NDR_CHECK(ndr_push_align(ndr, 4));
312 uint32_t _flags_save_string = ndr->flags;
313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
315 ndr->flags = _flags_save_string;
318 uint32_t _flags_save_string = ndr->flags;
319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
321 ndr->flags = _flags_save_string;
323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
346 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
351 if (ndr_flags & NDR_BUFFERS) {
353 uint32_t _flags_save_string = ndr->flags;
354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
355 if (r->printername) {
356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
359 ndr->flags = _flags_save_string;
362 uint32_t _flags_save_string = ndr->flags;
363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
368 ndr->flags = _flags_save_string;
371 return NDR_ERR_SUCCESS;
374 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
376 uint32_t _ptr_printername;
377 TALLOC_CTX *_mem_save_printername_0;
378 uint32_t _ptr_servername;
379 TALLOC_CTX *_mem_save_servername_0;
380 if (ndr_flags & NDR_SCALARS) {
381 NDR_CHECK(ndr_pull_align(ndr, 4));
383 uint32_t _flags_save_string = ndr->flags;
384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
386 if (_ptr_printername) {
387 NDR_PULL_ALLOC(ndr, r->printername);
388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
390 r->printername = NULL;
392 ndr->flags = _flags_save_string;
395 uint32_t _flags_save_string = ndr->flags;
396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
398 if (_ptr_servername) {
399 NDR_PULL_ALLOC(ndr, r->servername);
400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
402 r->servername = NULL;
404 ndr->flags = _flags_save_string;
406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
409 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
419 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
421 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
425 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
429 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
434 if (ndr_flags & NDR_BUFFERS) {
436 uint32_t _flags_save_string = ndr->flags;
437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
438 if (r->printername) {
439 uint32_t _relative_save_offset;
440 _relative_save_offset = ndr->offset;
441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
442 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
443 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
446 ndr->offset = _relative_save_offset;
448 ndr->flags = _flags_save_string;
451 uint32_t _flags_save_string = ndr->flags;
452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
454 uint32_t _relative_save_offset;
455 _relative_save_offset = ndr->offset;
456 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
457 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
458 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
459 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
461 ndr->offset = _relative_save_offset;
463 ndr->flags = _flags_save_string;
466 return NDR_ERR_SUCCESS;
469 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
471 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
473 ndr_print_ptr(ndr, "printername", r->printername);
475 if (r->printername) {
476 ndr_print_string(ndr, "printername", r->printername);
479 ndr_print_ptr(ndr, "servername", r->servername);
482 ndr_print_string(ndr, "servername", r->servername);
485 ndr_print_uint32(ndr, "cjobs", r->cjobs);
486 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
487 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
488 ndr_print_spoolss_Time(ndr, "time", &r->time);
489 ndr_print_uint32(ndr, "global_counter", r->global_counter);
490 ndr_print_uint32(ndr, "total_pages", r->total_pages);
491 ndr_print_uint32(ndr, "version", r->version);
492 ndr_print_uint32(ndr, "free_build", r->free_build);
493 ndr_print_uint32(ndr, "spooling", r->spooling);
494 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
495 ndr_print_uint32(ndr, "session_counter", r->session_counter);
496 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
497 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
498 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
499 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
500 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
501 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
502 ndr_print_uint32(ndr, "change_id", r->change_id);
503 ndr_print_WERROR(ndr, "last_error", r->last_error);
504 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
505 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
506 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
507 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
508 ndr_print_uint16(ndr, "processor_level", r->processor_level);
509 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
510 ndr_print_uint32(ndr, "reserved2", r->reserved2);
511 ndr_print_uint32(ndr, "reserved3", r->reserved3);
515 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
517 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
520 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
523 return NDR_ERR_SUCCESS;
526 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
531 return NDR_ERR_SUCCESS;
534 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
536 ndr_print_uint32(ndr, name, r);
538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
569 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
571 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
572 return NDR_ERR_SUCCESS;
575 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
578 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
580 return NDR_ERR_SUCCESS;
583 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
585 const char *val = NULL;
588 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
589 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
590 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
592 ndr_print_enum(ndr, name, "ENUM", val, r);
595 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
597 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
598 return NDR_ERR_SUCCESS;
601 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
604 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
606 return NDR_ERR_SUCCESS;
609 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
611 const char *val = NULL;
614 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
615 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
617 ndr_print_enum(ndr, name, "ENUM", val, r);
620 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
622 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
623 return NDR_ERR_SUCCESS;
626 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
629 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
631 return NDR_ERR_SUCCESS;
634 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
636 const char *val = NULL;
639 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
640 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
641 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
642 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
643 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
644 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
645 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
646 case DMPAPER_A3: val = "DMPAPER_A3"; break;
647 case DMPAPER_A4: val = "DMPAPER_A4"; break;
648 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
649 case DMPAPER_A5: val = "DMPAPER_A5"; break;
650 case DMPAPER_B4: val = "DMPAPER_B4"; break;
651 case DMPAPER_B5: val = "DMPAPER_B5"; break;
652 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
653 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
654 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
655 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
656 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
657 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
658 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
659 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
660 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
661 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
662 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
663 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
664 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
665 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
666 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
667 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
668 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
669 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
670 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
671 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
672 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
673 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
674 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
675 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
676 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
677 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
678 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
679 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
680 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
681 case DMPAPER_A6: val = "DMPAPER_A6"; break;
682 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
683 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
684 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
685 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
686 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
687 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
688 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
689 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
690 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
691 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
692 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
693 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
694 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
695 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
696 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
697 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
698 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
699 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
700 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
701 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
702 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
703 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
704 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
705 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
706 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
707 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
708 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
709 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
710 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
711 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
712 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
713 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
714 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
715 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
716 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
717 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
718 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
719 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
720 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
721 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
722 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
723 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
724 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
725 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
726 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
727 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
728 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
729 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
731 ndr_print_enum(ndr, name, "ENUM", val, r);
734 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
736 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
737 return NDR_ERR_SUCCESS;
740 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
743 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
745 return NDR_ERR_SUCCESS;
748 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
750 const char *val = NULL;
753 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
754 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
755 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
756 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
757 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
758 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
759 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
760 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
761 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
762 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
763 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
764 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
765 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
767 ndr_print_enum(ndr, name, "ENUM", val, r);
770 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
772 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
773 return NDR_ERR_SUCCESS;
776 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
779 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
781 return NDR_ERR_SUCCESS;
784 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
786 const char *val = NULL;
789 case DMRES_HIGH: val = "DMRES_HIGH"; break;
790 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
791 case DMRES_LOW: val = "DMRES_LOW"; break;
792 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
794 ndr_print_enum(ndr, name, "ENUM", val, r);
797 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
799 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
800 return NDR_ERR_SUCCESS;
803 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
806 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
808 return NDR_ERR_SUCCESS;
811 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
813 const char *val = NULL;
816 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
817 case DMRES_COLOR: val = "DMRES_COLOR"; break;
819 ndr_print_enum(ndr, name, "ENUM", val, r);
822 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
824 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
825 return NDR_ERR_SUCCESS;
828 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
831 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
833 return NDR_ERR_SUCCESS;
836 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
838 const char *val = NULL;
841 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
842 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
843 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
845 ndr_print_enum(ndr, name, "ENUM", val, r);
848 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
850 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
851 return NDR_ERR_SUCCESS;
854 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
857 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
859 return NDR_ERR_SUCCESS;
862 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
864 const char *val = NULL;
867 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
868 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
869 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
870 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
872 ndr_print_enum(ndr, name, "ENUM", val, r);
875 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
877 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
878 return NDR_ERR_SUCCESS;
881 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
884 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
886 return NDR_ERR_SUCCESS;
889 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
891 const char *val = NULL;
894 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
895 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
897 ndr_print_enum(ndr, name, "ENUM", val, r);
900 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
903 return NDR_ERR_SUCCESS;
906 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
911 return NDR_ERR_SUCCESS;
914 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
916 const char *val = NULL;
919 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
920 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
922 ndr_print_enum(ndr, name, "ENUM", val, r);
925 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
928 return NDR_ERR_SUCCESS;
931 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
936 return NDR_ERR_SUCCESS;
939 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
941 const char *val = NULL;
944 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
945 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
946 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
947 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
949 ndr_print_enum(ndr, name, "ENUM", val, r);
952 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
955 return NDR_ERR_SUCCESS;
958 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
963 return NDR_ERR_SUCCESS;
966 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
968 const char *val = NULL;
971 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
972 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
973 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
974 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
976 ndr_print_enum(ndr, name, "ENUM", val, r);
979 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
982 return NDR_ERR_SUCCESS;
985 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
990 return NDR_ERR_SUCCESS;
993 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
995 const char *val = NULL;
998 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
999 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1000 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1002 ndr_print_enum(ndr, name, "ENUM", val, r);
1005 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1008 return NDR_ERR_SUCCESS;
1011 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1016 return NDR_ERR_SUCCESS;
1019 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1021 const char *val = NULL;
1024 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1025 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1026 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1027 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1028 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1029 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1030 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1031 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1032 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1033 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1035 ndr_print_enum(ndr, name, "ENUM", val, r);
1038 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1040 if (ndr_flags & NDR_SCALARS) {
1041 NDR_CHECK(ndr_push_align(ndr, 4));
1042 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
1043 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1044 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1045 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1046 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1047 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1048 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1049 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1050 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1051 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1052 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1053 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1054 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1056 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1057 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1059 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1061 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
1062 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1070 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1077 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1080 struct ndr_push *_ndr_driverextra_data;
1081 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1082 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1083 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1085 ndr->flags = _flags_save_DATA_BLOB;
1088 if (ndr_flags & NDR_BUFFERS) {
1090 return NDR_ERR_SUCCESS;
1093 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1095 if (ndr_flags & NDR_SCALARS) {
1096 NDR_CHECK(ndr_pull_align(ndr, 4));
1097 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
1098 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1099 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1100 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1101 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1102 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1103 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1104 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1105 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1106 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1107 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1108 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1109 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1110 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1112 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1113 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1114 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1115 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1116 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
1117 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1120 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1121 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1123 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1126 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1132 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1135 struct ndr_pull *_ndr_driverextra_data;
1136 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1137 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1138 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1140 ndr->flags = _flags_save_DATA_BLOB;
1143 if (ndr_flags & NDR_BUFFERS) {
1145 return NDR_ERR_SUCCESS;
1148 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1150 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1152 ndr_print_string(ndr, "devicename", r->devicename);
1153 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1154 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1155 ndr_print_uint16(ndr, "size", r->size);
1156 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1157 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1158 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1159 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1160 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1161 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1162 ndr_print_uint16(ndr, "scale", r->scale);
1163 ndr_print_uint16(ndr, "copies", r->copies);
1164 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1165 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1166 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1167 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1168 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1169 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1170 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1171 ndr_print_string(ndr, "formname", r->formname);
1172 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1173 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1174 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1175 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1176 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1177 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1178 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1179 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1180 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1181 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1182 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1183 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1184 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1185 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1186 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1190 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1192 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1195 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1198 return NDR_ERR_SUCCESS;
1201 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1206 return NDR_ERR_SUCCESS;
1209 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1211 ndr_print_uint32(ndr, name, r);
1213 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1214 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1215 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1216 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1217 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1218 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1219 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1220 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1221 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1222 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1223 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1224 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1225 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1226 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1235 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1238 return NDR_ERR_SUCCESS;
1241 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1246 return NDR_ERR_SUCCESS;
1249 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1251 ndr_print_uint32(ndr, name, r);
1253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1272 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1274 if (ndr_flags & NDR_SCALARS) {
1275 NDR_CHECK(ndr_push_align(ndr, 4));
1276 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1278 uint32_t _flags_save_string = ndr->flags;
1279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1280 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1281 ndr->flags = _flags_save_string;
1284 uint32_t _flags_save_string = ndr->flags;
1285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1286 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1287 ndr->flags = _flags_save_string;
1290 uint32_t _flags_save_string = ndr->flags;
1291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1292 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1293 ndr->flags = _flags_save_string;
1296 if (ndr_flags & NDR_BUFFERS) {
1298 uint32_t _flags_save_string = ndr->flags;
1299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1300 if (r->description) {
1301 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
1302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1304 ndr->flags = _flags_save_string;
1307 uint32_t _flags_save_string = ndr->flags;
1308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
1311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1313 ndr->flags = _flags_save_string;
1316 uint32_t _flags_save_string = ndr->flags;
1317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1319 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1320 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1322 ndr->flags = _flags_save_string;
1325 return NDR_ERR_SUCCESS;
1328 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1330 uint32_t _ptr_description;
1331 TALLOC_CTX *_mem_save_description_0;
1333 TALLOC_CTX *_mem_save_name_0;
1334 uint32_t _ptr_comment;
1335 TALLOC_CTX *_mem_save_comment_0;
1336 if (ndr_flags & NDR_SCALARS) {
1337 NDR_CHECK(ndr_pull_align(ndr, 4));
1338 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1340 uint32_t _flags_save_string = ndr->flags;
1341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1343 if (_ptr_description) {
1344 NDR_PULL_ALLOC(ndr, r->description);
1345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1347 r->description = NULL;
1349 ndr->flags = _flags_save_string;
1352 uint32_t _flags_save_string = ndr->flags;
1353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1356 NDR_PULL_ALLOC(ndr, r->name);
1357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1361 ndr->flags = _flags_save_string;
1364 uint32_t _flags_save_string = ndr->flags;
1365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1368 NDR_PULL_ALLOC(ndr, r->comment);
1369 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1373 ndr->flags = _flags_save_string;
1376 if (ndr_flags & NDR_BUFFERS) {
1378 uint32_t _flags_save_string = ndr->flags;
1379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1380 if (r->description) {
1381 uint32_t _relative_save_offset;
1382 _relative_save_offset = ndr->offset;
1383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1384 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1385 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1388 ndr->offset = _relative_save_offset;
1390 ndr->flags = _flags_save_string;
1393 uint32_t _flags_save_string = ndr->flags;
1394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 uint32_t _relative_save_offset;
1397 _relative_save_offset = ndr->offset;
1398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1399 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1400 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1403 ndr->offset = _relative_save_offset;
1405 ndr->flags = _flags_save_string;
1408 uint32_t _flags_save_string = ndr->flags;
1409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1411 uint32_t _relative_save_offset;
1412 _relative_save_offset = ndr->offset;
1413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1414 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1415 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1418 ndr->offset = _relative_save_offset;
1420 ndr->flags = _flags_save_string;
1423 return NDR_ERR_SUCCESS;
1426 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1428 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1430 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1431 ndr_print_ptr(ndr, "description", r->description);
1433 if (r->description) {
1434 ndr_print_string(ndr, "description", r->description);
1437 ndr_print_ptr(ndr, "name", r->name);
1440 ndr_print_string(ndr, "name", r->name);
1443 ndr_print_ptr(ndr, "comment", r->comment);
1446 ndr_print_string(ndr, "comment", r->comment);
1452 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1454 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1457 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1459 if (ndr_flags & NDR_SCALARS) {
1460 NDR_CHECK(ndr_push_align(ndr, 4));
1462 uint32_t _flags_save_string = ndr->flags;
1463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1464 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1465 ndr->flags = _flags_save_string;
1468 uint32_t _flags_save_string = ndr->flags;
1469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1470 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1471 ndr->flags = _flags_save_string;
1474 uint32_t _flags_save_string = ndr->flags;
1475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1476 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1477 ndr->flags = _flags_save_string;
1480 uint32_t _flags_save_string = ndr->flags;
1481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1482 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1483 ndr->flags = _flags_save_string;
1486 uint32_t _flags_save_string = ndr->flags;
1487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1488 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1489 ndr->flags = _flags_save_string;
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->comment));
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->location));
1501 ndr->flags = _flags_save_string;
1503 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1505 uint32_t _flags_save_string = ndr->flags;
1506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1508 ndr->flags = _flags_save_string;
1511 uint32_t _flags_save_string = ndr->flags;
1512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1514 ndr->flags = _flags_save_string;
1517 uint32_t _flags_save_string = ndr->flags;
1518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1520 ndr->flags = _flags_save_string;
1523 uint32_t _flags_save_string = ndr->flags;
1524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1526 ndr->flags = _flags_save_string;
1528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1529 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1534 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1538 if (ndr_flags & NDR_BUFFERS) {
1540 uint32_t _flags_save_string = ndr->flags;
1541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1542 if (r->servername) {
1543 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1544 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1546 ndr->flags = _flags_save_string;
1549 uint32_t _flags_save_string = ndr->flags;
1550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1551 if (r->printername) {
1552 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1553 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1555 ndr->flags = _flags_save_string;
1558 uint32_t _flags_save_string = ndr->flags;
1559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1561 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1562 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1564 ndr->flags = _flags_save_string;
1567 uint32_t _flags_save_string = ndr->flags;
1568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1570 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1571 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1573 ndr->flags = _flags_save_string;
1576 uint32_t _flags_save_string = ndr->flags;
1577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1578 if (r->drivername) {
1579 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1580 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1582 ndr->flags = _flags_save_string;
1585 uint32_t _flags_save_string = ndr->flags;
1586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1588 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1589 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1591 ndr->flags = _flags_save_string;
1594 uint32_t _flags_save_string = ndr->flags;
1595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1597 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1598 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1600 ndr->flags = _flags_save_string;
1603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1605 struct ndr_push *_ndr_devmode;
1606 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1607 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1608 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1612 uint32_t _flags_save_string = ndr->flags;
1613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1615 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1616 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
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->printprocessor) {
1624 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1625 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1627 ndr->flags = _flags_save_string;
1630 uint32_t _flags_save_string = ndr->flags;
1631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1634 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1636 ndr->flags = _flags_save_string;
1639 uint32_t _flags_save_string = ndr->flags;
1640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1641 if (r->parameters) {
1642 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1645 ndr->flags = _flags_save_string;
1648 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1650 struct ndr_push *_ndr_secdesc;
1651 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1652 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1653 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1657 return NDR_ERR_SUCCESS;
1660 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1662 uint32_t _ptr_servername;
1663 TALLOC_CTX *_mem_save_servername_0;
1664 uint32_t _ptr_printername;
1665 TALLOC_CTX *_mem_save_printername_0;
1666 uint32_t _ptr_sharename;
1667 TALLOC_CTX *_mem_save_sharename_0;
1668 uint32_t _ptr_portname;
1669 TALLOC_CTX *_mem_save_portname_0;
1670 uint32_t _ptr_drivername;
1671 TALLOC_CTX *_mem_save_drivername_0;
1672 uint32_t _ptr_comment;
1673 TALLOC_CTX *_mem_save_comment_0;
1674 uint32_t _ptr_location;
1675 TALLOC_CTX *_mem_save_location_0;
1676 uint32_t _ptr_devmode;
1677 TALLOC_CTX *_mem_save_devmode_0;
1678 uint32_t _ptr_sepfile;
1679 TALLOC_CTX *_mem_save_sepfile_0;
1680 uint32_t _ptr_printprocessor;
1681 TALLOC_CTX *_mem_save_printprocessor_0;
1682 uint32_t _ptr_datatype;
1683 TALLOC_CTX *_mem_save_datatype_0;
1684 uint32_t _ptr_parameters;
1685 TALLOC_CTX *_mem_save_parameters_0;
1686 uint32_t _ptr_secdesc;
1687 TALLOC_CTX *_mem_save_secdesc_0;
1688 if (ndr_flags & NDR_SCALARS) {
1689 NDR_CHECK(ndr_pull_align(ndr, 4));
1691 uint32_t _flags_save_string = ndr->flags;
1692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1694 if (_ptr_servername) {
1695 NDR_PULL_ALLOC(ndr, r->servername);
1696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1698 r->servername = NULL;
1700 ndr->flags = _flags_save_string;
1703 uint32_t _flags_save_string = ndr->flags;
1704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1706 if (_ptr_printername) {
1707 NDR_PULL_ALLOC(ndr, r->printername);
1708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1710 r->printername = NULL;
1712 ndr->flags = _flags_save_string;
1715 uint32_t _flags_save_string = ndr->flags;
1716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1718 if (_ptr_sharename) {
1719 NDR_PULL_ALLOC(ndr, r->sharename);
1720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1722 r->sharename = NULL;
1724 ndr->flags = _flags_save_string;
1727 uint32_t _flags_save_string = ndr->flags;
1728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1730 if (_ptr_portname) {
1731 NDR_PULL_ALLOC(ndr, r->portname);
1732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1736 ndr->flags = _flags_save_string;
1739 uint32_t _flags_save_string = ndr->flags;
1740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1742 if (_ptr_drivername) {
1743 NDR_PULL_ALLOC(ndr, r->drivername);
1744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1746 r->drivername = NULL;
1748 ndr->flags = _flags_save_string;
1751 uint32_t _flags_save_string = ndr->flags;
1752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1755 NDR_PULL_ALLOC(ndr, r->comment);
1756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1760 ndr->flags = _flags_save_string;
1763 uint32_t _flags_save_string = ndr->flags;
1764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1766 if (_ptr_location) {
1767 NDR_PULL_ALLOC(ndr, r->location);
1768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1772 ndr->flags = _flags_save_string;
1774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1776 NDR_PULL_ALLOC(ndr, r->devmode);
1777 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1782 uint32_t _flags_save_string = ndr->flags;
1783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1786 NDR_PULL_ALLOC(ndr, r->sepfile);
1787 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1791 ndr->flags = _flags_save_string;
1794 uint32_t _flags_save_string = ndr->flags;
1795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1797 if (_ptr_printprocessor) {
1798 NDR_PULL_ALLOC(ndr, r->printprocessor);
1799 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1801 r->printprocessor = NULL;
1803 ndr->flags = _flags_save_string;
1806 uint32_t _flags_save_string = ndr->flags;
1807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1809 if (_ptr_datatype) {
1810 NDR_PULL_ALLOC(ndr, r->datatype);
1811 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1815 ndr->flags = _flags_save_string;
1818 uint32_t _flags_save_string = ndr->flags;
1819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1821 if (_ptr_parameters) {
1822 NDR_PULL_ALLOC(ndr, r->parameters);
1823 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1825 r->parameters = NULL;
1827 ndr->flags = _flags_save_string;
1829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1831 NDR_PULL_ALLOC(ndr, r->secdesc);
1832 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1836 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1838 if (r->priority > 99) {
1839 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1844 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1848 if (ndr_flags & NDR_BUFFERS) {
1850 uint32_t _flags_save_string = ndr->flags;
1851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1852 if (r->servername) {
1853 uint32_t _relative_save_offset;
1854 _relative_save_offset = ndr->offset;
1855 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1856 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1857 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1858 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1860 ndr->offset = _relative_save_offset;
1862 ndr->flags = _flags_save_string;
1865 uint32_t _flags_save_string = ndr->flags;
1866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1867 if (r->printername) {
1868 uint32_t _relative_save_offset;
1869 _relative_save_offset = ndr->offset;
1870 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1871 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1872 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1873 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1875 ndr->offset = _relative_save_offset;
1877 ndr->flags = _flags_save_string;
1880 uint32_t _flags_save_string = ndr->flags;
1881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1883 uint32_t _relative_save_offset;
1884 _relative_save_offset = ndr->offset;
1885 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1886 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1887 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1888 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1890 ndr->offset = _relative_save_offset;
1892 ndr->flags = _flags_save_string;
1895 uint32_t _flags_save_string = ndr->flags;
1896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1898 uint32_t _relative_save_offset;
1899 _relative_save_offset = ndr->offset;
1900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1901 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1902 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1905 ndr->offset = _relative_save_offset;
1907 ndr->flags = _flags_save_string;
1910 uint32_t _flags_save_string = ndr->flags;
1911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1912 if (r->drivername) {
1913 uint32_t _relative_save_offset;
1914 _relative_save_offset = ndr->offset;
1915 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1916 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1917 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1918 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1920 ndr->offset = _relative_save_offset;
1922 ndr->flags = _flags_save_string;
1925 uint32_t _flags_save_string = ndr->flags;
1926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1928 uint32_t _relative_save_offset;
1929 _relative_save_offset = ndr->offset;
1930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1931 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1932 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1935 ndr->offset = _relative_save_offset;
1937 ndr->flags = _flags_save_string;
1940 uint32_t _flags_save_string = ndr->flags;
1941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1943 uint32_t _relative_save_offset;
1944 _relative_save_offset = ndr->offset;
1945 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1946 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1947 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1948 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1950 ndr->offset = _relative_save_offset;
1952 ndr->flags = _flags_save_string;
1955 uint32_t _relative_save_offset;
1956 _relative_save_offset = ndr->offset;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1958 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1959 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1961 struct ndr_pull *_ndr_devmode;
1962 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1963 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1964 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1967 ndr->offset = _relative_save_offset;
1970 uint32_t _flags_save_string = ndr->flags;
1971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1973 uint32_t _relative_save_offset;
1974 _relative_save_offset = ndr->offset;
1975 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1976 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1977 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1978 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1980 ndr->offset = _relative_save_offset;
1982 ndr->flags = _flags_save_string;
1985 uint32_t _flags_save_string = ndr->flags;
1986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1987 if (r->printprocessor) {
1988 uint32_t _relative_save_offset;
1989 _relative_save_offset = ndr->offset;
1990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1991 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1992 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1995 ndr->offset = _relative_save_offset;
1997 ndr->flags = _flags_save_string;
2000 uint32_t _flags_save_string = ndr->flags;
2001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2003 uint32_t _relative_save_offset;
2004 _relative_save_offset = ndr->offset;
2005 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2006 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2007 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2008 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
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->parameters) {
2018 uint32_t _relative_save_offset;
2019 _relative_save_offset = ndr->offset;
2020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2021 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2022 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2025 ndr->offset = _relative_save_offset;
2027 ndr->flags = _flags_save_string;
2030 uint32_t _relative_save_offset;
2031 _relative_save_offset = ndr->offset;
2032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2033 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2034 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2036 struct ndr_pull *_ndr_secdesc;
2037 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2038 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2039 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2042 ndr->offset = _relative_save_offset;
2045 return NDR_ERR_SUCCESS;
2048 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2050 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2052 ndr_print_ptr(ndr, "servername", r->servername);
2054 if (r->servername) {
2055 ndr_print_string(ndr, "servername", r->servername);
2058 ndr_print_ptr(ndr, "printername", r->printername);
2060 if (r->printername) {
2061 ndr_print_string(ndr, "printername", r->printername);
2064 ndr_print_ptr(ndr, "sharename", r->sharename);
2067 ndr_print_string(ndr, "sharename", r->sharename);
2070 ndr_print_ptr(ndr, "portname", r->portname);
2073 ndr_print_string(ndr, "portname", r->portname);
2076 ndr_print_ptr(ndr, "drivername", r->drivername);
2078 if (r->drivername) {
2079 ndr_print_string(ndr, "drivername", r->drivername);
2082 ndr_print_ptr(ndr, "comment", r->comment);
2085 ndr_print_string(ndr, "comment", r->comment);
2088 ndr_print_ptr(ndr, "location", r->location);
2091 ndr_print_string(ndr, "location", r->location);
2094 ndr_print_ptr(ndr, "devmode", r->devmode);
2097 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2100 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2103 ndr_print_string(ndr, "sepfile", r->sepfile);
2106 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2108 if (r->printprocessor) {
2109 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2112 ndr_print_ptr(ndr, "datatype", r->datatype);
2115 ndr_print_string(ndr, "datatype", r->datatype);
2118 ndr_print_ptr(ndr, "parameters", r->parameters);
2120 if (r->parameters) {
2121 ndr_print_string(ndr, "parameters", r->parameters);
2124 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2127 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2130 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2131 ndr_print_uint32(ndr, "priority", r->priority);
2132 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2133 ndr_print_uint32(ndr, "starttime", r->starttime);
2134 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2135 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2136 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2137 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2141 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2143 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2146 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2148 if (ndr_flags & NDR_SCALARS) {
2149 NDR_CHECK(ndr_push_align(ndr, 4));
2150 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2152 if (ndr_flags & NDR_BUFFERS) {
2154 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
2156 struct ndr_push *_ndr_secdesc;
2157 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2158 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2159 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2163 return NDR_ERR_SUCCESS;
2166 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2168 uint32_t _ptr_secdesc;
2169 TALLOC_CTX *_mem_save_secdesc_0;
2170 if (ndr_flags & NDR_SCALARS) {
2171 NDR_CHECK(ndr_pull_align(ndr, 4));
2172 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2174 NDR_PULL_ALLOC(ndr, r->secdesc);
2175 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2180 if (ndr_flags & NDR_BUFFERS) {
2182 uint32_t _relative_save_offset;
2183 _relative_save_offset = ndr->offset;
2184 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2185 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2186 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2188 struct ndr_pull *_ndr_secdesc;
2189 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2190 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2191 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2194 ndr->offset = _relative_save_offset;
2197 return NDR_ERR_SUCCESS;
2200 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2202 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2204 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2207 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2213 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2215 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2218 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2220 if (ndr_flags & NDR_SCALARS) {
2221 NDR_CHECK(ndr_push_align(ndr, 4));
2223 uint32_t _flags_save_string = ndr->flags;
2224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2225 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2226 ndr->flags = _flags_save_string;
2229 uint32_t _flags_save_string = ndr->flags;
2230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2231 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2232 ndr->flags = _flags_save_string;
2234 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2236 if (ndr_flags & NDR_BUFFERS) {
2238 uint32_t _flags_save_string = ndr->flags;
2239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2240 if (r->printername) {
2241 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2242 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2244 ndr->flags = _flags_save_string;
2247 uint32_t _flags_save_string = ndr->flags;
2248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2249 if (r->servername) {
2250 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
2251 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2253 ndr->flags = _flags_save_string;
2256 return NDR_ERR_SUCCESS;
2259 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2261 uint32_t _ptr_printername;
2262 TALLOC_CTX *_mem_save_printername_0;
2263 uint32_t _ptr_servername;
2264 TALLOC_CTX *_mem_save_servername_0;
2265 if (ndr_flags & NDR_SCALARS) {
2266 NDR_CHECK(ndr_pull_align(ndr, 4));
2268 uint32_t _flags_save_string = ndr->flags;
2269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2271 if (_ptr_printername) {
2272 NDR_PULL_ALLOC(ndr, r->printername);
2273 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2275 r->printername = NULL;
2277 ndr->flags = _flags_save_string;
2280 uint32_t _flags_save_string = ndr->flags;
2281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2282 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2283 if (_ptr_servername) {
2284 NDR_PULL_ALLOC(ndr, r->servername);
2285 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2287 r->servername = NULL;
2289 ndr->flags = _flags_save_string;
2291 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2293 if (ndr_flags & NDR_BUFFERS) {
2295 uint32_t _flags_save_string = ndr->flags;
2296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2297 if (r->printername) {
2298 uint32_t _relative_save_offset;
2299 _relative_save_offset = ndr->offset;
2300 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2301 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2302 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2303 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2305 ndr->offset = _relative_save_offset;
2307 ndr->flags = _flags_save_string;
2310 uint32_t _flags_save_string = ndr->flags;
2311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2312 if (r->servername) {
2313 uint32_t _relative_save_offset;
2314 _relative_save_offset = ndr->offset;
2315 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2316 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2317 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2318 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2320 ndr->offset = _relative_save_offset;
2322 ndr->flags = _flags_save_string;
2325 return NDR_ERR_SUCCESS;
2328 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2330 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2332 ndr_print_ptr(ndr, "printername", r->printername);
2334 if (r->printername) {
2335 ndr_print_string(ndr, "printername", r->printername);
2338 ndr_print_ptr(ndr, "servername", r->servername);
2340 if (r->servername) {
2341 ndr_print_string(ndr, "servername", r->servername);
2344 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2348 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2350 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2353 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2355 if (ndr_flags & NDR_SCALARS) {
2356 NDR_CHECK(ndr_push_align(ndr, 4));
2358 uint32_t _flags_save_string = ndr->flags;
2359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2360 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2361 ndr->flags = _flags_save_string;
2364 uint32_t _flags_save_string = ndr->flags;
2365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2366 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2367 ndr->flags = _flags_save_string;
2369 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2373 if (ndr_flags & NDR_BUFFERS) {
2375 uint32_t _flags_save_string = ndr->flags;
2376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2377 if (r->printername) {
2378 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2379 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2381 ndr->flags = _flags_save_string;
2384 uint32_t _flags_save_string = ndr->flags;
2385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2387 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
2388 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2390 ndr->flags = _flags_save_string;
2393 return NDR_ERR_SUCCESS;
2396 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2398 uint32_t _ptr_printername;
2399 TALLOC_CTX *_mem_save_printername_0;
2400 uint32_t _ptr_portname;
2401 TALLOC_CTX *_mem_save_portname_0;
2402 if (ndr_flags & NDR_SCALARS) {
2403 NDR_CHECK(ndr_pull_align(ndr, 4));
2405 uint32_t _flags_save_string = ndr->flags;
2406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2408 if (_ptr_printername) {
2409 NDR_PULL_ALLOC(ndr, r->printername);
2410 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2412 r->printername = NULL;
2414 ndr->flags = _flags_save_string;
2417 uint32_t _flags_save_string = ndr->flags;
2418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2419 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2420 if (_ptr_portname) {
2421 NDR_PULL_ALLOC(ndr, r->portname);
2422 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2426 ndr->flags = _flags_save_string;
2428 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2432 if (ndr_flags & NDR_BUFFERS) {
2434 uint32_t _flags_save_string = ndr->flags;
2435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2436 if (r->printername) {
2437 uint32_t _relative_save_offset;
2438 _relative_save_offset = ndr->offset;
2439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2440 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2441 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2442 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2444 ndr->offset = _relative_save_offset;
2446 ndr->flags = _flags_save_string;
2449 uint32_t _flags_save_string = ndr->flags;
2450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2452 uint32_t _relative_save_offset;
2453 _relative_save_offset = ndr->offset;
2454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2455 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2456 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2459 ndr->offset = _relative_save_offset;
2461 ndr->flags = _flags_save_string;
2464 return NDR_ERR_SUCCESS;
2467 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2469 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2471 ndr_print_ptr(ndr, "printername", r->printername);
2473 if (r->printername) {
2474 ndr_print_string(ndr, "printername", r->printername);
2477 ndr_print_ptr(ndr, "portname", r->portname);
2480 ndr_print_string(ndr, "portname", r->portname);
2483 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2484 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2485 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2489 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2491 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2494 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2496 if (ndr_flags & NDR_SCALARS) {
2497 NDR_CHECK(ndr_push_align(ndr, 4));
2498 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2500 if (ndr_flags & NDR_BUFFERS) {
2502 return NDR_ERR_SUCCESS;
2505 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2507 if (ndr_flags & NDR_SCALARS) {
2508 NDR_CHECK(ndr_pull_align(ndr, 4));
2509 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2511 if (ndr_flags & NDR_BUFFERS) {
2513 return NDR_ERR_SUCCESS;
2516 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2518 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2520 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2524 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2526 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2529 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2532 return NDR_ERR_SUCCESS;
2535 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2540 return NDR_ERR_SUCCESS;
2543 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2545 ndr_print_uint32(ndr, name, r);
2547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2555 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2557 if (ndr_flags & NDR_SCALARS) {
2558 NDR_CHECK(ndr_push_align(ndr, 4));
2560 uint32_t _flags_save_string = ndr->flags;
2561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2563 ndr->flags = _flags_save_string;
2565 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2567 if (ndr_flags & NDR_BUFFERS) {
2569 uint32_t _flags_save_string = ndr->flags;
2570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2572 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2575 ndr->flags = _flags_save_string;
2578 return NDR_ERR_SUCCESS;
2581 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2584 TALLOC_CTX *_mem_save_guid_0;
2585 if (ndr_flags & NDR_SCALARS) {
2586 NDR_CHECK(ndr_pull_align(ndr, 4));
2588 uint32_t _flags_save_string = ndr->flags;
2589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2590 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2592 NDR_PULL_ALLOC(ndr, r->guid);
2593 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2597 ndr->flags = _flags_save_string;
2599 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2601 if (ndr_flags & NDR_BUFFERS) {
2603 uint32_t _flags_save_string = ndr->flags;
2604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2606 uint32_t _relative_save_offset;
2607 _relative_save_offset = ndr->offset;
2608 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2609 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2610 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2611 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2613 ndr->offset = _relative_save_offset;
2615 ndr->flags = _flags_save_string;
2618 return NDR_ERR_SUCCESS;
2621 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2623 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2625 ndr_print_ptr(ndr, "guid", r->guid);
2628 ndr_print_string(ndr, "guid", r->guid);
2631 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2635 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2637 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2640 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2642 if (ndr_flags & NDR_SCALARS) {
2643 NDR_CHECK(ndr_push_align(ndr, 4));
2644 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2646 if (ndr_flags & NDR_BUFFERS) {
2648 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2650 struct ndr_push *_ndr_devmode;
2651 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2652 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2653 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2657 return NDR_ERR_SUCCESS;
2660 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2662 uint32_t _ptr_devmode;
2663 TALLOC_CTX *_mem_save_devmode_0;
2664 if (ndr_flags & NDR_SCALARS) {
2665 NDR_CHECK(ndr_pull_align(ndr, 4));
2666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2668 NDR_PULL_ALLOC(ndr, r->devmode);
2669 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2674 if (ndr_flags & NDR_BUFFERS) {
2676 uint32_t _relative_save_offset;
2677 _relative_save_offset = ndr->offset;
2678 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2679 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2680 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2682 struct ndr_pull *_ndr_devmode;
2683 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2684 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2685 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2688 ndr->offset = _relative_save_offset;
2691 return NDR_ERR_SUCCESS;
2694 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2696 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2698 ndr_print_ptr(ndr, "devmode", r->devmode);
2701 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2709 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2710 if (ndr_flags & NDR_SCALARS) {
2711 int level = ndr_push_get_switch_value(ndr, r);
2714 NDR_CHECK(ndr_push_align(ndr, 4));
2715 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2716 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2720 NDR_CHECK(ndr_push_align(ndr, 4));
2721 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2722 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2726 NDR_CHECK(ndr_push_align(ndr, 4));
2727 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2728 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2732 NDR_CHECK(ndr_push_align(ndr, 4));
2733 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2734 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2738 NDR_CHECK(ndr_push_align(ndr, 4));
2739 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2740 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2744 NDR_CHECK(ndr_push_align(ndr, 4));
2745 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2746 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2750 NDR_CHECK(ndr_push_align(ndr, 4));
2751 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2752 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2756 NDR_CHECK(ndr_push_align(ndr, 4));
2757 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2758 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2762 NDR_CHECK(ndr_push_align(ndr, 4));
2763 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2764 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2768 NDR_CHECK(ndr_push_align(ndr, 4));
2769 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2770 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2778 if (ndr_flags & NDR_BUFFERS) {
2779 int level = ndr_push_get_switch_value(ndr, r);
2780 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2783 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2787 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2791 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2795 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2799 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2803 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2810 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2814 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2818 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2826 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2827 return NDR_ERR_SUCCESS;
2830 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2832 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2834 level = ndr_pull_get_switch_value(ndr, r);
2835 if (ndr_flags & NDR_SCALARS) {
2838 NDR_CHECK(ndr_pull_align(ndr, 4));
2839 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2840 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2844 NDR_CHECK(ndr_pull_align(ndr, 4));
2845 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2846 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2850 NDR_CHECK(ndr_pull_align(ndr, 4));
2851 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2852 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2856 NDR_CHECK(ndr_pull_align(ndr, 4));
2857 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2858 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2862 NDR_CHECK(ndr_pull_align(ndr, 4));
2863 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2864 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2868 NDR_CHECK(ndr_pull_align(ndr, 4));
2869 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2870 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2874 NDR_CHECK(ndr_pull_align(ndr, 4));
2875 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2876 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2880 NDR_CHECK(ndr_pull_align(ndr, 4));
2881 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2882 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2886 NDR_CHECK(ndr_pull_align(ndr, 4));
2887 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2888 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2892 NDR_CHECK(ndr_pull_align(ndr, 4));
2893 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2894 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2902 if (ndr_flags & NDR_BUFFERS) {
2903 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2906 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2910 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2914 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2918 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2922 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2926 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2933 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2937 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2941 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2949 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2950 return NDR_ERR_SUCCESS;
2953 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2956 level = ndr_print_get_switch_value(ndr, r);
2957 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2960 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2964 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2968 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2972 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2976 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2980 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2984 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2988 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2992 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2996 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3005 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3007 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3010 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3012 if (ndr_flags & NDR_SCALARS) {
3013 NDR_CHECK(ndr_push_align(ndr, 4));
3014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3017 if (ndr_flags & NDR_BUFFERS) {
3020 struct ndr_push *_ndr_devmode;
3021 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3022 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3023 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3027 return NDR_ERR_SUCCESS;
3030 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3032 uint32_t _ptr_devmode;
3033 TALLOC_CTX *_mem_save_devmode_0;
3034 if (ndr_flags & NDR_SCALARS) {
3035 NDR_CHECK(ndr_pull_align(ndr, 4));
3036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3039 NDR_PULL_ALLOC(ndr, r->devmode);
3044 if (ndr_flags & NDR_BUFFERS) {
3046 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3047 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3049 struct ndr_pull *_ndr_devmode;
3050 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3051 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3052 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3057 return NDR_ERR_SUCCESS;
3060 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3062 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3064 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);
3065 ndr_print_ptr(ndr, "devmode", r->devmode);
3068 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3074 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3076 if (ndr_flags & NDR_SCALARS) {
3077 NDR_CHECK(ndr_push_align(ndr, 4));
3078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3080 uint32_t _flags_save_string = ndr->flags;
3081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3082 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3083 ndr->flags = _flags_save_string;
3086 uint32_t _flags_save_string = ndr->flags;
3087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3088 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3089 ndr->flags = _flags_save_string;
3092 uint32_t _flags_save_string = ndr->flags;
3093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3094 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3095 ndr->flags = _flags_save_string;
3098 uint32_t _flags_save_string = ndr->flags;
3099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3100 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3101 ndr->flags = _flags_save_string;
3104 uint32_t _flags_save_string = ndr->flags;
3105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3106 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3107 ndr->flags = _flags_save_string;
3110 uint32_t _flags_save_string = ndr->flags;
3111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3112 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3113 ndr->flags = _flags_save_string;
3115 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3120 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3122 if (ndr_flags & NDR_BUFFERS) {
3124 uint32_t _flags_save_string = ndr->flags;
3125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3126 if (r->printer_name) {
3127 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3128 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3130 ndr->flags = _flags_save_string;
3133 uint32_t _flags_save_string = ndr->flags;
3134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3135 if (r->server_name) {
3136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3139 ndr->flags = _flags_save_string;
3142 uint32_t _flags_save_string = ndr->flags;
3143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3145 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3146 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3148 ndr->flags = _flags_save_string;
3151 uint32_t _flags_save_string = ndr->flags;
3152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3153 if (r->document_name) {
3154 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3155 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3157 ndr->flags = _flags_save_string;
3160 uint32_t _flags_save_string = ndr->flags;
3161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3163 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3164 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3166 ndr->flags = _flags_save_string;
3169 uint32_t _flags_save_string = ndr->flags;
3170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3171 if (r->text_status) {
3172 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3173 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3175 ndr->flags = _flags_save_string;
3178 return NDR_ERR_SUCCESS;
3181 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3183 uint32_t _ptr_printer_name;
3184 TALLOC_CTX *_mem_save_printer_name_0;
3185 uint32_t _ptr_server_name;
3186 TALLOC_CTX *_mem_save_server_name_0;
3187 uint32_t _ptr_user_name;
3188 TALLOC_CTX *_mem_save_user_name_0;
3189 uint32_t _ptr_document_name;
3190 TALLOC_CTX *_mem_save_document_name_0;
3191 uint32_t _ptr_data_type;
3192 TALLOC_CTX *_mem_save_data_type_0;
3193 uint32_t _ptr_text_status;
3194 TALLOC_CTX *_mem_save_text_status_0;
3195 if (ndr_flags & NDR_SCALARS) {
3196 NDR_CHECK(ndr_pull_align(ndr, 4));
3197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3199 uint32_t _flags_save_string = ndr->flags;
3200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3202 if (_ptr_printer_name) {
3203 NDR_PULL_ALLOC(ndr, r->printer_name);
3204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3206 r->printer_name = NULL;
3208 ndr->flags = _flags_save_string;
3211 uint32_t _flags_save_string = ndr->flags;
3212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3214 if (_ptr_server_name) {
3215 NDR_PULL_ALLOC(ndr, r->server_name);
3216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3218 r->server_name = NULL;
3220 ndr->flags = _flags_save_string;
3223 uint32_t _flags_save_string = ndr->flags;
3224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3226 if (_ptr_user_name) {
3227 NDR_PULL_ALLOC(ndr, r->user_name);
3228 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3230 r->user_name = NULL;
3232 ndr->flags = _flags_save_string;
3235 uint32_t _flags_save_string = ndr->flags;
3236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3238 if (_ptr_document_name) {
3239 NDR_PULL_ALLOC(ndr, r->document_name);
3240 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3242 r->document_name = NULL;
3244 ndr->flags = _flags_save_string;
3247 uint32_t _flags_save_string = ndr->flags;
3248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3250 if (_ptr_data_type) {
3251 NDR_PULL_ALLOC(ndr, r->data_type);
3252 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3254 r->data_type = NULL;
3256 ndr->flags = _flags_save_string;
3259 uint32_t _flags_save_string = ndr->flags;
3260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3262 if (_ptr_text_status) {
3263 NDR_PULL_ALLOC(ndr, r->text_status);
3264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3266 r->text_status = NULL;
3268 ndr->flags = _flags_save_string;
3270 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3272 if (r->priority > 99) {
3273 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3278 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3280 if (ndr_flags & NDR_BUFFERS) {
3282 uint32_t _flags_save_string = ndr->flags;
3283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3284 if (r->printer_name) {
3285 uint32_t _relative_save_offset;
3286 _relative_save_offset = ndr->offset;
3287 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3288 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3289 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3290 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3292 ndr->offset = _relative_save_offset;
3294 ndr->flags = _flags_save_string;
3297 uint32_t _flags_save_string = ndr->flags;
3298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3299 if (r->server_name) {
3300 uint32_t _relative_save_offset;
3301 _relative_save_offset = ndr->offset;
3302 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3303 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3304 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3305 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3307 ndr->offset = _relative_save_offset;
3309 ndr->flags = _flags_save_string;
3312 uint32_t _flags_save_string = ndr->flags;
3313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3315 uint32_t _relative_save_offset;
3316 _relative_save_offset = ndr->offset;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3318 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3319 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3322 ndr->offset = _relative_save_offset;
3324 ndr->flags = _flags_save_string;
3327 uint32_t _flags_save_string = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3329 if (r->document_name) {
3330 uint32_t _relative_save_offset;
3331 _relative_save_offset = ndr->offset;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3333 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3334 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3337 ndr->offset = _relative_save_offset;
3339 ndr->flags = _flags_save_string;
3342 uint32_t _flags_save_string = ndr->flags;
3343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3345 uint32_t _relative_save_offset;
3346 _relative_save_offset = ndr->offset;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3348 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3349 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3352 ndr->offset = _relative_save_offset;
3354 ndr->flags = _flags_save_string;
3357 uint32_t _flags_save_string = ndr->flags;
3358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3359 if (r->text_status) {
3360 uint32_t _relative_save_offset;
3361 _relative_save_offset = ndr->offset;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3363 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3364 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3367 ndr->offset = _relative_save_offset;
3369 ndr->flags = _flags_save_string;
3372 return NDR_ERR_SUCCESS;
3375 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3377 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3379 ndr_print_uint32(ndr, "job_id", r->job_id);
3380 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3382 if (r->printer_name) {
3383 ndr_print_string(ndr, "printer_name", r->printer_name);
3386 ndr_print_ptr(ndr, "server_name", r->server_name);
3388 if (r->server_name) {
3389 ndr_print_string(ndr, "server_name", r->server_name);
3392 ndr_print_ptr(ndr, "user_name", r->user_name);
3395 ndr_print_string(ndr, "user_name", r->user_name);
3398 ndr_print_ptr(ndr, "document_name", r->document_name);
3400 if (r->document_name) {
3401 ndr_print_string(ndr, "document_name", r->document_name);
3404 ndr_print_ptr(ndr, "data_type", r->data_type);
3407 ndr_print_string(ndr, "data_type", r->data_type);
3410 ndr_print_ptr(ndr, "text_status", r->text_status);
3412 if (r->text_status) {
3413 ndr_print_string(ndr, "text_status", r->text_status);
3416 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3417 ndr_print_uint32(ndr, "priority", r->priority);
3418 ndr_print_uint32(ndr, "position", r->position);
3419 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3420 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3421 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3425 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3427 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3430 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3432 if (ndr_flags & NDR_SCALARS) {
3433 NDR_CHECK(ndr_push_align(ndr, 4));
3434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3436 uint32_t _flags_save_string = ndr->flags;
3437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3438 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
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_push_relative_ptr1(ndr, r->server_name));
3445 ndr->flags = _flags_save_string;
3448 uint32_t _flags_save_string = ndr->flags;
3449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3450 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
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_push_relative_ptr1(ndr, r->document_name));
3457 ndr->flags = _flags_save_string;
3460 uint32_t _flags_save_string = ndr->flags;
3461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3462 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
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_push_relative_ptr1(ndr, r->data_type));
3469 ndr->flags = _flags_save_string;
3472 uint32_t _flags_save_string = ndr->flags;
3473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
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_push_relative_ptr1(ndr, r->parameters));
3481 ndr->flags = _flags_save_string;
3484 uint32_t _flags_save_string = ndr->flags;
3485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3487 ndr->flags = _flags_save_string;
3489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3491 uint32_t _flags_save_string = ndr->flags;
3492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3493 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3494 ndr->flags = _flags_save_string;
3496 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3497 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3504 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3508 if (ndr_flags & NDR_BUFFERS) {
3510 uint32_t _flags_save_string = ndr->flags;
3511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3512 if (r->printer_name) {
3513 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3514 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3516 ndr->flags = _flags_save_string;
3519 uint32_t _flags_save_string = ndr->flags;
3520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3521 if (r->server_name) {
3522 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3523 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3525 ndr->flags = _flags_save_string;
3528 uint32_t _flags_save_string = ndr->flags;
3529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3531 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3532 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3534 ndr->flags = _flags_save_string;
3537 uint32_t _flags_save_string = ndr->flags;
3538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3539 if (r->document_name) {
3540 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3541 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3543 ndr->flags = _flags_save_string;
3546 uint32_t _flags_save_string = ndr->flags;
3547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3548 if (r->notify_name) {
3549 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3550 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3552 ndr->flags = _flags_save_string;
3555 uint32_t _flags_save_string = ndr->flags;
3556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3558 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3559 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3561 ndr->flags = _flags_save_string;
3564 uint32_t _flags_save_string = ndr->flags;
3565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3566 if (r->print_processor) {
3567 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3570 ndr->flags = _flags_save_string;
3573 uint32_t _flags_save_string = ndr->flags;
3574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3575 if (r->parameters) {
3576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3579 ndr->flags = _flags_save_string;
3582 uint32_t _flags_save_string = ndr->flags;
3583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3584 if (r->driver_name) {
3585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3588 ndr->flags = _flags_save_string;
3591 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3592 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3595 uint32_t _flags_save_string = ndr->flags;
3596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3597 if (r->text_status) {
3598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3601 ndr->flags = _flags_save_string;
3604 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3605 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3608 return NDR_ERR_SUCCESS;
3611 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3613 uint32_t _ptr_printer_name;
3614 TALLOC_CTX *_mem_save_printer_name_0;
3615 uint32_t _ptr_server_name;
3616 TALLOC_CTX *_mem_save_server_name_0;
3617 uint32_t _ptr_user_name;
3618 TALLOC_CTX *_mem_save_user_name_0;
3619 uint32_t _ptr_document_name;
3620 TALLOC_CTX *_mem_save_document_name_0;
3621 uint32_t _ptr_notify_name;
3622 TALLOC_CTX *_mem_save_notify_name_0;
3623 uint32_t _ptr_data_type;
3624 TALLOC_CTX *_mem_save_data_type_0;
3625 uint32_t _ptr_print_processor;
3626 TALLOC_CTX *_mem_save_print_processor_0;
3627 uint32_t _ptr_parameters;
3628 TALLOC_CTX *_mem_save_parameters_0;
3629 uint32_t _ptr_driver_name;
3630 TALLOC_CTX *_mem_save_driver_name_0;
3631 uint32_t _ptr_devmode;
3632 TALLOC_CTX *_mem_save_devmode_0;
3633 uint32_t _ptr_text_status;
3634 TALLOC_CTX *_mem_save_text_status_0;
3635 uint32_t _ptr_secdesc;
3636 TALLOC_CTX *_mem_save_secdesc_0;
3637 if (ndr_flags & NDR_SCALARS) {
3638 NDR_CHECK(ndr_pull_align(ndr, 4));
3639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3641 uint32_t _flags_save_string = ndr->flags;
3642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3644 if (_ptr_printer_name) {
3645 NDR_PULL_ALLOC(ndr, r->printer_name);
3646 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3648 r->printer_name = NULL;
3650 ndr->flags = _flags_save_string;
3653 uint32_t _flags_save_string = ndr->flags;
3654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3656 if (_ptr_server_name) {
3657 NDR_PULL_ALLOC(ndr, r->server_name);
3658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3660 r->server_name = NULL;
3662 ndr->flags = _flags_save_string;
3665 uint32_t _flags_save_string = ndr->flags;
3666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3668 if (_ptr_user_name) {
3669 NDR_PULL_ALLOC(ndr, r->user_name);
3670 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3672 r->user_name = NULL;
3674 ndr->flags = _flags_save_string;
3677 uint32_t _flags_save_string = ndr->flags;
3678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3680 if (_ptr_document_name) {
3681 NDR_PULL_ALLOC(ndr, r->document_name);
3682 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3684 r->document_name = NULL;
3686 ndr->flags = _flags_save_string;
3689 uint32_t _flags_save_string = ndr->flags;
3690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3692 if (_ptr_notify_name) {
3693 NDR_PULL_ALLOC(ndr, r->notify_name);
3694 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3696 r->notify_name = NULL;
3698 ndr->flags = _flags_save_string;
3701 uint32_t _flags_save_string = ndr->flags;
3702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3704 if (_ptr_data_type) {
3705 NDR_PULL_ALLOC(ndr, r->data_type);
3706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3708 r->data_type = NULL;
3710 ndr->flags = _flags_save_string;
3713 uint32_t _flags_save_string = ndr->flags;
3714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3716 if (_ptr_print_processor) {
3717 NDR_PULL_ALLOC(ndr, r->print_processor);
3718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3720 r->print_processor = NULL;
3722 ndr->flags = _flags_save_string;
3725 uint32_t _flags_save_string = ndr->flags;
3726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3728 if (_ptr_parameters) {
3729 NDR_PULL_ALLOC(ndr, r->parameters);
3730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3732 r->parameters = NULL;
3734 ndr->flags = _flags_save_string;
3737 uint32_t _flags_save_string = ndr->flags;
3738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3740 if (_ptr_driver_name) {
3741 NDR_PULL_ALLOC(ndr, r->driver_name);
3742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3744 r->driver_name = NULL;
3746 ndr->flags = _flags_save_string;
3748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3750 NDR_PULL_ALLOC(ndr, r->devmode);
3751 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3756 uint32_t _flags_save_string = ndr->flags;
3757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3759 if (_ptr_text_status) {
3760 NDR_PULL_ALLOC(ndr, r->text_status);
3761 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3763 r->text_status = NULL;
3765 ndr->flags = _flags_save_string;
3767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3769 NDR_PULL_ALLOC(ndr, r->secdesc);
3770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3774 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3776 if (r->priority > 99) {
3777 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3784 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3786 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3788 if (ndr_flags & NDR_BUFFERS) {
3790 uint32_t _flags_save_string = ndr->flags;
3791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3792 if (r->printer_name) {
3793 uint32_t _relative_save_offset;
3794 _relative_save_offset = ndr->offset;
3795 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3796 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3797 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3798 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3800 ndr->offset = _relative_save_offset;
3802 ndr->flags = _flags_save_string;
3805 uint32_t _flags_save_string = ndr->flags;
3806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3807 if (r->server_name) {
3808 uint32_t _relative_save_offset;
3809 _relative_save_offset = ndr->offset;
3810 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3811 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3812 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3813 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3815 ndr->offset = _relative_save_offset;
3817 ndr->flags = _flags_save_string;
3820 uint32_t _flags_save_string = ndr->flags;
3821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3823 uint32_t _relative_save_offset;
3824 _relative_save_offset = ndr->offset;
3825 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3826 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3827 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3828 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3830 ndr->offset = _relative_save_offset;
3832 ndr->flags = _flags_save_string;
3835 uint32_t _flags_save_string = ndr->flags;
3836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3837 if (r->document_name) {
3838 uint32_t _relative_save_offset;
3839 _relative_save_offset = ndr->offset;
3840 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3841 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3842 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3843 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3845 ndr->offset = _relative_save_offset;
3847 ndr->flags = _flags_save_string;
3850 uint32_t _flags_save_string = ndr->flags;
3851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3852 if (r->notify_name) {
3853 uint32_t _relative_save_offset;
3854 _relative_save_offset = ndr->offset;
3855 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3856 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3857 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3858 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3860 ndr->offset = _relative_save_offset;
3862 ndr->flags = _flags_save_string;
3865 uint32_t _flags_save_string = ndr->flags;
3866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3868 uint32_t _relative_save_offset;
3869 _relative_save_offset = ndr->offset;
3870 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3871 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3872 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3873 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3875 ndr->offset = _relative_save_offset;
3877 ndr->flags = _flags_save_string;
3880 uint32_t _flags_save_string = ndr->flags;
3881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3882 if (r->print_processor) {
3883 uint32_t _relative_save_offset;
3884 _relative_save_offset = ndr->offset;
3885 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3886 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3887 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3888 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3890 ndr->offset = _relative_save_offset;
3892 ndr->flags = _flags_save_string;
3895 uint32_t _flags_save_string = ndr->flags;
3896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3897 if (r->parameters) {
3898 uint32_t _relative_save_offset;
3899 _relative_save_offset = ndr->offset;
3900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3901 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3902 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3905 ndr->offset = _relative_save_offset;
3907 ndr->flags = _flags_save_string;
3910 uint32_t _flags_save_string = ndr->flags;
3911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3912 if (r->driver_name) {
3913 uint32_t _relative_save_offset;
3914 _relative_save_offset = ndr->offset;
3915 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3916 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3917 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3918 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3920 ndr->offset = _relative_save_offset;
3922 ndr->flags = _flags_save_string;
3925 uint32_t _relative_save_offset;
3926 _relative_save_offset = ndr->offset;
3927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3928 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3929 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3930 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3932 ndr->offset = _relative_save_offset;
3935 uint32_t _flags_save_string = ndr->flags;
3936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3937 if (r->text_status) {
3938 uint32_t _relative_save_offset;
3939 _relative_save_offset = ndr->offset;
3940 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3941 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3942 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3943 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3945 ndr->offset = _relative_save_offset;
3947 ndr->flags = _flags_save_string;
3950 uint32_t _relative_save_offset;
3951 _relative_save_offset = ndr->offset;
3952 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3953 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3954 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3955 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3957 ndr->offset = _relative_save_offset;
3960 return NDR_ERR_SUCCESS;
3963 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3965 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3967 ndr_print_uint32(ndr, "job_id", r->job_id);
3968 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3970 if (r->printer_name) {
3971 ndr_print_string(ndr, "printer_name", r->printer_name);
3974 ndr_print_ptr(ndr, "server_name", r->server_name);
3976 if (r->server_name) {
3977 ndr_print_string(ndr, "server_name", r->server_name);
3980 ndr_print_ptr(ndr, "user_name", r->user_name);
3983 ndr_print_string(ndr, "user_name", r->user_name);
3986 ndr_print_ptr(ndr, "document_name", r->document_name);
3988 if (r->document_name) {
3989 ndr_print_string(ndr, "document_name", r->document_name);
3992 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3994 if (r->notify_name) {
3995 ndr_print_string(ndr, "notify_name", r->notify_name);
3998 ndr_print_ptr(ndr, "data_type", r->data_type);
4001 ndr_print_string(ndr, "data_type", r->data_type);
4004 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4006 if (r->print_processor) {
4007 ndr_print_string(ndr, "print_processor", r->print_processor);
4010 ndr_print_ptr(ndr, "parameters", r->parameters);
4012 if (r->parameters) {
4013 ndr_print_string(ndr, "parameters", r->parameters);
4016 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4018 if (r->driver_name) {
4019 ndr_print_string(ndr, "driver_name", r->driver_name);
4022 ndr_print_ptr(ndr, "devmode", r->devmode);
4025 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4028 ndr_print_ptr(ndr, "text_status", r->text_status);
4030 if (r->text_status) {
4031 ndr_print_string(ndr, "text_status", r->text_status);
4034 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4037 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4040 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4041 ndr_print_uint32(ndr, "priority", r->priority);
4042 ndr_print_uint32(ndr, "position", r->position);
4043 ndr_print_uint32(ndr, "start_time", r->start_time);
4044 ndr_print_uint32(ndr, "until_time", r->until_time);
4045 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4046 ndr_print_uint32(ndr, "size", r->size);
4047 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4048 ndr_print_uint32(ndr, "time", r->time);
4049 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4053 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4055 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4058 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4060 if (ndr_flags & NDR_SCALARS) {
4061 NDR_CHECK(ndr_push_align(ndr, 4));
4062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4066 if (ndr_flags & NDR_BUFFERS) {
4068 return NDR_ERR_SUCCESS;
4071 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4073 if (ndr_flags & NDR_SCALARS) {
4074 NDR_CHECK(ndr_pull_align(ndr, 4));
4075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4079 if (ndr_flags & NDR_BUFFERS) {
4081 return NDR_ERR_SUCCESS;
4084 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4086 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4088 ndr_print_uint32(ndr, "job_id", r->job_id);
4089 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4090 ndr_print_uint32(ndr, "reserved", r->reserved);
4094 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4096 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4099 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4101 if (ndr_flags & NDR_SCALARS) {
4102 NDR_CHECK(ndr_push_align(ndr, 4));
4103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4105 uint32_t _flags_save_string = ndr->flags;
4106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4107 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4108 ndr->flags = _flags_save_string;
4111 uint32_t _flags_save_string = ndr->flags;
4112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4113 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4114 ndr->flags = _flags_save_string;
4117 uint32_t _flags_save_string = ndr->flags;
4118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4119 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4120 ndr->flags = _flags_save_string;
4123 uint32_t _flags_save_string = ndr->flags;
4124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4125 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4126 ndr->flags = _flags_save_string;
4129 uint32_t _flags_save_string = ndr->flags;
4130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4131 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4132 ndr->flags = _flags_save_string;
4135 uint32_t _flags_save_string = ndr->flags;
4136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4137 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4138 ndr->flags = _flags_save_string;
4141 uint32_t _flags_save_string = ndr->flags;
4142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4143 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4144 ndr->flags = _flags_save_string;
4147 uint32_t _flags_save_string = ndr->flags;
4148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4149 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4150 ndr->flags = _flags_save_string;
4153 uint32_t _flags_save_string = ndr->flags;
4154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4155 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4156 ndr->flags = _flags_save_string;
4158 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4160 uint32_t _flags_save_string = ndr->flags;
4161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4162 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4163 ndr->flags = _flags_save_string;
4165 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4166 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4173 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4178 if (ndr_flags & NDR_BUFFERS) {
4180 uint32_t _flags_save_string = ndr->flags;
4181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4182 if (r->printer_name) {
4183 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
4184 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4186 ndr->flags = _flags_save_string;
4189 uint32_t _flags_save_string = ndr->flags;
4190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4191 if (r->server_name) {
4192 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
4193 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4195 ndr->flags = _flags_save_string;
4198 uint32_t _flags_save_string = ndr->flags;
4199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4201 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
4202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4204 ndr->flags = _flags_save_string;
4207 uint32_t _flags_save_string = ndr->flags;
4208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4209 if (r->document_name) {
4210 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
4211 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4213 ndr->flags = _flags_save_string;
4216 uint32_t _flags_save_string = ndr->flags;
4217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4218 if (r->notify_name) {
4219 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
4220 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4222 ndr->flags = _flags_save_string;
4225 uint32_t _flags_save_string = ndr->flags;
4226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4228 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
4229 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4231 ndr->flags = _flags_save_string;
4234 uint32_t _flags_save_string = ndr->flags;
4235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4236 if (r->print_processor) {
4237 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
4238 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4240 ndr->flags = _flags_save_string;
4243 uint32_t _flags_save_string = ndr->flags;
4244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4245 if (r->parameters) {
4246 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
4247 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4249 ndr->flags = _flags_save_string;
4252 uint32_t _flags_save_string = ndr->flags;
4253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4254 if (r->driver_name) {
4255 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4256 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4258 ndr->flags = _flags_save_string;
4261 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
4262 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4265 uint32_t _flags_save_string = ndr->flags;
4266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4267 if (r->text_status) {
4268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
4269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4271 ndr->flags = _flags_save_string;
4274 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
4275 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4278 return NDR_ERR_SUCCESS;
4281 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4283 uint32_t _ptr_printer_name;
4284 TALLOC_CTX *_mem_save_printer_name_0;
4285 uint32_t _ptr_server_name;
4286 TALLOC_CTX *_mem_save_server_name_0;
4287 uint32_t _ptr_user_name;
4288 TALLOC_CTX *_mem_save_user_name_0;
4289 uint32_t _ptr_document_name;
4290 TALLOC_CTX *_mem_save_document_name_0;
4291 uint32_t _ptr_notify_name;
4292 TALLOC_CTX *_mem_save_notify_name_0;
4293 uint32_t _ptr_data_type;
4294 TALLOC_CTX *_mem_save_data_type_0;
4295 uint32_t _ptr_print_processor;
4296 TALLOC_CTX *_mem_save_print_processor_0;
4297 uint32_t _ptr_parameters;
4298 TALLOC_CTX *_mem_save_parameters_0;
4299 uint32_t _ptr_driver_name;
4300 TALLOC_CTX *_mem_save_driver_name_0;
4301 uint32_t _ptr_devmode;
4302 TALLOC_CTX *_mem_save_devmode_0;
4303 uint32_t _ptr_text_status;
4304 TALLOC_CTX *_mem_save_text_status_0;
4305 uint32_t _ptr_secdesc;
4306 TALLOC_CTX *_mem_save_secdesc_0;
4307 if (ndr_flags & NDR_SCALARS) {
4308 NDR_CHECK(ndr_pull_align(ndr, 4));
4309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4311 uint32_t _flags_save_string = ndr->flags;
4312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4314 if (_ptr_printer_name) {
4315 NDR_PULL_ALLOC(ndr, r->printer_name);
4316 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4318 r->printer_name = NULL;
4320 ndr->flags = _flags_save_string;
4323 uint32_t _flags_save_string = ndr->flags;
4324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4326 if (_ptr_server_name) {
4327 NDR_PULL_ALLOC(ndr, r->server_name);
4328 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4330 r->server_name = NULL;
4332 ndr->flags = _flags_save_string;
4335 uint32_t _flags_save_string = ndr->flags;
4336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4338 if (_ptr_user_name) {
4339 NDR_PULL_ALLOC(ndr, r->user_name);
4340 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4342 r->user_name = NULL;
4344 ndr->flags = _flags_save_string;
4347 uint32_t _flags_save_string = ndr->flags;
4348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4350 if (_ptr_document_name) {
4351 NDR_PULL_ALLOC(ndr, r->document_name);
4352 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4354 r->document_name = NULL;
4356 ndr->flags = _flags_save_string;
4359 uint32_t _flags_save_string = ndr->flags;
4360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4362 if (_ptr_notify_name) {
4363 NDR_PULL_ALLOC(ndr, r->notify_name);
4364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4366 r->notify_name = NULL;
4368 ndr->flags = _flags_save_string;
4371 uint32_t _flags_save_string = ndr->flags;
4372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4374 if (_ptr_data_type) {
4375 NDR_PULL_ALLOC(ndr, r->data_type);
4376 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4378 r->data_type = NULL;
4380 ndr->flags = _flags_save_string;
4383 uint32_t _flags_save_string = ndr->flags;
4384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4386 if (_ptr_print_processor) {
4387 NDR_PULL_ALLOC(ndr, r->print_processor);
4388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4390 r->print_processor = NULL;
4392 ndr->flags = _flags_save_string;
4395 uint32_t _flags_save_string = ndr->flags;
4396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4398 if (_ptr_parameters) {
4399 NDR_PULL_ALLOC(ndr, r->parameters);
4400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4402 r->parameters = NULL;
4404 ndr->flags = _flags_save_string;
4407 uint32_t _flags_save_string = ndr->flags;
4408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4410 if (_ptr_driver_name) {
4411 NDR_PULL_ALLOC(ndr, r->driver_name);
4412 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4414 r->driver_name = NULL;
4416 ndr->flags = _flags_save_string;
4418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4420 NDR_PULL_ALLOC(ndr, r->devmode);
4421 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4426 uint32_t _flags_save_string = ndr->flags;
4427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4429 if (_ptr_text_status) {
4430 NDR_PULL_ALLOC(ndr, r->text_status);
4431 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4433 r->text_status = NULL;
4435 ndr->flags = _flags_save_string;
4437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4439 NDR_PULL_ALLOC(ndr, r->secdesc);
4440 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4444 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4446 if (r->priority > 99) {
4447 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4454 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4459 if (ndr_flags & NDR_BUFFERS) {
4461 uint32_t _flags_save_string = ndr->flags;
4462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4463 if (r->printer_name) {
4464 uint32_t _relative_save_offset;
4465 _relative_save_offset = ndr->offset;
4466 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4467 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4468 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4469 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4471 ndr->offset = _relative_save_offset;
4473 ndr->flags = _flags_save_string;
4476 uint32_t _flags_save_string = ndr->flags;
4477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4478 if (r->server_name) {
4479 uint32_t _relative_save_offset;
4480 _relative_save_offset = ndr->offset;
4481 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4482 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4483 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4484 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4486 ndr->offset = _relative_save_offset;
4488 ndr->flags = _flags_save_string;
4491 uint32_t _flags_save_string = ndr->flags;
4492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4494 uint32_t _relative_save_offset;
4495 _relative_save_offset = ndr->offset;
4496 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4497 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4498 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4499 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4501 ndr->offset = _relative_save_offset;
4503 ndr->flags = _flags_save_string;
4506 uint32_t _flags_save_string = ndr->flags;
4507 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4508 if (r->document_name) {
4509 uint32_t _relative_save_offset;
4510 _relative_save_offset = ndr->offset;
4511 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4512 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4513 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4514 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4516 ndr->offset = _relative_save_offset;
4518 ndr->flags = _flags_save_string;
4521 uint32_t _flags_save_string = ndr->flags;
4522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4523 if (r->notify_name) {
4524 uint32_t _relative_save_offset;
4525 _relative_save_offset = ndr->offset;
4526 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4527 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4528 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4529 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4531 ndr->offset = _relative_save_offset;
4533 ndr->flags = _flags_save_string;
4536 uint32_t _flags_save_string = ndr->flags;
4537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4539 uint32_t _relative_save_offset;
4540 _relative_save_offset = ndr->offset;
4541 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4542 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4543 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4544 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4546 ndr->offset = _relative_save_offset;
4548 ndr->flags = _flags_save_string;
4551 uint32_t _flags_save_string = ndr->flags;
4552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4553 if (r->print_processor) {
4554 uint32_t _relative_save_offset;
4555 _relative_save_offset = ndr->offset;
4556 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4557 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4558 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4559 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4561 ndr->offset = _relative_save_offset;
4563 ndr->flags = _flags_save_string;
4566 uint32_t _flags_save_string = ndr->flags;
4567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4568 if (r->parameters) {
4569 uint32_t _relative_save_offset;
4570 _relative_save_offset = ndr->offset;
4571 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4572 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4573 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4574 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4576 ndr->offset = _relative_save_offset;
4578 ndr->flags = _flags_save_string;
4581 uint32_t _flags_save_string = ndr->flags;
4582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4583 if (r->driver_name) {
4584 uint32_t _relative_save_offset;
4585 _relative_save_offset = ndr->offset;
4586 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4587 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4588 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4589 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4591 ndr->offset = _relative_save_offset;
4593 ndr->flags = _flags_save_string;
4596 uint32_t _relative_save_offset;
4597 _relative_save_offset = ndr->offset;
4598 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4599 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4600 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4601 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4603 ndr->offset = _relative_save_offset;
4606 uint32_t _flags_save_string = ndr->flags;
4607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4608 if (r->text_status) {
4609 uint32_t _relative_save_offset;
4610 _relative_save_offset = ndr->offset;
4611 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4612 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4613 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4614 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4616 ndr->offset = _relative_save_offset;
4618 ndr->flags = _flags_save_string;
4621 uint32_t _relative_save_offset;
4622 _relative_save_offset = ndr->offset;
4623 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4624 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4625 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4626 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4628 ndr->offset = _relative_save_offset;
4631 return NDR_ERR_SUCCESS;
4634 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4636 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4638 ndr_print_uint32(ndr, "job_id", r->job_id);
4639 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4641 if (r->printer_name) {
4642 ndr_print_string(ndr, "printer_name", r->printer_name);
4645 ndr_print_ptr(ndr, "server_name", r->server_name);
4647 if (r->server_name) {
4648 ndr_print_string(ndr, "server_name", r->server_name);
4651 ndr_print_ptr(ndr, "user_name", r->user_name);
4654 ndr_print_string(ndr, "user_name", r->user_name);
4657 ndr_print_ptr(ndr, "document_name", r->document_name);
4659 if (r->document_name) {
4660 ndr_print_string(ndr, "document_name", r->document_name);
4663 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4665 if (r->notify_name) {
4666 ndr_print_string(ndr, "notify_name", r->notify_name);
4669 ndr_print_ptr(ndr, "data_type", r->data_type);
4672 ndr_print_string(ndr, "data_type", r->data_type);
4675 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4677 if (r->print_processor) {
4678 ndr_print_string(ndr, "print_processor", r->print_processor);
4681 ndr_print_ptr(ndr, "parameters", r->parameters);
4683 if (r->parameters) {
4684 ndr_print_string(ndr, "parameters", r->parameters);
4687 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4689 if (r->driver_name) {
4690 ndr_print_string(ndr, "driver_name", r->driver_name);
4693 ndr_print_ptr(ndr, "devmode", r->devmode);
4696 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4699 ndr_print_ptr(ndr, "text_status", r->text_status);
4701 if (r->text_status) {
4702 ndr_print_string(ndr, "text_status", r->text_status);
4705 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4708 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4711 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4712 ndr_print_uint32(ndr, "priority", r->priority);
4713 ndr_print_uint32(ndr, "position", r->position);
4714 ndr_print_uint32(ndr, "start_time", r->start_time);
4715 ndr_print_uint32(ndr, "until_time", r->until_time);
4716 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4717 ndr_print_uint32(ndr, "size", r->size);
4718 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4719 ndr_print_uint32(ndr, "time", r->time);
4720 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4721 ndr_print_uint32(ndr, "size_high", r->size_high);
4725 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4727 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4730 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4732 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4733 if (ndr_flags & NDR_SCALARS) {
4734 int level = ndr_push_get_switch_value(ndr, r);
4737 NDR_CHECK(ndr_push_align(ndr, 4));
4738 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4739 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4743 NDR_CHECK(ndr_push_align(ndr, 4));
4744 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4745 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4749 NDR_CHECK(ndr_push_align(ndr, 4));
4750 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4751 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4755 NDR_CHECK(ndr_push_align(ndr, 4));
4756 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4757 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4765 if (ndr_flags & NDR_BUFFERS) {
4766 int level = ndr_push_get_switch_value(ndr, r);
4767 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4770 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4774 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4781 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4789 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4790 return NDR_ERR_SUCCESS;
4793 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4795 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4797 level = ndr_pull_get_switch_value(ndr, r);
4798 if (ndr_flags & NDR_SCALARS) {
4801 NDR_CHECK(ndr_pull_align(ndr, 4));
4802 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4803 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4807 NDR_CHECK(ndr_pull_align(ndr, 4));
4808 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4809 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4813 NDR_CHECK(ndr_pull_align(ndr, 4));
4814 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4815 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4819 NDR_CHECK(ndr_pull_align(ndr, 4));
4820 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4821 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4829 if (ndr_flags & NDR_BUFFERS) {
4830 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4833 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4837 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4844 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4852 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4853 return NDR_ERR_SUCCESS;
4856 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4859 level = ndr_print_get_switch_value(ndr, r);
4860 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4863 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4867 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4871 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4875 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4884 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4886 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4889 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4891 if (ndr_flags & NDR_SCALARS) {
4892 NDR_CHECK(ndr_push_align(ndr, 4));
4893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4898 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4899 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4900 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4905 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4907 if (ndr_flags & NDR_BUFFERS) {
4908 if (r->printer_name) {
4909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4912 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4914 if (r->server_name) {
4915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4918 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4924 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4926 if (r->document_name) {
4927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4938 if (r->text_status) {
4939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4942 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4945 return NDR_ERR_SUCCESS;
4948 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4950 uint32_t _ptr_printer_name;
4951 TALLOC_CTX *_mem_save_printer_name_0;
4952 uint32_t _ptr_server_name;
4953 TALLOC_CTX *_mem_save_server_name_0;
4954 uint32_t _ptr_user_name;
4955 TALLOC_CTX *_mem_save_user_name_0;
4956 uint32_t _ptr_document_name;
4957 TALLOC_CTX *_mem_save_document_name_0;
4958 uint32_t _ptr_data_type;
4959 TALLOC_CTX *_mem_save_data_type_0;
4960 uint32_t _ptr_text_status;
4961 TALLOC_CTX *_mem_save_text_status_0;
4962 if (ndr_flags & NDR_SCALARS) {
4963 NDR_CHECK(ndr_pull_align(ndr, 4));
4964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4966 if (_ptr_printer_name) {
4967 NDR_PULL_ALLOC(ndr, r->printer_name);
4969 r->printer_name = NULL;
4971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4972 if (_ptr_server_name) {
4973 NDR_PULL_ALLOC(ndr, r->server_name);
4975 r->server_name = NULL;
4977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4978 if (_ptr_user_name) {
4979 NDR_PULL_ALLOC(ndr, r->user_name);
4981 r->user_name = NULL;
4983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4984 if (_ptr_document_name) {
4985 NDR_PULL_ALLOC(ndr, r->document_name);
4987 r->document_name = NULL;
4989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4990 if (_ptr_data_type) {
4991 NDR_PULL_ALLOC(ndr, r->data_type);
4993 r->data_type = NULL;
4995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4996 if (_ptr_text_status) {
4997 NDR_PULL_ALLOC(ndr, r->text_status);
4999 r->text_status = NULL;
5001 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5003 if (r->priority > 99) {
5004 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5009 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5011 if (ndr_flags & NDR_BUFFERS) {
5012 if (r->printer_name) {
5013 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5014 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5015 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5016 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5017 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5018 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));
5020 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5021 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5024 if (r->server_name) {
5025 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5026 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5027 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5028 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5029 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5030 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));
5032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5037 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5038 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5039 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5040 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5041 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5042 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));
5044 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5045 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5048 if (r->document_name) {
5049 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5050 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5051 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5052 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5053 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5054 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));
5056 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5057 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5061 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5062 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5063 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5064 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5065 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5066 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));
5068 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5069 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5072 if (r->text_status) {
5073 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5074 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5075 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5076 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5077 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5078 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));
5080 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5081 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5085 return NDR_ERR_SUCCESS;
5088 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5090 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5092 ndr_print_uint32(ndr, "job_id", r->job_id);
5093 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5095 if (r->printer_name) {
5096 ndr_print_string(ndr, "printer_name", r->printer_name);
5099 ndr_print_ptr(ndr, "server_name", r->server_name);
5101 if (r->server_name) {
5102 ndr_print_string(ndr, "server_name", r->server_name);
5105 ndr_print_ptr(ndr, "user_name", r->user_name);
5108 ndr_print_string(ndr, "user_name", r->user_name);
5111 ndr_print_ptr(ndr, "document_name", r->document_name);
5113 if (r->document_name) {
5114 ndr_print_string(ndr, "document_name", r->document_name);
5117 ndr_print_ptr(ndr, "data_type", r->data_type);
5120 ndr_print_string(ndr, "data_type", r->data_type);
5123 ndr_print_ptr(ndr, "text_status", r->text_status);
5125 if (r->text_status) {
5126 ndr_print_string(ndr, "text_status", r->text_status);
5129 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5130 ndr_print_uint32(ndr, "priority", r->priority);
5131 ndr_print_uint32(ndr, "position", r->position);
5132 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5133 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5134 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5138 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5140 if (ndr_flags & NDR_SCALARS) {
5141 NDR_CHECK(ndr_push_align(ndr, 4));
5142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5147 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5155 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5162 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5166 if (ndr_flags & NDR_BUFFERS) {
5167 if (r->printer_name) {
5168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5171 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5173 if (r->server_name) {
5174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5183 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5185 if (r->document_name) {
5186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5189 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5191 if (r->notify_name) {
5192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5195 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5201 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5203 if (r->print_processor) {
5204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5207 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5209 if (r->parameters) {
5210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5213 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5215 if (r->driver_name) {
5216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5219 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5221 if (r->text_status) {
5222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5225 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5228 return NDR_ERR_SUCCESS;
5231 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5233 uint32_t _ptr_printer_name;
5234 TALLOC_CTX *_mem_save_printer_name_0;
5235 uint32_t _ptr_server_name;
5236 TALLOC_CTX *_mem_save_server_name_0;
5237 uint32_t _ptr_user_name;
5238 TALLOC_CTX *_mem_save_user_name_0;
5239 uint32_t _ptr_document_name;
5240 TALLOC_CTX *_mem_save_document_name_0;
5241 uint32_t _ptr_notify_name;
5242 TALLOC_CTX *_mem_save_notify_name_0;
5243 uint32_t _ptr_data_type;
5244 TALLOC_CTX *_mem_save_data_type_0;
5245 uint32_t _ptr_print_processor;
5246 TALLOC_CTX *_mem_save_print_processor_0;
5247 uint32_t _ptr_parameters;
5248 TALLOC_CTX *_mem_save_parameters_0;
5249 uint32_t _ptr_driver_name;
5250 TALLOC_CTX *_mem_save_driver_name_0;
5251 uint32_t _ptr_text_status;
5252 TALLOC_CTX *_mem_save_text_status_0;
5253 if (ndr_flags & NDR_SCALARS) {
5254 NDR_CHECK(ndr_pull_align(ndr, 4));
5255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5257 if (_ptr_printer_name) {
5258 NDR_PULL_ALLOC(ndr, r->printer_name);
5260 r->printer_name = NULL;
5262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5263 if (_ptr_server_name) {
5264 NDR_PULL_ALLOC(ndr, r->server_name);
5266 r->server_name = NULL;
5268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5269 if (_ptr_user_name) {
5270 NDR_PULL_ALLOC(ndr, r->user_name);
5272 r->user_name = NULL;
5274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5275 if (_ptr_document_name) {
5276 NDR_PULL_ALLOC(ndr, r->document_name);
5278 r->document_name = NULL;
5280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5281 if (_ptr_notify_name) {
5282 NDR_PULL_ALLOC(ndr, r->notify_name);
5284 r->notify_name = NULL;
5286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5287 if (_ptr_data_type) {
5288 NDR_PULL_ALLOC(ndr, r->data_type);
5290 r->data_type = NULL;
5292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5293 if (_ptr_print_processor) {
5294 NDR_PULL_ALLOC(ndr, r->print_processor);
5296 r->print_processor = NULL;
5298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5299 if (_ptr_parameters) {
5300 NDR_PULL_ALLOC(ndr, r->parameters);
5302 r->parameters = NULL;
5304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5305 if (_ptr_driver_name) {
5306 NDR_PULL_ALLOC(ndr, r->driver_name);
5308 r->driver_name = NULL;
5310 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5312 if (_ptr_text_status) {
5313 NDR_PULL_ALLOC(ndr, r->text_status);
5315 r->text_status = NULL;
5317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5318 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5320 if (r->priority > 99) {
5321 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5328 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5332 if (ndr_flags & NDR_BUFFERS) {
5333 if (r->printer_name) {
5334 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5335 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5336 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5337 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5338 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5339 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));
5341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5345 if (r->server_name) {
5346 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5347 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5348 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5349 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5350 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5351 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));
5353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5358 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5359 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5360 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5361 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5362 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5363 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));
5365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5369 if (r->document_name) {
5370 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5371 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5372 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5373 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5374 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5375 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));
5377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5381 if (r->notify_name) {
5382 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5383 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5384 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5385 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5386 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5387 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));
5389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5394 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5395 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5396 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5397 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5398 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5399 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));
5401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5405 if (r->print_processor) {
5406 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5407 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5408 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5409 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5410 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5411 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));
5413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5417 if (r->parameters) {
5418 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5419 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5420 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5421 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5422 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5423 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));
5425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5429 if (r->driver_name) {
5430 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5431 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5432 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5433 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5434 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5435 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));
5437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5441 if (r->text_status) {
5442 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5443 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5444 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5445 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5446 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5447 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));
5449 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5454 return NDR_ERR_SUCCESS;
5457 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5459 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5461 ndr_print_uint32(ndr, "job_id", r->job_id);
5462 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5464 if (r->printer_name) {
5465 ndr_print_string(ndr, "printer_name", r->printer_name);
5468 ndr_print_ptr(ndr, "server_name", r->server_name);
5470 if (r->server_name) {
5471 ndr_print_string(ndr, "server_name", r->server_name);
5474 ndr_print_ptr(ndr, "user_name", r->user_name);
5477 ndr_print_string(ndr, "user_name", r->user_name);
5480 ndr_print_ptr(ndr, "document_name", r->document_name);
5482 if (r->document_name) {
5483 ndr_print_string(ndr, "document_name", r->document_name);
5486 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5488 if (r->notify_name) {
5489 ndr_print_string(ndr, "notify_name", r->notify_name);
5492 ndr_print_ptr(ndr, "data_type", r->data_type);
5495 ndr_print_string(ndr, "data_type", r->data_type);
5498 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5500 if (r->print_processor) {
5501 ndr_print_string(ndr, "print_processor", r->print_processor);
5504 ndr_print_ptr(ndr, "parameters", r->parameters);
5506 if (r->parameters) {
5507 ndr_print_string(ndr, "parameters", r->parameters);
5510 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5512 if (r->driver_name) {
5513 ndr_print_string(ndr, "driver_name", r->driver_name);
5516 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5517 ndr_print_ptr(ndr, "text_status", r->text_status);
5519 if (r->text_status) {
5520 ndr_print_string(ndr, "text_status", r->text_status);
5523 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5524 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5525 ndr_print_uint32(ndr, "priority", r->priority);
5526 ndr_print_uint32(ndr, "position", r->position);
5527 ndr_print_uint32(ndr, "start_time", r->start_time);
5528 ndr_print_uint32(ndr, "until_time", r->until_time);
5529 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5530 ndr_print_uint32(ndr, "size", r->size);
5531 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5532 ndr_print_uint32(ndr, "time", r->time);
5533 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5537 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5539 if (ndr_flags & NDR_SCALARS) {
5540 NDR_CHECK(ndr_push_align(ndr, 4));
5541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5544 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5546 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5547 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5554 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5561 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5566 if (ndr_flags & NDR_BUFFERS) {
5567 if (r->printer_name) {
5568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5571 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5573 if (r->server_name) {
5574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5577 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5583 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5585 if (r->document_name) {
5586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5589 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5591 if (r->notify_name) {
5592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5595 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5603 if (r->print_processor) {
5604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5607 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5609 if (r->parameters) {
5610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5613 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5615 if (r->driver_name) {
5616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5621 if (r->text_status) {
5622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5625 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5628 return NDR_ERR_SUCCESS;
5631 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5633 uint32_t _ptr_printer_name;
5634 TALLOC_CTX *_mem_save_printer_name_0;
5635 uint32_t _ptr_server_name;
5636 TALLOC_CTX *_mem_save_server_name_0;
5637 uint32_t _ptr_user_name;
5638 TALLOC_CTX *_mem_save_user_name_0;
5639 uint32_t _ptr_document_name;
5640 TALLOC_CTX *_mem_save_document_name_0;
5641 uint32_t _ptr_notify_name;
5642 TALLOC_CTX *_mem_save_notify_name_0;
5643 uint32_t _ptr_data_type;
5644 TALLOC_CTX *_mem_save_data_type_0;
5645 uint32_t _ptr_print_processor;
5646 TALLOC_CTX *_mem_save_print_processor_0;
5647 uint32_t _ptr_parameters;
5648 TALLOC_CTX *_mem_save_parameters_0;
5649 uint32_t _ptr_driver_name;
5650 TALLOC_CTX *_mem_save_driver_name_0;
5651 uint32_t _ptr_text_status;
5652 TALLOC_CTX *_mem_save_text_status_0;
5653 if (ndr_flags & NDR_SCALARS) {
5654 NDR_CHECK(ndr_pull_align(ndr, 4));
5655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5657 if (_ptr_printer_name) {
5658 NDR_PULL_ALLOC(ndr, r->printer_name);
5660 r->printer_name = NULL;
5662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5663 if (_ptr_server_name) {
5664 NDR_PULL_ALLOC(ndr, r->server_name);
5666 r->server_name = NULL;
5668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5669 if (_ptr_user_name) {
5670 NDR_PULL_ALLOC(ndr, r->user_name);
5672 r->user_name = NULL;
5674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5675 if (_ptr_document_name) {
5676 NDR_PULL_ALLOC(ndr, r->document_name);
5678 r->document_name = NULL;
5680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5681 if (_ptr_notify_name) {
5682 NDR_PULL_ALLOC(ndr, r->notify_name);
5684 r->notify_name = NULL;
5686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5687 if (_ptr_data_type) {
5688 NDR_PULL_ALLOC(ndr, r->data_type);
5690 r->data_type = NULL;
5692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5693 if (_ptr_print_processor) {
5694 NDR_PULL_ALLOC(ndr, r->print_processor);
5696 r->print_processor = NULL;
5698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5699 if (_ptr_parameters) {
5700 NDR_PULL_ALLOC(ndr, r->parameters);
5702 r->parameters = NULL;
5704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5705 if (_ptr_driver_name) {
5706 NDR_PULL_ALLOC(ndr, r->driver_name);
5708 r->driver_name = NULL;
5710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5712 if (_ptr_text_status) {
5713 NDR_PULL_ALLOC(ndr, r->text_status);
5715 r->text_status = NULL;
5717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5718 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5720 if (r->priority > 99) {
5721 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5728 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5729 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5733 if (ndr_flags & NDR_BUFFERS) {
5734 if (r->printer_name) {
5735 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5736 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5737 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5738 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5739 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5740 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));
5742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5746 if (r->server_name) {
5747 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5748 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5749 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5750 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5751 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5752 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));
5754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5755 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5759 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5760 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5761 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5762 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5763 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5764 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));
5766 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5767 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5770 if (r->document_name) {
5771 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5772 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5773 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5774 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5775 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5776 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));
5778 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5779 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5782 if (r->notify_name) {
5783 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5784 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5785 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5786 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5787 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5788 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));
5790 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5791 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5795 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5796 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5797 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5798 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5799 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5800 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));
5802 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5803 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5804 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5806 if (r->print_processor) {
5807 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5808 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5809 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5810 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5811 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5812 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));
5814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5815 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5818 if (r->parameters) {
5819 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5820 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5821 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5822 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5823 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5824 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));
5826 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5827 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5830 if (r->driver_name) {
5831 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5832 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5833 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5834 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5835 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5836 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));
5838 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5839 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5842 if (r->text_status) {
5843 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5844 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5845 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5846 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5847 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5848 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));
5850 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5851 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5855 return NDR_ERR_SUCCESS;
5858 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5860 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5862 ndr_print_uint32(ndr, "job_id", r->job_id);
5863 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5865 if (r->printer_name) {
5866 ndr_print_string(ndr, "printer_name", r->printer_name);
5869 ndr_print_ptr(ndr, "server_name", r->server_name);
5871 if (r->server_name) {
5872 ndr_print_string(ndr, "server_name", r->server_name);
5875 ndr_print_ptr(ndr, "user_name", r->user_name);
5878 ndr_print_string(ndr, "user_name", r->user_name);
5881 ndr_print_ptr(ndr, "document_name", r->document_name);
5883 if (r->document_name) {
5884 ndr_print_string(ndr, "document_name", r->document_name);
5887 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5889 if (r->notify_name) {
5890 ndr_print_string(ndr, "notify_name", r->notify_name);
5893 ndr_print_ptr(ndr, "data_type", r->data_type);
5896 ndr_print_string(ndr, "data_type", r->data_type);
5899 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5901 if (r->print_processor) {
5902 ndr_print_string(ndr, "print_processor", r->print_processor);
5905 ndr_print_ptr(ndr, "parameters", r->parameters);
5907 if (r->parameters) {
5908 ndr_print_string(ndr, "parameters", r->parameters);
5911 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5913 if (r->driver_name) {
5914 ndr_print_string(ndr, "driver_name", r->driver_name);
5917 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5918 ndr_print_ptr(ndr, "text_status", r->text_status);
5920 if (r->text_status) {
5921 ndr_print_string(ndr, "text_status", r->text_status);
5924 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5925 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5926 ndr_print_uint32(ndr, "priority", r->priority);
5927 ndr_print_uint32(ndr, "position", r->position);
5928 ndr_print_uint32(ndr, "start_time", r->start_time);
5929 ndr_print_uint32(ndr, "until_time", r->until_time);
5930 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5931 ndr_print_uint32(ndr, "size", r->size);
5932 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5933 ndr_print_uint32(ndr, "time", r->time);
5934 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5935 ndr_print_uint32(ndr, "size_high", r->size_high);
5939 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5941 if (ndr_flags & NDR_SCALARS) {
5942 int level = ndr_push_get_switch_value(ndr, r);
5943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5946 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5966 if (ndr_flags & NDR_BUFFERS) {
5967 int level = ndr_push_get_switch_value(ndr, r);
5971 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5977 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5983 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5989 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5998 return NDR_ERR_SUCCESS;
6001 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6005 TALLOC_CTX *_mem_save_info1_0;
6006 TALLOC_CTX *_mem_save_info2_0;
6007 TALLOC_CTX *_mem_save_info3_0;
6008 TALLOC_CTX *_mem_save_info4_0;
6009 level = ndr_pull_get_switch_value(ndr, r);
6010 if (ndr_flags & NDR_SCALARS) {
6011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6012 if (_level != level) {
6013 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6017 uint32_t _ptr_info1;
6018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6020 NDR_PULL_ALLOC(ndr, r->info1);
6027 uint32_t _ptr_info2;
6028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6030 NDR_PULL_ALLOC(ndr, r->info2);
6037 uint32_t _ptr_info3;
6038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6040 NDR_PULL_ALLOC(ndr, r->info3);
6047 uint32_t _ptr_info4;
6048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6050 NDR_PULL_ALLOC(ndr, r->info4);
6061 if (ndr_flags & NDR_BUFFERS) {
6065 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6066 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6067 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6074 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6075 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6076 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6083 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6084 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6085 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6092 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6093 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6094 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6104 return NDR_ERR_SUCCESS;
6107 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6110 level = ndr_print_get_switch_value(ndr, r);
6111 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6114 ndr_print_ptr(ndr, "info1", r->info1);
6117 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6123 ndr_print_ptr(ndr, "info2", r->info2);
6126 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6132 ndr_print_ptr(ndr, "info3", r->info3);
6135 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6141 ndr_print_ptr(ndr, "info4", r->info4);
6144 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6155 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6157 if (ndr_flags & NDR_SCALARS) {
6158 NDR_CHECK(ndr_push_align(ndr, 4));
6159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6160 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6161 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6163 if (ndr_flags & NDR_BUFFERS) {
6164 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6166 return NDR_ERR_SUCCESS;
6169 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6171 if (ndr_flags & NDR_SCALARS) {
6172 NDR_CHECK(ndr_pull_align(ndr, 4));
6173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6174 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6175 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6177 if (ndr_flags & NDR_BUFFERS) {
6178 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6180 return NDR_ERR_SUCCESS;
6183 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6185 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6187 ndr_print_uint32(ndr, "level", r->level);
6188 ndr_print_set_switch_value(ndr, &r->info, r->level);
6189 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6193 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6196 return NDR_ERR_SUCCESS;
6199 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6204 return NDR_ERR_SUCCESS;
6207 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6209 const char *val = NULL;
6212 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6213 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6214 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6215 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6216 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6217 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6218 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6219 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6220 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6222 ndr_print_enum(ndr, name, "ENUM", val, r);
6225 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6228 return NDR_ERR_SUCCESS;
6231 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6236 return NDR_ERR_SUCCESS;
6239 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6241 const char *val = NULL;
6244 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6245 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6246 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6247 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6248 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6250 ndr_print_enum(ndr, name, "ENUM", val, r);
6253 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6255 if (ndr_flags & NDR_SCALARS) {
6256 NDR_CHECK(ndr_push_align(ndr, 4));
6257 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6258 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6262 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6274 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6277 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6281 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6282 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6287 if (ndr_flags & NDR_BUFFERS) {
6288 if (r->servername) {
6289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6294 if (r->printername) {
6295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6298 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6301 return NDR_ERR_SUCCESS;
6304 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6306 uint32_t _ptr_servername;
6307 TALLOC_CTX *_mem_save_servername_0;
6308 uint32_t _ptr_printername;
6309 TALLOC_CTX *_mem_save_printername_0;
6310 if (ndr_flags & NDR_SCALARS) {
6311 NDR_CHECK(ndr_pull_align(ndr, 4));
6312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6313 if (_ptr_servername) {
6314 NDR_PULL_ALLOC(ndr, r->servername);
6316 r->servername = NULL;
6318 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6319 if (_ptr_printername) {
6320 NDR_PULL_ALLOC(ndr, r->printername);
6322 r->printername = NULL;
6324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6327 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6339 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6342 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6346 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6347 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6352 if (ndr_flags & NDR_BUFFERS) {
6353 if (r->servername) {
6354 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6355 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6356 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6357 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6358 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6359 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));
6361 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6362 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6365 if (r->printername) {
6366 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6367 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6368 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6369 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6370 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6371 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));
6373 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6374 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6378 return NDR_ERR_SUCCESS;
6381 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6383 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6385 ndr_print_ptr(ndr, "servername", r->servername);
6387 if (r->servername) {
6388 ndr_print_string(ndr, "servername", r->servername);
6391 ndr_print_ptr(ndr, "printername", r->printername);
6393 if (r->printername) {
6394 ndr_print_string(ndr, "printername", r->printername);
6397 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6398 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6399 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6400 ndr_print_spoolss_Time(ndr, "time", &r->time);
6401 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6402 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6403 ndr_print_uint32(ndr, "version", r->version);
6404 ndr_print_uint32(ndr, "free_build", r->free_build);
6405 ndr_print_uint32(ndr, "spooling", r->spooling);
6406 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6407 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6408 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6409 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6410 ndr_print_uint32(ndr, "job_error", r->job_error);
6411 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6412 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6413 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6414 ndr_print_uint32(ndr, "change_id", r->change_id);
6415 ndr_print_WERROR(ndr, "last_error", r->last_error);
6416 ndr_print_uint32(ndr, "status", r->status);
6417 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6418 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6419 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6420 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6421 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6422 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6423 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6427 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6429 if (ndr_flags & NDR_SCALARS) {
6430 NDR_CHECK(ndr_push_align(ndr, 4));
6431 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6436 if (ndr_flags & NDR_BUFFERS) {
6437 if (r->description) {
6438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6441 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6447 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6453 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6456 return NDR_ERR_SUCCESS;
6459 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6461 uint32_t _ptr_description;
6462 TALLOC_CTX *_mem_save_description_0;
6464 TALLOC_CTX *_mem_save_name_0;
6465 uint32_t _ptr_comment;
6466 TALLOC_CTX *_mem_save_comment_0;
6467 if (ndr_flags & NDR_SCALARS) {
6468 NDR_CHECK(ndr_pull_align(ndr, 4));
6469 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6471 if (_ptr_description) {
6472 NDR_PULL_ALLOC(ndr, r->description);
6474 r->description = NULL;
6476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6478 NDR_PULL_ALLOC(ndr, r->name);
6482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6484 NDR_PULL_ALLOC(ndr, r->comment);
6489 if (ndr_flags & NDR_BUFFERS) {
6490 if (r->description) {
6491 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6492 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6493 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6494 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6495 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6496 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));
6498 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6499 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6503 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6504 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6505 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6506 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6507 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6508 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));
6510 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6515 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6516 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6517 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6518 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6519 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6520 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));
6522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6523 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6527 return NDR_ERR_SUCCESS;
6530 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6532 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6534 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6535 ndr_print_ptr(ndr, "description", r->description);
6537 if (r->description) {
6538 ndr_print_string(ndr, "description", r->description);
6541 ndr_print_ptr(ndr, "name", r->name);
6544 ndr_print_string(ndr, "name", r->name);
6547 ndr_print_ptr(ndr, "comment", r->comment);
6550 ndr_print_string(ndr, "comment", r->comment);
6556 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6558 if (ndr_flags & NDR_SCALARS) {
6559 NDR_CHECK(ndr_push_align(ndr, 4));
6560 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6561 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6562 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6563 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6564 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6565 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6566 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6567 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6568 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6569 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6570 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6571 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6572 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6573 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6578 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6582 if (ndr_flags & NDR_BUFFERS) {
6583 if (r->servername) {
6584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6587 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6589 if (r->printername) {
6590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6599 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6607 if (r->drivername) {
6608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6611 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6617 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6623 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6627 struct ndr_push *_ndr_devmode;
6628 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6629 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6630 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6637 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6639 if (r->printprocessor) {
6640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6643 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6649 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6651 if (r->parameters) {
6652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6659 struct ndr_push *_ndr_secdesc;
6660 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6661 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6662 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6666 return NDR_ERR_SUCCESS;
6669 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6671 uint32_t _ptr_servername;
6672 TALLOC_CTX *_mem_save_servername_0;
6673 uint32_t _ptr_printername;
6674 TALLOC_CTX *_mem_save_printername_0;
6675 uint32_t _ptr_sharename;
6676 TALLOC_CTX *_mem_save_sharename_0;
6677 uint32_t _ptr_portname;
6678 TALLOC_CTX *_mem_save_portname_0;
6679 uint32_t _ptr_drivername;
6680 TALLOC_CTX *_mem_save_drivername_0;
6681 uint32_t _ptr_comment;
6682 TALLOC_CTX *_mem_save_comment_0;
6683 uint32_t _ptr_location;
6684 TALLOC_CTX *_mem_save_location_0;
6685 uint32_t _ptr_devmode;
6686 TALLOC_CTX *_mem_save_devmode_0;
6687 uint32_t _ptr_sepfile;
6688 TALLOC_CTX *_mem_save_sepfile_0;
6689 uint32_t _ptr_printprocessor;
6690 TALLOC_CTX *_mem_save_printprocessor_0;
6691 uint32_t _ptr_datatype;
6692 TALLOC_CTX *_mem_save_datatype_0;
6693 uint32_t _ptr_parameters;
6694 TALLOC_CTX *_mem_save_parameters_0;
6695 uint32_t _ptr_secdesc;
6696 TALLOC_CTX *_mem_save_secdesc_0;
6697 if (ndr_flags & NDR_SCALARS) {
6698 NDR_CHECK(ndr_pull_align(ndr, 4));
6699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6700 if (_ptr_servername) {
6701 NDR_PULL_ALLOC(ndr, r->servername);
6703 r->servername = NULL;
6705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6706 if (_ptr_printername) {
6707 NDR_PULL_ALLOC(ndr, r->printername);
6709 r->printername = NULL;
6711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6712 if (_ptr_sharename) {
6713 NDR_PULL_ALLOC(ndr, r->sharename);
6715 r->sharename = NULL;
6717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6718 if (_ptr_portname) {
6719 NDR_PULL_ALLOC(ndr, r->portname);
6723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6724 if (_ptr_drivername) {
6725 NDR_PULL_ALLOC(ndr, r->drivername);
6727 r->drivername = NULL;
6729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6731 NDR_PULL_ALLOC(ndr, r->comment);
6735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6736 if (_ptr_location) {
6737 NDR_PULL_ALLOC(ndr, r->location);
6741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6743 NDR_PULL_ALLOC(ndr, r->devmode);
6747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6749 NDR_PULL_ALLOC(ndr, r->sepfile);
6753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6754 if (_ptr_printprocessor) {
6755 NDR_PULL_ALLOC(ndr, r->printprocessor);
6757 r->printprocessor = NULL;
6759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6760 if (_ptr_datatype) {
6761 NDR_PULL_ALLOC(ndr, r->datatype);
6765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6766 if (_ptr_parameters) {
6767 NDR_PULL_ALLOC(ndr, r->parameters);
6769 r->parameters = NULL;
6771 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6773 NDR_PULL_ALLOC(ndr, r->secdesc);
6777 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6779 if (r->priority > 99) {
6780 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6785 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6786 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6789 if (ndr_flags & NDR_BUFFERS) {
6790 if (r->servername) {
6791 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6792 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6793 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6794 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6795 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6796 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));
6798 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6802 if (r->printername) {
6803 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6804 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6805 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6806 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6807 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6808 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));
6810 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6811 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6815 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6816 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6817 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6818 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6819 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6820 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));
6822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6827 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6828 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6829 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6830 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6831 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6832 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));
6834 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6838 if (r->drivername) {
6839 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6840 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6841 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6842 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6843 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6844 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));
6846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6847 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6851 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6852 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6853 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6854 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6855 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6856 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));
6858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6863 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6864 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6865 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6866 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6867 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6868 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));
6870 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6871 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6875 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6876 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6878 struct ndr_pull *_ndr_devmode;
6879 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6880 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6881 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6886 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6887 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6888 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6889 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6890 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6891 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));
6893 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6894 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6897 if (r->printprocessor) {
6898 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6899 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6900 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6901 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6902 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6903 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));
6905 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6906 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6910 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6911 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6912 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6913 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6914 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6915 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));
6917 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6918 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6921 if (r->parameters) {
6922 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6923 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6924 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6925 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6926 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6927 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));
6929 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6930 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6934 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6935 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6937 struct ndr_pull *_ndr_secdesc;
6938 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6939 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6940 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6945 return NDR_ERR_SUCCESS;
6948 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6950 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6952 ndr_print_ptr(ndr, "servername", r->servername);
6954 if (r->servername) {
6955 ndr_print_string(ndr, "servername", r->servername);
6958 ndr_print_ptr(ndr, "printername", r->printername);
6960 if (r->printername) {
6961 ndr_print_string(ndr, "printername", r->printername);
6964 ndr_print_ptr(ndr, "sharename", r->sharename);
6967 ndr_print_string(ndr, "sharename", r->sharename);
6970 ndr_print_ptr(ndr, "portname", r->portname);
6973 ndr_print_string(ndr, "portname", r->portname);
6976 ndr_print_ptr(ndr, "drivername", r->drivername);
6978 if (r->drivername) {
6979 ndr_print_string(ndr, "drivername", r->drivername);
6982 ndr_print_ptr(ndr, "comment", r->comment);
6985 ndr_print_string(ndr, "comment", r->comment);
6988 ndr_print_ptr(ndr, "location", r->location);
6991 ndr_print_string(ndr, "location", r->location);
6994 ndr_print_ptr(ndr, "devmode", r->devmode);
6997 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
7000 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7003 ndr_print_string(ndr, "sepfile", r->sepfile);
7006 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7008 if (r->printprocessor) {
7009 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7012 ndr_print_ptr(ndr, "datatype", r->datatype);
7015 ndr_print_string(ndr, "datatype", r->datatype);
7018 ndr_print_ptr(ndr, "parameters", r->parameters);
7020 if (r->parameters) {
7021 ndr_print_string(ndr, "parameters", r->parameters);
7024 ndr_print_ptr(ndr, "secdesc", r->secdesc);
7027 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
7030 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7031 ndr_print_uint32(ndr, "priority", r->priority);
7032 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7033 ndr_print_uint32(ndr, "starttime", r->starttime);
7034 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7035 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7036 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7037 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7041 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7043 if (ndr_flags & NDR_SCALARS) {
7044 NDR_CHECK(ndr_push_align(ndr, 4));
7045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7047 if (ndr_flags & NDR_BUFFERS) {
7049 return NDR_ERR_SUCCESS;
7052 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7054 if (ndr_flags & NDR_SCALARS) {
7055 NDR_CHECK(ndr_pull_align(ndr, 4));
7056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7058 if (ndr_flags & NDR_BUFFERS) {
7060 return NDR_ERR_SUCCESS;
7063 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7065 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7067 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7071 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7073 if (ndr_flags & NDR_SCALARS) {
7074 NDR_CHECK(ndr_push_align(ndr, 4));
7075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7077 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7079 if (ndr_flags & NDR_BUFFERS) {
7080 if (r->printername) {
7081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7086 if (r->servername) {
7087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7093 return NDR_ERR_SUCCESS;
7096 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7098 uint32_t _ptr_printername;
7099 TALLOC_CTX *_mem_save_printername_0;
7100 uint32_t _ptr_servername;
7101 TALLOC_CTX *_mem_save_servername_0;
7102 if (ndr_flags & NDR_SCALARS) {
7103 NDR_CHECK(ndr_pull_align(ndr, 4));
7104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7105 if (_ptr_printername) {
7106 NDR_PULL_ALLOC(ndr, r->printername);
7108 r->printername = NULL;
7110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7111 if (_ptr_servername) {
7112 NDR_PULL_ALLOC(ndr, r->servername);
7114 r->servername = NULL;
7116 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7118 if (ndr_flags & NDR_BUFFERS) {
7119 if (r->printername) {
7120 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7121 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7122 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7123 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7124 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7125 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));
7127 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7128 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7131 if (r->servername) {
7132 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7133 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7134 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7135 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7136 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7137 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));
7139 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7140 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7144 return NDR_ERR_SUCCESS;
7147 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7149 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7151 ndr_print_ptr(ndr, "printername", r->printername);
7153 if (r->printername) {
7154 ndr_print_string(ndr, "printername", r->printername);
7157 ndr_print_ptr(ndr, "servername", r->servername);
7159 if (r->servername) {
7160 ndr_print_string(ndr, "servername", r->servername);
7163 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7167 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7169 if (ndr_flags & NDR_SCALARS) {
7170 NDR_CHECK(ndr_push_align(ndr, 4));
7171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7173 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7177 if (ndr_flags & NDR_BUFFERS) {
7178 if (r->printername) {
7179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7182 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7188 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7191 return NDR_ERR_SUCCESS;
7194 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7196 uint32_t _ptr_printername;
7197 TALLOC_CTX *_mem_save_printername_0;
7198 uint32_t _ptr_portname;
7199 TALLOC_CTX *_mem_save_portname_0;
7200 if (ndr_flags & NDR_SCALARS) {
7201 NDR_CHECK(ndr_pull_align(ndr, 4));
7202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7203 if (_ptr_printername) {
7204 NDR_PULL_ALLOC(ndr, r->printername);
7206 r->printername = NULL;
7208 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7209 if (_ptr_portname) {
7210 NDR_PULL_ALLOC(ndr, r->portname);
7214 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7218 if (ndr_flags & NDR_BUFFERS) {
7219 if (r->printername) {
7220 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7221 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7222 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7223 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7224 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7225 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));
7227 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7228 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7232 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7233 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7234 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7235 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7236 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7237 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));
7239 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7240 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7244 return NDR_ERR_SUCCESS;
7247 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7249 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7251 ndr_print_ptr(ndr, "printername", r->printername);
7253 if (r->printername) {
7254 ndr_print_string(ndr, "printername", r->printername);
7257 ndr_print_ptr(ndr, "portname", r->portname);
7260 ndr_print_string(ndr, "portname", r->portname);
7263 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7264 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7265 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7269 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7271 if (ndr_flags & NDR_SCALARS) {
7272 NDR_CHECK(ndr_push_align(ndr, 4));
7273 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7275 if (ndr_flags & NDR_BUFFERS) {
7277 return NDR_ERR_SUCCESS;
7280 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7282 if (ndr_flags & NDR_SCALARS) {
7283 NDR_CHECK(ndr_pull_align(ndr, 4));
7284 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7286 if (ndr_flags & NDR_BUFFERS) {
7288 return NDR_ERR_SUCCESS;
7291 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7293 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7295 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7299 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7301 if (ndr_flags & NDR_SCALARS) {
7302 NDR_CHECK(ndr_push_align(ndr, 4));
7303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7304 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7306 if (ndr_flags & NDR_BUFFERS) {
7308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7311 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7314 return NDR_ERR_SUCCESS;
7317 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7320 TALLOC_CTX *_mem_save_guid_0;
7321 if (ndr_flags & NDR_SCALARS) {
7322 NDR_CHECK(ndr_pull_align(ndr, 4));
7323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7325 NDR_PULL_ALLOC(ndr, r->guid);
7329 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7331 if (ndr_flags & NDR_BUFFERS) {
7333 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7334 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7335 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7336 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7337 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7338 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));
7340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7345 return NDR_ERR_SUCCESS;
7348 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7350 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7352 ndr_print_ptr(ndr, "guid", r->guid);
7355 ndr_print_string(ndr, "guid", r->guid);
7358 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7362 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7364 if (ndr_flags & NDR_SCALARS) {
7365 int level = ndr_push_get_switch_value(ndr, r);
7366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7369 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7401 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7413 if (ndr_flags & NDR_BUFFERS) {
7414 int level = ndr_push_get_switch_value(ndr, r);
7418 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7424 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7430 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7436 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7442 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7448 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7454 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7460 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7466 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7472 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7481 return NDR_ERR_SUCCESS;
7484 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7488 TALLOC_CTX *_mem_save_info0_0;
7489 TALLOC_CTX *_mem_save_info1_0;
7490 TALLOC_CTX *_mem_save_info2_0;
7491 TALLOC_CTX *_mem_save_info3_0;
7492 TALLOC_CTX *_mem_save_info4_0;
7493 TALLOC_CTX *_mem_save_info5_0;
7494 TALLOC_CTX *_mem_save_info6_0;
7495 TALLOC_CTX *_mem_save_info7_0;
7496 TALLOC_CTX *_mem_save_info8_0;
7497 TALLOC_CTX *_mem_save_info9_0;
7498 level = ndr_pull_get_switch_value(ndr, r);
7499 if (ndr_flags & NDR_SCALARS) {
7500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7501 if (_level != level) {
7502 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7506 uint32_t _ptr_info0;
7507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7509 NDR_PULL_ALLOC(ndr, r->info0);
7516 uint32_t _ptr_info1;
7517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7519 NDR_PULL_ALLOC(ndr, r->info1);
7526 uint32_t _ptr_info2;
7527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7529 NDR_PULL_ALLOC(ndr, r->info2);
7536 uint32_t _ptr_info3;
7537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7539 NDR_PULL_ALLOC(ndr, r->info3);
7546 uint32_t _ptr_info4;
7547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7549 NDR_PULL_ALLOC(ndr, r->info4);
7556 uint32_t _ptr_info5;
7557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7559 NDR_PULL_ALLOC(ndr, r->info5);
7566 uint32_t _ptr_info6;
7567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7569 NDR_PULL_ALLOC(ndr, r->info6);
7576 uint32_t _ptr_info7;
7577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7579 NDR_PULL_ALLOC(ndr, r->info7);
7586 uint32_t _ptr_info8;
7587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7589 NDR_PULL_ALLOC(ndr, r->info8);
7596 uint32_t _ptr_info9;
7597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7599 NDR_PULL_ALLOC(ndr, r->info9);
7610 if (ndr_flags & NDR_BUFFERS) {
7614 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7615 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7616 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7623 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7624 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7625 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7632 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7633 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7634 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7641 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7642 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7643 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7650 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7651 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7652 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7659 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7660 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7661 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7668 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7669 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7670 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7677 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7678 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7679 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7686 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7687 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7688 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7695 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7696 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7697 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7707 return NDR_ERR_SUCCESS;
7710 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7713 level = ndr_print_get_switch_value(ndr, r);
7714 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7717 ndr_print_ptr(ndr, "info0", r->info0);
7720 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7726 ndr_print_ptr(ndr, "info1", r->info1);
7729 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7735 ndr_print_ptr(ndr, "info2", r->info2);
7738 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7744 ndr_print_ptr(ndr, "info3", r->info3);
7747 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7753 ndr_print_ptr(ndr, "info4", r->info4);
7756 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7762 ndr_print_ptr(ndr, "info5", r->info5);
7765 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7771 ndr_print_ptr(ndr, "info6", r->info6);
7774 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7780 ndr_print_ptr(ndr, "info7", r->info7);
7783 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7789 ndr_print_ptr(ndr, "info8", r->info8);
7792 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7798 ndr_print_ptr(ndr, "info9", r->info9);
7801 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7812 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7814 if (ndr_flags & NDR_SCALARS) {
7815 NDR_CHECK(ndr_push_align(ndr, 4));
7816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7817 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7818 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7820 if (ndr_flags & NDR_BUFFERS) {
7821 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7823 return NDR_ERR_SUCCESS;
7826 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7828 if (ndr_flags & NDR_SCALARS) {
7829 NDR_CHECK(ndr_pull_align(ndr, 4));
7830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7831 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7832 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7834 if (ndr_flags & NDR_BUFFERS) {
7835 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7837 return NDR_ERR_SUCCESS;
7840 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7842 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7844 ndr_print_uint32(ndr, "level", r->level);
7845 ndr_print_set_switch_value(ndr, &r->info, r->level);
7846 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7850 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7852 if (ndr_flags & NDR_SCALARS) {
7853 NDR_CHECK(ndr_push_align(ndr, 4));
7854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7856 uint32_t _flags_save_string_array = ndr->flags;
7857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7858 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7859 ndr->flags = _flags_save_string_array;
7862 if (ndr_flags & NDR_BUFFERS) {
7864 return NDR_ERR_SUCCESS;
7867 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7869 if (ndr_flags & NDR_SCALARS) {
7870 NDR_CHECK(ndr_pull_align(ndr, 4));
7871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7873 uint32_t _flags_save_string_array = ndr->flags;
7874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7875 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7876 ndr->flags = _flags_save_string_array;
7879 if (ndr_flags & NDR_BUFFERS) {
7881 return NDR_ERR_SUCCESS;
7884 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7886 ndr_print_struct(ndr, name, "spoolss_StringArray");
7888 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);
7889 ndr_print_string_array(ndr, "string", r->string);
7893 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7895 if (ndr_flags & NDR_SCALARS) {
7896 NDR_CHECK(ndr_push_align(ndr, 4));
7897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7899 if (ndr_flags & NDR_BUFFERS) {
7900 if (r->driver_name) {
7901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7904 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7907 return NDR_ERR_SUCCESS;
7910 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7912 uint32_t _ptr_driver_name;
7913 TALLOC_CTX *_mem_save_driver_name_0;
7914 if (ndr_flags & NDR_SCALARS) {
7915 NDR_CHECK(ndr_pull_align(ndr, 4));
7916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7917 if (_ptr_driver_name) {
7918 NDR_PULL_ALLOC(ndr, r->driver_name);
7920 r->driver_name = NULL;
7923 if (ndr_flags & NDR_BUFFERS) {
7924 if (r->driver_name) {
7925 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7926 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7927 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7928 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7929 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7930 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));
7932 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7937 return NDR_ERR_SUCCESS;
7940 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7942 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7944 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7946 if (r->driver_name) {
7947 ndr_print_string(ndr, "driver_name", r->driver_name);
7953 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7956 return NDR_ERR_SUCCESS;
7959 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7964 return NDR_ERR_SUCCESS;
7967 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7969 const char *val = NULL;
7972 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7973 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7974 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7975 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7977 ndr_print_enum(ndr, name, "ENUM", val, r);
7980 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7982 if (ndr_flags & NDR_SCALARS) {
7983 NDR_CHECK(ndr_push_align(ndr, 4));
7984 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7991 if (ndr_flags & NDR_BUFFERS) {
7992 if (r->driver_name) {
7993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7996 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7998 if (r->architecture) {
7999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8002 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8004 if (r->driver_path) {
8005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8008 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8016 if (r->config_file) {
8017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8023 return NDR_ERR_SUCCESS;
8026 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8028 uint32_t _ptr_driver_name;
8029 TALLOC_CTX *_mem_save_driver_name_0;
8030 uint32_t _ptr_architecture;
8031 TALLOC_CTX *_mem_save_architecture_0;
8032 uint32_t _ptr_driver_path;
8033 TALLOC_CTX *_mem_save_driver_path_0;
8034 uint32_t _ptr_data_file;
8035 TALLOC_CTX *_mem_save_data_file_0;
8036 uint32_t _ptr_config_file;
8037 TALLOC_CTX *_mem_save_config_file_0;
8038 if (ndr_flags & NDR_SCALARS) {
8039 NDR_CHECK(ndr_pull_align(ndr, 4));
8040 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8042 if (_ptr_driver_name) {
8043 NDR_PULL_ALLOC(ndr, r->driver_name);
8045 r->driver_name = NULL;
8047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8048 if (_ptr_architecture) {
8049 NDR_PULL_ALLOC(ndr, r->architecture);
8051 r->architecture = NULL;
8053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8054 if (_ptr_driver_path) {
8055 NDR_PULL_ALLOC(ndr, r->driver_path);
8057 r->driver_path = NULL;
8059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8060 if (_ptr_data_file) {
8061 NDR_PULL_ALLOC(ndr, r->data_file);
8063 r->data_file = NULL;
8065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8066 if (_ptr_config_file) {
8067 NDR_PULL_ALLOC(ndr, r->config_file);
8069 r->config_file = NULL;
8072 if (ndr_flags & NDR_BUFFERS) {
8073 if (r->driver_name) {
8074 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8075 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8076 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8077 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8078 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8079 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));
8081 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8082 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8085 if (r->architecture) {
8086 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8087 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8088 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8089 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8090 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8091 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));
8093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8097 if (r->driver_path) {
8098 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8099 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8100 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8101 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8102 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8103 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));
8105 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8106 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8110 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8111 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8112 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8113 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8114 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8115 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));
8117 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8118 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8121 if (r->config_file) {
8122 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8123 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8124 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8125 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8126 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8127 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));
8129 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8130 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8134 return NDR_ERR_SUCCESS;
8137 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8139 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8141 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8142 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8144 if (r->driver_name) {
8145 ndr_print_string(ndr, "driver_name", r->driver_name);
8148 ndr_print_ptr(ndr, "architecture", r->architecture);
8150 if (r->architecture) {
8151 ndr_print_string(ndr, "architecture", r->architecture);
8154 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8156 if (r->driver_path) {
8157 ndr_print_string(ndr, "driver_path", r->driver_path);
8160 ndr_print_ptr(ndr, "data_file", r->data_file);
8163 ndr_print_string(ndr, "data_file", r->data_file);
8166 ndr_print_ptr(ndr, "config_file", r->config_file);
8168 if (r->config_file) {
8169 ndr_print_string(ndr, "config_file", r->config_file);
8175 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8177 if (ndr_flags & NDR_SCALARS) {
8178 NDR_CHECK(ndr_push_align(ndr, 4));
8179 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8191 if (ndr_flags & NDR_BUFFERS) {
8192 if (r->driver_name) {
8193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8196 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8198 if (r->architecture) {
8199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8204 if (r->driver_path) {
8205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8208 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8214 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8216 if (r->config_file) {
8217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8228 if (r->monitor_name) {
8229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8232 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8234 if (r->default_datatype) {
8235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8238 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8240 if (r->dependent_files) {
8241 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8244 return NDR_ERR_SUCCESS;
8247 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8249 uint32_t _ptr_driver_name;
8250 TALLOC_CTX *_mem_save_driver_name_0;
8251 uint32_t _ptr_architecture;
8252 TALLOC_CTX *_mem_save_architecture_0;
8253 uint32_t _ptr_driver_path;
8254 TALLOC_CTX *_mem_save_driver_path_0;
8255 uint32_t _ptr_data_file;
8256 TALLOC_CTX *_mem_save_data_file_0;
8257 uint32_t _ptr_config_file;
8258 TALLOC_CTX *_mem_save_config_file_0;
8259 uint32_t _ptr_help_file;
8260 TALLOC_CTX *_mem_save_help_file_0;
8261 uint32_t _ptr_monitor_name;
8262 TALLOC_CTX *_mem_save_monitor_name_0;
8263 uint32_t _ptr_default_datatype;
8264 TALLOC_CTX *_mem_save_default_datatype_0;
8265 uint32_t _ptr_dependent_files;
8266 TALLOC_CTX *_mem_save_dependent_files_0;
8267 if (ndr_flags & NDR_SCALARS) {
8268 NDR_CHECK(ndr_pull_align(ndr, 4));
8269 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8271 if (_ptr_driver_name) {
8272 NDR_PULL_ALLOC(ndr, r->driver_name);
8274 r->driver_name = NULL;
8276 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8277 if (_ptr_architecture) {
8278 NDR_PULL_ALLOC(ndr, r->architecture);
8280 r->architecture = NULL;
8282 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8283 if (_ptr_driver_path) {
8284 NDR_PULL_ALLOC(ndr, r->driver_path);
8286 r->driver_path = NULL;
8288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8289 if (_ptr_data_file) {
8290 NDR_PULL_ALLOC(ndr, r->data_file);
8292 r->data_file = NULL;
8294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8295 if (_ptr_config_file) {
8296 NDR_PULL_ALLOC(ndr, r->config_file);
8298 r->config_file = NULL;
8300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8301 if (_ptr_help_file) {
8302 NDR_PULL_ALLOC(ndr, r->help_file);
8304 r->help_file = NULL;
8306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8307 if (_ptr_monitor_name) {
8308 NDR_PULL_ALLOC(ndr, r->monitor_name);
8310 r->monitor_name = NULL;
8312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8313 if (_ptr_default_datatype) {
8314 NDR_PULL_ALLOC(ndr, r->default_datatype);
8316 r->default_datatype = NULL;
8318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8319 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8320 if (_ptr_dependent_files) {
8321 NDR_PULL_ALLOC(ndr, r->dependent_files);
8323 r->dependent_files = NULL;
8326 if (ndr_flags & NDR_BUFFERS) {
8327 if (r->driver_name) {
8328 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8329 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8330 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8331 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8332 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8333 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));
8335 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8336 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8339 if (r->architecture) {
8340 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8341 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8342 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8343 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8344 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8345 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));
8347 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8348 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8351 if (r->driver_path) {
8352 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8353 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8354 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8355 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8356 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8357 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));
8359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8364 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8365 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8366 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8367 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8368 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8369 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));
8371 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8372 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8375 if (r->config_file) {
8376 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8377 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8378 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8379 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8380 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8381 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));
8383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8388 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8389 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8390 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8391 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8392 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8393 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));
8395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8399 if (r->monitor_name) {
8400 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8401 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8402 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8403 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8404 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8405 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));
8407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8411 if (r->default_datatype) {
8412 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8413 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8414 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8415 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8416 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8417 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));
8419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8423 if (r->dependent_files) {
8424 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8425 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8426 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8430 return NDR_ERR_SUCCESS;
8433 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8435 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8437 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8438 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8440 if (r->driver_name) {
8441 ndr_print_string(ndr, "driver_name", r->driver_name);
8444 ndr_print_ptr(ndr, "architecture", r->architecture);
8446 if (r->architecture) {
8447 ndr_print_string(ndr, "architecture", r->architecture);
8450 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8452 if (r->driver_path) {
8453 ndr_print_string(ndr, "driver_path", r->driver_path);
8456 ndr_print_ptr(ndr, "data_file", r->data_file);
8459 ndr_print_string(ndr, "data_file", r->data_file);
8462 ndr_print_ptr(ndr, "config_file", r->config_file);
8464 if (r->config_file) {
8465 ndr_print_string(ndr, "config_file", r->config_file);
8468 ndr_print_ptr(ndr, "help_file", r->help_file);
8471 ndr_print_string(ndr, "help_file", r->help_file);
8474 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8476 if (r->monitor_name) {
8477 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8480 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8482 if (r->default_datatype) {
8483 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8486 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);
8487 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8489 if (r->dependent_files) {
8490 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8496 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8498 if (ndr_flags & NDR_SCALARS) {
8499 NDR_CHECK(ndr_push_align(ndr, 4));
8500 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8503 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8504 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8505 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8514 if (ndr_flags & NDR_BUFFERS) {
8515 if (r->driver_name) {
8516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8519 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8521 if (r->architecture) {
8522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8525 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8527 if (r->driver_path) {
8528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8531 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8537 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8539 if (r->config_file) {
8540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8543 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8549 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8551 if (r->monitor_name) {
8552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8555 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8557 if (r->default_datatype) {
8558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8563 if (r->dependent_files) {
8564 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8566 if (r->previous_names) {
8567 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8570 return NDR_ERR_SUCCESS;
8573 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8575 uint32_t _ptr_driver_name;
8576 TALLOC_CTX *_mem_save_driver_name_0;
8577 uint32_t _ptr_architecture;
8578 TALLOC_CTX *_mem_save_architecture_0;
8579 uint32_t _ptr_driver_path;
8580 TALLOC_CTX *_mem_save_driver_path_0;
8581 uint32_t _ptr_data_file;
8582 TALLOC_CTX *_mem_save_data_file_0;
8583 uint32_t _ptr_config_file;
8584 TALLOC_CTX *_mem_save_config_file_0;
8585 uint32_t _ptr_help_file;
8586 TALLOC_CTX *_mem_save_help_file_0;
8587 uint32_t _ptr_monitor_name;
8588 TALLOC_CTX *_mem_save_monitor_name_0;
8589 uint32_t _ptr_default_datatype;
8590 TALLOC_CTX *_mem_save_default_datatype_0;
8591 uint32_t _ptr_dependent_files;
8592 TALLOC_CTX *_mem_save_dependent_files_0;
8593 uint32_t _ptr_previous_names;
8594 TALLOC_CTX *_mem_save_previous_names_0;
8595 if (ndr_flags & NDR_SCALARS) {
8596 NDR_CHECK(ndr_pull_align(ndr, 4));
8597 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8599 if (_ptr_driver_name) {
8600 NDR_PULL_ALLOC(ndr, r->driver_name);
8602 r->driver_name = NULL;
8604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8605 if (_ptr_architecture) {
8606 NDR_PULL_ALLOC(ndr, r->architecture);
8608 r->architecture = NULL;
8610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8611 if (_ptr_driver_path) {
8612 NDR_PULL_ALLOC(ndr, r->driver_path);
8614 r->driver_path = NULL;
8616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8617 if (_ptr_data_file) {
8618 NDR_PULL_ALLOC(ndr, r->data_file);
8620 r->data_file = NULL;
8622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8623 if (_ptr_config_file) {
8624 NDR_PULL_ALLOC(ndr, r->config_file);
8626 r->config_file = NULL;
8628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8629 if (_ptr_help_file) {
8630 NDR_PULL_ALLOC(ndr, r->help_file);
8632 r->help_file = NULL;
8634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8635 if (_ptr_monitor_name) {
8636 NDR_PULL_ALLOC(ndr, r->monitor_name);
8638 r->monitor_name = NULL;
8640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8641 if (_ptr_default_datatype) {
8642 NDR_PULL_ALLOC(ndr, r->default_datatype);
8644 r->default_datatype = NULL;
8646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8648 if (_ptr_dependent_files) {
8649 NDR_PULL_ALLOC(ndr, r->dependent_files);
8651 r->dependent_files = NULL;
8653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8655 if (_ptr_previous_names) {
8656 NDR_PULL_ALLOC(ndr, r->previous_names);
8658 r->previous_names = NULL;
8661 if (ndr_flags & NDR_BUFFERS) {
8662 if (r->driver_name) {
8663 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8664 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8665 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8666 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8667 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8668 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));
8670 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8671 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8674 if (r->architecture) {
8675 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8676 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8677 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8678 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8679 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8680 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));
8682 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8683 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8686 if (r->driver_path) {
8687 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8688 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8689 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8690 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8691 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8692 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));
8694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8699 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8700 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8701 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8702 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8703 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8704 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));
8706 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8707 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8710 if (r->config_file) {
8711 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8712 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8713 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8714 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8715 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8716 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));
8718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8723 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8724 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8725 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8726 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8727 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8728 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));
8730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8734 if (r->monitor_name) {
8735 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8736 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8737 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8738 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8739 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8740 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));
8742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8746 if (r->default_datatype) {
8747 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8748 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8749 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8750 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8751 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8752 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));
8754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8755 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8758 if (r->dependent_files) {
8759 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8760 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8761 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8764 if (r->previous_names) {
8765 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8766 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8767 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8771 return NDR_ERR_SUCCESS;
8774 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8776 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8778 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8779 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8781 if (r->driver_name) {
8782 ndr_print_string(ndr, "driver_name", r->driver_name);
8785 ndr_print_ptr(ndr, "architecture", r->architecture);
8787 if (r->architecture) {
8788 ndr_print_string(ndr, "architecture", r->architecture);
8791 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8793 if (r->driver_path) {
8794 ndr_print_string(ndr, "driver_path", r->driver_path);
8797 ndr_print_ptr(ndr, "data_file", r->data_file);
8800 ndr_print_string(ndr, "data_file", r->data_file);
8803 ndr_print_ptr(ndr, "config_file", r->config_file);
8805 if (r->config_file) {
8806 ndr_print_string(ndr, "config_file", r->config_file);
8809 ndr_print_ptr(ndr, "help_file", r->help_file);
8812 ndr_print_string(ndr, "help_file", r->help_file);
8815 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8817 if (r->monitor_name) {
8818 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8821 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8823 if (r->default_datatype) {
8824 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8827 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);
8828 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8830 if (r->dependent_files) {
8831 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8834 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);
8835 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8837 if (r->previous_names) {
8838 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8844 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8847 return NDR_ERR_SUCCESS;
8850 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8855 return NDR_ERR_SUCCESS;
8858 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8860 ndr_print_uint32(ndr, name, r);
8862 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
8866 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8868 if (ndr_flags & NDR_SCALARS) {
8869 NDR_CHECK(ndr_push_align(ndr, 8));
8870 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8871 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8878 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8882 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8883 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8884 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8885 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8886 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8887 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8890 if (ndr_flags & NDR_BUFFERS) {
8891 if (r->driver_name) {
8892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8895 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8897 if (r->architecture) {
8898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8901 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8903 if (r->driver_path) {
8904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8907 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8913 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8915 if (r->config_file) {
8916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8919 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8925 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8927 if (r->monitor_name) {
8928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8931 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8933 if (r->default_datatype) {
8934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8937 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8939 if (r->dependent_files) {
8940 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8942 if (r->previous_names) {
8943 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8945 if (r->manufacturer_name) {
8946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8949 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8951 if (r->manufacturer_url) {
8952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8955 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8957 if (r->hardware_id) {
8958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8961 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8967 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8970 return NDR_ERR_SUCCESS;
8973 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8975 uint32_t _ptr_driver_name;
8976 TALLOC_CTX *_mem_save_driver_name_0;
8977 uint32_t _ptr_architecture;
8978 TALLOC_CTX *_mem_save_architecture_0;
8979 uint32_t _ptr_driver_path;
8980 TALLOC_CTX *_mem_save_driver_path_0;
8981 uint32_t _ptr_data_file;
8982 TALLOC_CTX *_mem_save_data_file_0;
8983 uint32_t _ptr_config_file;
8984 TALLOC_CTX *_mem_save_config_file_0;
8985 uint32_t _ptr_help_file;
8986 TALLOC_CTX *_mem_save_help_file_0;
8987 uint32_t _ptr_monitor_name;
8988 TALLOC_CTX *_mem_save_monitor_name_0;
8989 uint32_t _ptr_default_datatype;
8990 TALLOC_CTX *_mem_save_default_datatype_0;
8991 uint32_t _ptr_dependent_files;
8992 TALLOC_CTX *_mem_save_dependent_files_0;
8993 uint32_t _ptr_previous_names;
8994 TALLOC_CTX *_mem_save_previous_names_0;
8995 uint32_t _ptr_manufacturer_name;
8996 TALLOC_CTX *_mem_save_manufacturer_name_0;
8997 uint32_t _ptr_manufacturer_url;
8998 TALLOC_CTX *_mem_save_manufacturer_url_0;
8999 uint32_t _ptr_hardware_id;
9000 TALLOC_CTX *_mem_save_hardware_id_0;
9001 uint32_t _ptr_provider;
9002 TALLOC_CTX *_mem_save_provider_0;
9003 if (ndr_flags & NDR_SCALARS) {
9004 NDR_CHECK(ndr_pull_align(ndr, 8));
9005 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9007 if (_ptr_driver_name) {
9008 NDR_PULL_ALLOC(ndr, r->driver_name);
9010 r->driver_name = NULL;
9012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9013 if (_ptr_architecture) {
9014 NDR_PULL_ALLOC(ndr, r->architecture);
9016 r->architecture = NULL;
9018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9019 if (_ptr_driver_path) {
9020 NDR_PULL_ALLOC(ndr, r->driver_path);
9022 r->driver_path = NULL;
9024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9025 if (_ptr_data_file) {
9026 NDR_PULL_ALLOC(ndr, r->data_file);
9028 r->data_file = NULL;
9030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9031 if (_ptr_config_file) {
9032 NDR_PULL_ALLOC(ndr, r->config_file);
9034 r->config_file = NULL;
9036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9037 if (_ptr_help_file) {
9038 NDR_PULL_ALLOC(ndr, r->help_file);
9040 r->help_file = NULL;
9042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9043 if (_ptr_monitor_name) {
9044 NDR_PULL_ALLOC(ndr, r->monitor_name);
9046 r->monitor_name = NULL;
9048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9049 if (_ptr_default_datatype) {
9050 NDR_PULL_ALLOC(ndr, r->default_datatype);
9052 r->default_datatype = NULL;
9054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9056 if (_ptr_dependent_files) {
9057 NDR_PULL_ALLOC(ndr, r->dependent_files);
9059 r->dependent_files = NULL;
9061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9063 if (_ptr_previous_names) {
9064 NDR_PULL_ALLOC(ndr, r->previous_names);
9066 r->previous_names = NULL;
9068 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9069 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9071 if (_ptr_manufacturer_name) {
9072 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9074 r->manufacturer_name = NULL;
9076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9077 if (_ptr_manufacturer_url) {
9078 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9080 r->manufacturer_url = NULL;
9082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9083 if (_ptr_hardware_id) {
9084 NDR_PULL_ALLOC(ndr, r->hardware_id);
9086 r->hardware_id = NULL;
9088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9089 if (_ptr_provider) {
9090 NDR_PULL_ALLOC(ndr, r->provider);
9095 if (ndr_flags & NDR_BUFFERS) {
9096 if (r->driver_name) {
9097 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9098 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9099 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9100 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9101 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9102 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));
9104 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9105 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9108 if (r->architecture) {
9109 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9110 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9111 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9112 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9113 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9114 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));
9116 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9117 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9120 if (r->driver_path) {
9121 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9122 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9123 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9124 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9125 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9126 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));
9128 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9133 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9134 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9135 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9136 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9137 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9138 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));
9140 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9141 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9144 if (r->config_file) {
9145 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9146 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9147 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9148 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9149 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9150 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));
9152 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9153 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9157 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9158 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9159 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9160 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9161 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9162 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));
9164 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9165 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9168 if (r->monitor_name) {
9169 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9170 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9171 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9172 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9173 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9174 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));
9176 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9177 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9180 if (r->default_datatype) {
9181 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9182 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9183 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9184 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9185 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9186 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));
9188 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9189 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9192 if (r->dependent_files) {
9193 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9194 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9195 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9198 if (r->previous_names) {
9199 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9200 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9201 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9204 if (r->manufacturer_name) {
9205 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9206 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9207 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9208 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9209 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9210 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));
9212 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9213 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9216 if (r->manufacturer_url) {
9217 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9218 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9219 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9220 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9221 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9222 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));
9224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9228 if (r->hardware_id) {
9229 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9230 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9231 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9232 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9233 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9234 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));
9236 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9241 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9242 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9243 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9244 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9245 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9246 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));
9248 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9249 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9253 return NDR_ERR_SUCCESS;
9256 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9258 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9260 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9261 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9263 if (r->driver_name) {
9264 ndr_print_string(ndr, "driver_name", r->driver_name);
9267 ndr_print_ptr(ndr, "architecture", r->architecture);
9269 if (r->architecture) {
9270 ndr_print_string(ndr, "architecture", r->architecture);
9273 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9275 if (r->driver_path) {
9276 ndr_print_string(ndr, "driver_path", r->driver_path);
9279 ndr_print_ptr(ndr, "data_file", r->data_file);
9282 ndr_print_string(ndr, "data_file", r->data_file);
9285 ndr_print_ptr(ndr, "config_file", r->config_file);
9287 if (r->config_file) {
9288 ndr_print_string(ndr, "config_file", r->config_file);
9291 ndr_print_ptr(ndr, "help_file", r->help_file);
9294 ndr_print_string(ndr, "help_file", r->help_file);
9297 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9299 if (r->monitor_name) {
9300 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9303 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9305 if (r->default_datatype) {
9306 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9309 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);
9310 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9312 if (r->dependent_files) {
9313 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9316 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);
9317 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9319 if (r->previous_names) {
9320 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9323 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9324 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9325 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9327 if (r->manufacturer_name) {
9328 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9331 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9333 if (r->manufacturer_url) {
9334 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9337 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9339 if (r->hardware_id) {
9340 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9343 ndr_print_ptr(ndr, "provider", r->provider);
9346 ndr_print_string(ndr, "provider", r->provider);
9352 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9354 if (ndr_flags & NDR_SCALARS) {
9355 NDR_CHECK(ndr_push_align(ndr, 8));
9356 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9368 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9369 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9370 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9371 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9376 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9378 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9383 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9384 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9386 if (ndr_flags & NDR_BUFFERS) {
9387 if (r->driver_name) {
9388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9391 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9393 if (r->architecture) {
9394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9397 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9399 if (r->driver_path) {
9400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9409 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9411 if (r->config_file) {
9412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9423 if (r->monitor_name) {
9424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9429 if (r->default_datatype) {
9430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9435 if (r->dependent_files) {
9436 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9438 if (r->previous_names) {
9439 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9441 if (r->manufacturer_name) {
9442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9447 if (r->manufacturer_url) {
9448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9453 if (r->hardware_id) {
9454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9465 if (r->print_processor) {
9466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9471 if (r->vendor_setup) {
9472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9475 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9477 if (r->color_profiles) {
9478 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9484 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9486 if (r->core_driver_dependencies) {
9487 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9490 return NDR_ERR_SUCCESS;
9493 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9495 uint32_t _ptr_driver_name;
9496 TALLOC_CTX *_mem_save_driver_name_0;
9497 uint32_t _ptr_architecture;
9498 TALLOC_CTX *_mem_save_architecture_0;
9499 uint32_t _ptr_driver_path;
9500 TALLOC_CTX *_mem_save_driver_path_0;
9501 uint32_t _ptr_data_file;
9502 TALLOC_CTX *_mem_save_data_file_0;
9503 uint32_t _ptr_config_file;
9504 TALLOC_CTX *_mem_save_config_file_0;
9505 uint32_t _ptr_help_file;
9506 TALLOC_CTX *_mem_save_help_file_0;
9507 uint32_t _ptr_monitor_name;
9508 TALLOC_CTX *_mem_save_monitor_name_0;
9509 uint32_t _ptr_default_datatype;
9510 TALLOC_CTX *_mem_save_default_datatype_0;
9511 uint32_t _ptr_dependent_files;
9512 TALLOC_CTX *_mem_save_dependent_files_0;
9513 uint32_t _ptr_previous_names;
9514 TALLOC_CTX *_mem_save_previous_names_0;
9515 uint32_t _ptr_manufacturer_name;
9516 TALLOC_CTX *_mem_save_manufacturer_name_0;
9517 uint32_t _ptr_manufacturer_url;
9518 TALLOC_CTX *_mem_save_manufacturer_url_0;
9519 uint32_t _ptr_hardware_id;
9520 TALLOC_CTX *_mem_save_hardware_id_0;
9521 uint32_t _ptr_provider;
9522 TALLOC_CTX *_mem_save_provider_0;
9523 uint32_t _ptr_print_processor;
9524 TALLOC_CTX *_mem_save_print_processor_0;
9525 uint32_t _ptr_vendor_setup;
9526 TALLOC_CTX *_mem_save_vendor_setup_0;
9527 uint32_t _ptr_color_profiles;
9528 TALLOC_CTX *_mem_save_color_profiles_0;
9529 uint32_t _ptr_inf_path;
9530 TALLOC_CTX *_mem_save_inf_path_0;
9531 uint32_t _ptr_core_driver_dependencies;
9532 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9533 if (ndr_flags & NDR_SCALARS) {
9534 NDR_CHECK(ndr_pull_align(ndr, 8));
9535 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9537 if (_ptr_driver_name) {
9538 NDR_PULL_ALLOC(ndr, r->driver_name);
9540 r->driver_name = NULL;
9542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9543 if (_ptr_architecture) {
9544 NDR_PULL_ALLOC(ndr, r->architecture);
9546 r->architecture = NULL;
9548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9549 if (_ptr_driver_path) {
9550 NDR_PULL_ALLOC(ndr, r->driver_path);
9552 r->driver_path = NULL;
9554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9555 if (_ptr_data_file) {
9556 NDR_PULL_ALLOC(ndr, r->data_file);
9558 r->data_file = NULL;
9560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9561 if (_ptr_config_file) {
9562 NDR_PULL_ALLOC(ndr, r->config_file);
9564 r->config_file = NULL;
9566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9567 if (_ptr_help_file) {
9568 NDR_PULL_ALLOC(ndr, r->help_file);
9570 r->help_file = NULL;
9572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9573 if (_ptr_monitor_name) {
9574 NDR_PULL_ALLOC(ndr, r->monitor_name);
9576 r->monitor_name = NULL;
9578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9579 if (_ptr_default_datatype) {
9580 NDR_PULL_ALLOC(ndr, r->default_datatype);
9582 r->default_datatype = NULL;
9584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9586 if (_ptr_dependent_files) {
9587 NDR_PULL_ALLOC(ndr, r->dependent_files);
9589 r->dependent_files = NULL;
9591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9593 if (_ptr_previous_names) {
9594 NDR_PULL_ALLOC(ndr, r->previous_names);
9596 r->previous_names = NULL;
9598 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9599 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9601 if (_ptr_manufacturer_name) {
9602 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9604 r->manufacturer_name = NULL;
9606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9607 if (_ptr_manufacturer_url) {
9608 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9610 r->manufacturer_url = NULL;
9612 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9613 if (_ptr_hardware_id) {
9614 NDR_PULL_ALLOC(ndr, r->hardware_id);
9616 r->hardware_id = NULL;
9618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9619 if (_ptr_provider) {
9620 NDR_PULL_ALLOC(ndr, r->provider);
9624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9625 if (_ptr_print_processor) {
9626 NDR_PULL_ALLOC(ndr, r->print_processor);
9628 r->print_processor = NULL;
9630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9631 if (_ptr_vendor_setup) {
9632 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9634 r->vendor_setup = NULL;
9636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9638 if (_ptr_color_profiles) {
9639 NDR_PULL_ALLOC(ndr, r->color_profiles);
9641 r->color_profiles = NULL;
9643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9644 if (_ptr_inf_path) {
9645 NDR_PULL_ALLOC(ndr, r->inf_path);
9649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9652 if (_ptr_core_driver_dependencies) {
9653 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9655 r->core_driver_dependencies = NULL;
9657 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9658 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9660 if (ndr_flags & NDR_BUFFERS) {
9661 if (r->driver_name) {
9662 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9663 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9664 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9665 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9666 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9667 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));
9669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9673 if (r->architecture) {
9674 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9675 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9676 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9677 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9678 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9679 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));
9681 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9682 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9685 if (r->driver_path) {
9686 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9687 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9688 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9689 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9690 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9691 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));
9693 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9698 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9699 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9700 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9701 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9702 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9703 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));
9705 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9706 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9709 if (r->config_file) {
9710 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9711 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9712 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9713 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9714 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9715 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));
9717 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9718 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9722 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9723 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9724 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9725 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9726 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9727 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));
9729 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9730 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9733 if (r->monitor_name) {
9734 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9735 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9736 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9737 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9738 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9739 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));
9741 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9742 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9745 if (r->default_datatype) {
9746 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9747 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9748 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9749 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9750 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9751 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));
9753 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9754 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9757 if (r->dependent_files) {
9758 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9759 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9760 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9763 if (r->previous_names) {
9764 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9765 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9766 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9769 if (r->manufacturer_name) {
9770 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9771 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9772 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9773 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9774 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9775 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));
9777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9781 if (r->manufacturer_url) {
9782 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9783 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9784 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9785 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9786 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9787 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));
9789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9793 if (r->hardware_id) {
9794 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9795 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9796 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9797 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9798 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9799 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));
9801 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9806 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9807 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9808 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9809 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9810 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9811 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));
9813 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9814 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9817 if (r->print_processor) {
9818 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9819 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9820 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9821 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9822 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9823 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));
9825 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9826 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9829 if (r->vendor_setup) {
9830 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9831 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9832 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9833 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9834 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9835 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));
9837 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9838 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9841 if (r->color_profiles) {
9842 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9843 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9844 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9848 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9849 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9850 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9851 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9852 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9853 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));
9855 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9856 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9859 if (r->core_driver_dependencies) {
9860 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9861 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9862 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9866 return NDR_ERR_SUCCESS;
9869 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9871 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9873 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9874 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9876 if (r->driver_name) {
9877 ndr_print_string(ndr, "driver_name", r->driver_name);
9880 ndr_print_ptr(ndr, "architecture", r->architecture);
9882 if (r->architecture) {
9883 ndr_print_string(ndr, "architecture", r->architecture);
9886 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9888 if (r->driver_path) {
9889 ndr_print_string(ndr, "driver_path", r->driver_path);
9892 ndr_print_ptr(ndr, "data_file", r->data_file);
9895 ndr_print_string(ndr, "data_file", r->data_file);
9898 ndr_print_ptr(ndr, "config_file", r->config_file);
9900 if (r->config_file) {
9901 ndr_print_string(ndr, "config_file", r->config_file);
9904 ndr_print_ptr(ndr, "help_file", r->help_file);
9907 ndr_print_string(ndr, "help_file", r->help_file);
9910 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9912 if (r->monitor_name) {
9913 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9916 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9918 if (r->default_datatype) {
9919 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9922 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);
9923 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9925 if (r->dependent_files) {
9926 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9929 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);
9930 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9932 if (r->previous_names) {
9933 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9936 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9937 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9938 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9940 if (r->manufacturer_name) {
9941 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9944 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9946 if (r->manufacturer_url) {
9947 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9950 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9952 if (r->hardware_id) {
9953 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9956 ndr_print_ptr(ndr, "provider", r->provider);
9959 ndr_print_string(ndr, "provider", r->provider);
9962 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9964 if (r->print_processor) {
9965 ndr_print_string(ndr, "print_processor", r->print_processor);
9968 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9970 if (r->vendor_setup) {
9971 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9974 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);
9975 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9977 if (r->color_profiles) {
9978 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9981 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9984 ndr_print_string(ndr, "inf_path", r->inf_path);
9987 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9988 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);
9989 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9991 if (r->core_driver_dependencies) {
9992 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9995 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9996 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10000 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10002 if (ndr_flags & NDR_SCALARS) {
10003 int level = ndr_push_get_switch_value(ndr, r);
10004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10007 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10023 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10031 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10034 if (ndr_flags & NDR_BUFFERS) {
10035 int level = ndr_push_get_switch_value(ndr, r);
10039 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10045 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10051 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10057 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10063 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10069 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10074 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10077 return NDR_ERR_SUCCESS;
10080 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10084 TALLOC_CTX *_mem_save_info1_0;
10085 TALLOC_CTX *_mem_save_info2_0;
10086 TALLOC_CTX *_mem_save_info3_0;
10087 TALLOC_CTX *_mem_save_info4_0;
10088 TALLOC_CTX *_mem_save_info6_0;
10089 TALLOC_CTX *_mem_save_info8_0;
10090 level = ndr_pull_get_switch_value(ndr, r);
10091 if (ndr_flags & NDR_SCALARS) {
10092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10093 if (_level != level) {
10094 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
10098 uint32_t _ptr_info1;
10099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10101 NDR_PULL_ALLOC(ndr, r->info1);
10108 uint32_t _ptr_info2;
10109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10111 NDR_PULL_ALLOC(ndr, r->info2);
10118 uint32_t _ptr_info3;
10119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10121 NDR_PULL_ALLOC(ndr, r->info3);
10128 uint32_t _ptr_info4;
10129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10131 NDR_PULL_ALLOC(ndr, r->info4);
10138 uint32_t _ptr_info6;
10139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10141 NDR_PULL_ALLOC(ndr, r->info6);
10148 uint32_t _ptr_info8;
10149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10151 NDR_PULL_ALLOC(ndr, r->info8);
10158 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10161 if (ndr_flags & NDR_BUFFERS) {
10165 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10166 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10167 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10174 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10175 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10176 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10183 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10184 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10185 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10192 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10193 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10194 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10201 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10202 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10203 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10210 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10211 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10212 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10218 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10221 return NDR_ERR_SUCCESS;
10224 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10227 level = ndr_print_get_switch_value(ndr, r);
10228 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10231 ndr_print_ptr(ndr, "info1", r->info1);
10234 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10240 ndr_print_ptr(ndr, "info2", r->info2);
10243 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10249 ndr_print_ptr(ndr, "info3", r->info3);
10252 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10258 ndr_print_ptr(ndr, "info4", r->info4);
10261 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10267 ndr_print_ptr(ndr, "info6", r->info6);
10270 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10276 ndr_print_ptr(ndr, "info8", r->info8);
10279 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10285 ndr_print_bad_level(ndr, name, level);
10289 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10291 if (ndr_flags & NDR_SCALARS) {
10292 NDR_CHECK(ndr_push_align(ndr, 4));
10293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10294 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10295 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10297 if (ndr_flags & NDR_BUFFERS) {
10298 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10300 return NDR_ERR_SUCCESS;
10303 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10305 if (ndr_flags & NDR_SCALARS) {
10306 NDR_CHECK(ndr_pull_align(ndr, 4));
10307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10308 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10309 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10311 if (ndr_flags & NDR_BUFFERS) {
10312 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10314 return NDR_ERR_SUCCESS;
10317 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10319 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10321 ndr_print_uint32(ndr, "level", r->level);
10322 ndr_print_set_switch_value(ndr, &r->info, r->level);
10323 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10327 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10329 if (ndr_flags & NDR_SCALARS) {
10330 NDR_CHECK(ndr_push_align(ndr, 4));
10332 uint32_t _flags_save_string = ndr->flags;
10333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10334 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10335 ndr->flags = _flags_save_string;
10338 if (ndr_flags & NDR_BUFFERS) {
10340 uint32_t _flags_save_string = ndr->flags;
10341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10342 if (r->driver_name) {
10343 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10344 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10346 ndr->flags = _flags_save_string;
10349 return NDR_ERR_SUCCESS;
10352 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10354 uint32_t _ptr_driver_name;
10355 TALLOC_CTX *_mem_save_driver_name_0;
10356 if (ndr_flags & NDR_SCALARS) {
10357 NDR_CHECK(ndr_pull_align(ndr, 4));
10359 uint32_t _flags_save_string = ndr->flags;
10360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10362 if (_ptr_driver_name) {
10363 NDR_PULL_ALLOC(ndr, r->driver_name);
10364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10366 r->driver_name = NULL;
10368 ndr->flags = _flags_save_string;
10371 if (ndr_flags & NDR_BUFFERS) {
10373 uint32_t _flags_save_string = ndr->flags;
10374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10375 if (r->driver_name) {
10376 uint32_t _relative_save_offset;
10377 _relative_save_offset = ndr->offset;
10378 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10379 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10380 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10381 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10383 ndr->offset = _relative_save_offset;
10385 ndr->flags = _flags_save_string;
10388 return NDR_ERR_SUCCESS;
10391 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10393 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10395 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10397 if (r->driver_name) {
10398 ndr_print_string(ndr, "driver_name", r->driver_name);
10404 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10406 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10409 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10411 if (ndr_flags & NDR_SCALARS) {
10412 NDR_CHECK(ndr_push_align(ndr, 4));
10413 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10415 uint32_t _flags_save_string = ndr->flags;
10416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10417 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10418 ndr->flags = _flags_save_string;
10421 uint32_t _flags_save_string = ndr->flags;
10422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10423 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10424 ndr->flags = _flags_save_string;
10427 uint32_t _flags_save_string = ndr->flags;
10428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10429 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10430 ndr->flags = _flags_save_string;
10433 uint32_t _flags_save_string = ndr->flags;
10434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10435 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10436 ndr->flags = _flags_save_string;
10439 uint32_t _flags_save_string = ndr->flags;
10440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10441 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10442 ndr->flags = _flags_save_string;
10445 if (ndr_flags & NDR_BUFFERS) {
10447 uint32_t _flags_save_string = ndr->flags;
10448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10449 if (r->driver_name) {
10450 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10451 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10453 ndr->flags = _flags_save_string;
10456 uint32_t _flags_save_string = ndr->flags;
10457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10458 if (r->architecture) {
10459 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10460 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10462 ndr->flags = _flags_save_string;
10465 uint32_t _flags_save_string = ndr->flags;
10466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10467 if (r->driver_path) {
10468 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10469 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10471 ndr->flags = _flags_save_string;
10474 uint32_t _flags_save_string = ndr->flags;
10475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10476 if (r->data_file) {
10477 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10478 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10480 ndr->flags = _flags_save_string;
10483 uint32_t _flags_save_string = ndr->flags;
10484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10485 if (r->config_file) {
10486 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10487 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10489 ndr->flags = _flags_save_string;
10492 return NDR_ERR_SUCCESS;
10495 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10497 uint32_t _ptr_driver_name;
10498 TALLOC_CTX *_mem_save_driver_name_0;
10499 uint32_t _ptr_architecture;
10500 TALLOC_CTX *_mem_save_architecture_0;
10501 uint32_t _ptr_driver_path;
10502 TALLOC_CTX *_mem_save_driver_path_0;
10503 uint32_t _ptr_data_file;
10504 TALLOC_CTX *_mem_save_data_file_0;
10505 uint32_t _ptr_config_file;
10506 TALLOC_CTX *_mem_save_config_file_0;
10507 if (ndr_flags & NDR_SCALARS) {
10508 NDR_CHECK(ndr_pull_align(ndr, 4));
10509 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10511 uint32_t _flags_save_string = ndr->flags;
10512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10514 if (_ptr_driver_name) {
10515 NDR_PULL_ALLOC(ndr, r->driver_name);
10516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10518 r->driver_name = NULL;
10520 ndr->flags = _flags_save_string;
10523 uint32_t _flags_save_string = ndr->flags;
10524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10526 if (_ptr_architecture) {
10527 NDR_PULL_ALLOC(ndr, r->architecture);
10528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10530 r->architecture = NULL;
10532 ndr->flags = _flags_save_string;
10535 uint32_t _flags_save_string = ndr->flags;
10536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10538 if (_ptr_driver_path) {
10539 NDR_PULL_ALLOC(ndr, r->driver_path);
10540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10542 r->driver_path = NULL;
10544 ndr->flags = _flags_save_string;
10547 uint32_t _flags_save_string = ndr->flags;
10548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10550 if (_ptr_data_file) {
10551 NDR_PULL_ALLOC(ndr, r->data_file);
10552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10554 r->data_file = NULL;
10556 ndr->flags = _flags_save_string;
10559 uint32_t _flags_save_string = ndr->flags;
10560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10562 if (_ptr_config_file) {
10563 NDR_PULL_ALLOC(ndr, r->config_file);
10564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10566 r->config_file = NULL;
10568 ndr->flags = _flags_save_string;
10571 if (ndr_flags & NDR_BUFFERS) {
10573 uint32_t _flags_save_string = ndr->flags;
10574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10575 if (r->driver_name) {
10576 uint32_t _relative_save_offset;
10577 _relative_save_offset = ndr->offset;
10578 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10579 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10580 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10581 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10583 ndr->offset = _relative_save_offset;
10585 ndr->flags = _flags_save_string;
10588 uint32_t _flags_save_string = ndr->flags;
10589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10590 if (r->architecture) {
10591 uint32_t _relative_save_offset;
10592 _relative_save_offset = ndr->offset;
10593 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10594 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10595 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10596 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10598 ndr->offset = _relative_save_offset;
10600 ndr->flags = _flags_save_string;
10603 uint32_t _flags_save_string = ndr->flags;
10604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10605 if (r->driver_path) {
10606 uint32_t _relative_save_offset;
10607 _relative_save_offset = ndr->offset;
10608 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10609 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10610 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10611 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10613 ndr->offset = _relative_save_offset;
10615 ndr->flags = _flags_save_string;
10618 uint32_t _flags_save_string = ndr->flags;
10619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10620 if (r->data_file) {
10621 uint32_t _relative_save_offset;
10622 _relative_save_offset = ndr->offset;
10623 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10624 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10625 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10626 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10628 ndr->offset = _relative_save_offset;
10630 ndr->flags = _flags_save_string;
10633 uint32_t _flags_save_string = ndr->flags;
10634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10635 if (r->config_file) {
10636 uint32_t _relative_save_offset;
10637 _relative_save_offset = ndr->offset;
10638 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10639 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10640 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10641 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10643 ndr->offset = _relative_save_offset;
10645 ndr->flags = _flags_save_string;
10648 return NDR_ERR_SUCCESS;
10651 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10653 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10655 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10656 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10658 if (r->driver_name) {
10659 ndr_print_string(ndr, "driver_name", r->driver_name);
10662 ndr_print_ptr(ndr, "architecture", r->architecture);
10664 if (r->architecture) {
10665 ndr_print_string(ndr, "architecture", r->architecture);
10668 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10670 if (r->driver_path) {
10671 ndr_print_string(ndr, "driver_path", r->driver_path);
10674 ndr_print_ptr(ndr, "data_file", r->data_file);
10676 if (r->data_file) {
10677 ndr_print_string(ndr, "data_file", r->data_file);
10680 ndr_print_ptr(ndr, "config_file", r->config_file);
10682 if (r->config_file) {
10683 ndr_print_string(ndr, "config_file", r->config_file);
10689 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10691 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10694 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10696 if (ndr_flags & NDR_SCALARS) {
10697 NDR_CHECK(ndr_push_align(ndr, 4));
10698 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10700 uint32_t _flags_save_string = ndr->flags;
10701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10702 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10703 ndr->flags = _flags_save_string;
10706 uint32_t _flags_save_string = ndr->flags;
10707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10708 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10709 ndr->flags = _flags_save_string;
10712 uint32_t _flags_save_string = ndr->flags;
10713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10714 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10715 ndr->flags = _flags_save_string;
10718 uint32_t _flags_save_string = ndr->flags;
10719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10720 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10721 ndr->flags = _flags_save_string;
10724 uint32_t _flags_save_string = ndr->flags;
10725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10726 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10727 ndr->flags = _flags_save_string;
10730 uint32_t _flags_save_string = ndr->flags;
10731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10732 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10733 ndr->flags = _flags_save_string;
10736 uint32_t _flags_save_string_array = ndr->flags;
10737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10738 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10739 ndr->flags = _flags_save_string_array;
10742 uint32_t _flags_save_string = ndr->flags;
10743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10744 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10745 ndr->flags = _flags_save_string;
10748 uint32_t _flags_save_string = ndr->flags;
10749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10751 ndr->flags = _flags_save_string;
10754 if (ndr_flags & NDR_BUFFERS) {
10756 uint32_t _flags_save_string = ndr->flags;
10757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10758 if (r->driver_name) {
10759 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10760 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10762 ndr->flags = _flags_save_string;
10765 uint32_t _flags_save_string = ndr->flags;
10766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10767 if (r->architecture) {
10768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10771 ndr->flags = _flags_save_string;
10774 uint32_t _flags_save_string = ndr->flags;
10775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10776 if (r->driver_path) {
10777 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10780 ndr->flags = _flags_save_string;
10783 uint32_t _flags_save_string = ndr->flags;
10784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10785 if (r->data_file) {
10786 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10787 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10789 ndr->flags = _flags_save_string;
10792 uint32_t _flags_save_string = ndr->flags;
10793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10794 if (r->config_file) {
10795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10798 ndr->flags = _flags_save_string;
10801 uint32_t _flags_save_string = ndr->flags;
10802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10803 if (r->help_file) {
10804 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10807 ndr->flags = _flags_save_string;
10810 uint32_t _flags_save_string_array = ndr->flags;
10811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10812 if (r->dependent_files) {
10813 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10814 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10816 ndr->flags = _flags_save_string_array;
10819 uint32_t _flags_save_string = ndr->flags;
10820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10821 if (r->monitor_name) {
10822 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10823 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10825 ndr->flags = _flags_save_string;
10828 uint32_t _flags_save_string = ndr->flags;
10829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10830 if (r->default_datatype) {
10831 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10832 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10834 ndr->flags = _flags_save_string;
10837 return NDR_ERR_SUCCESS;
10840 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10842 uint32_t _ptr_driver_name;
10843 TALLOC_CTX *_mem_save_driver_name_0;
10844 uint32_t _ptr_architecture;
10845 TALLOC_CTX *_mem_save_architecture_0;
10846 uint32_t _ptr_driver_path;
10847 TALLOC_CTX *_mem_save_driver_path_0;
10848 uint32_t _ptr_data_file;
10849 TALLOC_CTX *_mem_save_data_file_0;
10850 uint32_t _ptr_config_file;
10851 TALLOC_CTX *_mem_save_config_file_0;
10852 uint32_t _ptr_help_file;
10853 TALLOC_CTX *_mem_save_help_file_0;
10854 uint32_t _ptr_dependent_files;
10855 TALLOC_CTX *_mem_save_dependent_files_0;
10856 uint32_t _ptr_monitor_name;
10857 TALLOC_CTX *_mem_save_monitor_name_0;
10858 uint32_t _ptr_default_datatype;
10859 TALLOC_CTX *_mem_save_default_datatype_0;
10860 if (ndr_flags & NDR_SCALARS) {
10861 NDR_CHECK(ndr_pull_align(ndr, 4));
10862 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10864 uint32_t _flags_save_string = ndr->flags;
10865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10867 if (_ptr_driver_name) {
10868 NDR_PULL_ALLOC(ndr, r->driver_name);
10869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10871 r->driver_name = NULL;
10873 ndr->flags = _flags_save_string;
10876 uint32_t _flags_save_string = ndr->flags;
10877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10879 if (_ptr_architecture) {
10880 NDR_PULL_ALLOC(ndr, r->architecture);
10881 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10883 r->architecture = NULL;
10885 ndr->flags = _flags_save_string;
10888 uint32_t _flags_save_string = ndr->flags;
10889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10891 if (_ptr_driver_path) {
10892 NDR_PULL_ALLOC(ndr, r->driver_path);
10893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10895 r->driver_path = NULL;
10897 ndr->flags = _flags_save_string;
10900 uint32_t _flags_save_string = ndr->flags;
10901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10903 if (_ptr_data_file) {
10904 NDR_PULL_ALLOC(ndr, r->data_file);
10905 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10907 r->data_file = NULL;
10909 ndr->flags = _flags_save_string;
10912 uint32_t _flags_save_string = ndr->flags;
10913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10915 if (_ptr_config_file) {
10916 NDR_PULL_ALLOC(ndr, r->config_file);
10917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10919 r->config_file = NULL;
10921 ndr->flags = _flags_save_string;
10924 uint32_t _flags_save_string = ndr->flags;
10925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10927 if (_ptr_help_file) {
10928 NDR_PULL_ALLOC(ndr, r->help_file);
10929 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10931 r->help_file = NULL;
10933 ndr->flags = _flags_save_string;
10936 uint32_t _flags_save_string_array = ndr->flags;
10937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10939 if (_ptr_dependent_files) {
10940 NDR_PULL_ALLOC(ndr, r->dependent_files);
10941 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10943 r->dependent_files = NULL;
10945 ndr->flags = _flags_save_string_array;
10948 uint32_t _flags_save_string = ndr->flags;
10949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10951 if (_ptr_monitor_name) {
10952 NDR_PULL_ALLOC(ndr, r->monitor_name);
10953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10955 r->monitor_name = NULL;
10957 ndr->flags = _flags_save_string;
10960 uint32_t _flags_save_string = ndr->flags;
10961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10963 if (_ptr_default_datatype) {
10964 NDR_PULL_ALLOC(ndr, r->default_datatype);
10965 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10967 r->default_datatype = NULL;
10969 ndr->flags = _flags_save_string;
10972 if (ndr_flags & NDR_BUFFERS) {
10974 uint32_t _flags_save_string = ndr->flags;
10975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10976 if (r->driver_name) {
10977 uint32_t _relative_save_offset;
10978 _relative_save_offset = ndr->offset;
10979 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10980 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10981 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10982 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10984 ndr->offset = _relative_save_offset;
10986 ndr->flags = _flags_save_string;
10989 uint32_t _flags_save_string = ndr->flags;
10990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10991 if (r->architecture) {
10992 uint32_t _relative_save_offset;
10993 _relative_save_offset = ndr->offset;
10994 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10995 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10996 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10997 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10999 ndr->offset = _relative_save_offset;
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->driver_path) {
11007 uint32_t _relative_save_offset;
11008 _relative_save_offset = ndr->offset;
11009 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11010 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11011 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11012 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11014 ndr->offset = _relative_save_offset;
11016 ndr->flags = _flags_save_string;
11019 uint32_t _flags_save_string = ndr->flags;
11020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11021 if (r->data_file) {
11022 uint32_t _relative_save_offset;
11023 _relative_save_offset = ndr->offset;
11024 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11025 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11026 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11027 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11029 ndr->offset = _relative_save_offset;
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 uint32_t _relative_save_offset;
11038 _relative_save_offset = ndr->offset;
11039 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11040 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11041 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11042 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11044 ndr->offset = _relative_save_offset;
11046 ndr->flags = _flags_save_string;
11049 uint32_t _flags_save_string = ndr->flags;
11050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11051 if (r->help_file) {
11052 uint32_t _relative_save_offset;
11053 _relative_save_offset = ndr->offset;
11054 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11055 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11056 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11057 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11059 ndr->offset = _relative_save_offset;
11061 ndr->flags = _flags_save_string;
11064 uint32_t _flags_save_string_array = ndr->flags;
11065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11066 if (r->dependent_files) {
11067 uint32_t _relative_save_offset;
11068 _relative_save_offset = ndr->offset;
11069 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11070 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11071 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11072 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11074 ndr->offset = _relative_save_offset;
11076 ndr->flags = _flags_save_string_array;
11079 uint32_t _flags_save_string = ndr->flags;
11080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11081 if (r->monitor_name) {
11082 uint32_t _relative_save_offset;
11083 _relative_save_offset = ndr->offset;
11084 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11085 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11086 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11087 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11089 ndr->offset = _relative_save_offset;
11091 ndr->flags = _flags_save_string;
11094 uint32_t _flags_save_string = ndr->flags;
11095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11096 if (r->default_datatype) {
11097 uint32_t _relative_save_offset;
11098 _relative_save_offset = ndr->offset;
11099 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11100 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11101 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11102 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11104 ndr->offset = _relative_save_offset;
11106 ndr->flags = _flags_save_string;
11109 return NDR_ERR_SUCCESS;
11112 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11114 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11116 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11117 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11119 if (r->driver_name) {
11120 ndr_print_string(ndr, "driver_name", r->driver_name);
11123 ndr_print_ptr(ndr, "architecture", r->architecture);
11125 if (r->architecture) {
11126 ndr_print_string(ndr, "architecture", r->architecture);
11129 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11131 if (r->driver_path) {
11132 ndr_print_string(ndr, "driver_path", r->driver_path);
11135 ndr_print_ptr(ndr, "data_file", r->data_file);
11137 if (r->data_file) {
11138 ndr_print_string(ndr, "data_file", r->data_file);
11141 ndr_print_ptr(ndr, "config_file", r->config_file);
11143 if (r->config_file) {
11144 ndr_print_string(ndr, "config_file", r->config_file);
11147 ndr_print_ptr(ndr, "help_file", r->help_file);
11149 if (r->help_file) {
11150 ndr_print_string(ndr, "help_file", r->help_file);
11153 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11155 if (r->dependent_files) {
11156 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11159 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11161 if (r->monitor_name) {
11162 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11165 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11167 if (r->default_datatype) {
11168 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11174 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11176 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11179 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11181 if (ndr_flags & NDR_SCALARS) {
11182 NDR_CHECK(ndr_push_align(ndr, 4));
11183 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11185 uint32_t _flags_save_string = ndr->flags;
11186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11187 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11188 ndr->flags = _flags_save_string;
11191 uint32_t _flags_save_string = ndr->flags;
11192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11193 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11194 ndr->flags = _flags_save_string;
11197 uint32_t _flags_save_string = ndr->flags;
11198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11200 ndr->flags = _flags_save_string;
11203 uint32_t _flags_save_string = ndr->flags;
11204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11205 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11206 ndr->flags = _flags_save_string;
11209 uint32_t _flags_save_string = ndr->flags;
11210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11211 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11212 ndr->flags = _flags_save_string;
11215 uint32_t _flags_save_string = ndr->flags;
11216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11217 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11218 ndr->flags = _flags_save_string;
11221 uint32_t _flags_save_string_array = ndr->flags;
11222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11224 ndr->flags = _flags_save_string_array;
11227 uint32_t _flags_save_string = ndr->flags;
11228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11230 ndr->flags = _flags_save_string;
11233 uint32_t _flags_save_string = ndr->flags;
11234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11236 ndr->flags = _flags_save_string;
11239 uint32_t _flags_save_string_array = ndr->flags;
11240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11242 ndr->flags = _flags_save_string_array;
11245 if (ndr_flags & NDR_BUFFERS) {
11247 uint32_t _flags_save_string = ndr->flags;
11248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11249 if (r->driver_name) {
11250 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11251 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11253 ndr->flags = _flags_save_string;
11256 uint32_t _flags_save_string = ndr->flags;
11257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11258 if (r->architecture) {
11259 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11260 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11262 ndr->flags = _flags_save_string;
11265 uint32_t _flags_save_string = ndr->flags;
11266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11267 if (r->driver_path) {
11268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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 if (r->data_file) {
11277 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11278 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11280 ndr->flags = _flags_save_string;
11283 uint32_t _flags_save_string = ndr->flags;
11284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11285 if (r->config_file) {
11286 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11287 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_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 if (r->help_file) {
11295 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11296 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11298 ndr->flags = _flags_save_string;
11301 uint32_t _flags_save_string_array = ndr->flags;
11302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11303 if (r->dependent_files) {
11304 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11305 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, 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 if (r->monitor_name) {
11313 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11316 ndr->flags = _flags_save_string;
11319 uint32_t _flags_save_string = ndr->flags;
11320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11321 if (r->default_datatype) {
11322 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11323 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11325 ndr->flags = _flags_save_string;
11328 uint32_t _flags_save_string_array = ndr->flags;
11329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11330 if (r->previous_names) {
11331 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11332 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11334 ndr->flags = _flags_save_string_array;
11337 return NDR_ERR_SUCCESS;
11340 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11342 uint32_t _ptr_driver_name;
11343 TALLOC_CTX *_mem_save_driver_name_0;
11344 uint32_t _ptr_architecture;
11345 TALLOC_CTX *_mem_save_architecture_0;
11346 uint32_t _ptr_driver_path;
11347 TALLOC_CTX *_mem_save_driver_path_0;
11348 uint32_t _ptr_data_file;
11349 TALLOC_CTX *_mem_save_data_file_0;
11350 uint32_t _ptr_config_file;
11351 TALLOC_CTX *_mem_save_config_file_0;
11352 uint32_t _ptr_help_file;
11353 TALLOC_CTX *_mem_save_help_file_0;
11354 uint32_t _ptr_dependent_files;
11355 TALLOC_CTX *_mem_save_dependent_files_0;
11356 uint32_t _ptr_monitor_name;
11357 TALLOC_CTX *_mem_save_monitor_name_0;
11358 uint32_t _ptr_default_datatype;
11359 TALLOC_CTX *_mem_save_default_datatype_0;
11360 uint32_t _ptr_previous_names;
11361 TALLOC_CTX *_mem_save_previous_names_0;
11362 if (ndr_flags & NDR_SCALARS) {
11363 NDR_CHECK(ndr_pull_align(ndr, 4));
11364 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11366 uint32_t _flags_save_string = ndr->flags;
11367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11369 if (_ptr_driver_name) {
11370 NDR_PULL_ALLOC(ndr, r->driver_name);
11371 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11373 r->driver_name = NULL;
11375 ndr->flags = _flags_save_string;
11378 uint32_t _flags_save_string = ndr->flags;
11379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11380 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11381 if (_ptr_architecture) {
11382 NDR_PULL_ALLOC(ndr, r->architecture);
11383 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11385 r->architecture = NULL;
11387 ndr->flags = _flags_save_string;
11390 uint32_t _flags_save_string = ndr->flags;
11391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11393 if (_ptr_driver_path) {
11394 NDR_PULL_ALLOC(ndr, r->driver_path);
11395 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11397 r->driver_path = NULL;
11399 ndr->flags = _flags_save_string;
11402 uint32_t _flags_save_string = ndr->flags;
11403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11405 if (_ptr_data_file) {
11406 NDR_PULL_ALLOC(ndr, r->data_file);
11407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11409 r->data_file = NULL;
11411 ndr->flags = _flags_save_string;
11414 uint32_t _flags_save_string = ndr->flags;
11415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11417 if (_ptr_config_file) {
11418 NDR_PULL_ALLOC(ndr, r->config_file);
11419 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11421 r->config_file = NULL;
11423 ndr->flags = _flags_save_string;
11426 uint32_t _flags_save_string = ndr->flags;
11427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11429 if (_ptr_help_file) {
11430 NDR_PULL_ALLOC(ndr, r->help_file);
11431 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11433 r->help_file = NULL;
11435 ndr->flags = _flags_save_string;
11438 uint32_t _flags_save_string_array = ndr->flags;
11439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11441 if (_ptr_dependent_files) {
11442 NDR_PULL_ALLOC(ndr, r->dependent_files);
11443 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11445 r->dependent_files = NULL;
11447 ndr->flags = _flags_save_string_array;
11450 uint32_t _flags_save_string = ndr->flags;
11451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11453 if (_ptr_monitor_name) {
11454 NDR_PULL_ALLOC(ndr, r->monitor_name);
11455 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11457 r->monitor_name = NULL;
11459 ndr->flags = _flags_save_string;
11462 uint32_t _flags_save_string = ndr->flags;
11463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11464 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11465 if (_ptr_default_datatype) {
11466 NDR_PULL_ALLOC(ndr, r->default_datatype);
11467 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11469 r->default_datatype = NULL;
11471 ndr->flags = _flags_save_string;
11474 uint32_t _flags_save_string_array = ndr->flags;
11475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11477 if (_ptr_previous_names) {
11478 NDR_PULL_ALLOC(ndr, r->previous_names);
11479 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11481 r->previous_names = NULL;
11483 ndr->flags = _flags_save_string_array;
11486 if (ndr_flags & NDR_BUFFERS) {
11488 uint32_t _flags_save_string = ndr->flags;
11489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11490 if (r->driver_name) {
11491 uint32_t _relative_save_offset;
11492 _relative_save_offset = ndr->offset;
11493 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11494 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11495 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11496 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11498 ndr->offset = _relative_save_offset;
11500 ndr->flags = _flags_save_string;
11503 uint32_t _flags_save_string = ndr->flags;
11504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11505 if (r->architecture) {
11506 uint32_t _relative_save_offset;
11507 _relative_save_offset = ndr->offset;
11508 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11509 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11510 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11511 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11513 ndr->offset = _relative_save_offset;
11515 ndr->flags = _flags_save_string;
11518 uint32_t _flags_save_string = ndr->flags;
11519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11520 if (r->driver_path) {
11521 uint32_t _relative_save_offset;
11522 _relative_save_offset = ndr->offset;
11523 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11524 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11525 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11526 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11528 ndr->offset = _relative_save_offset;
11530 ndr->flags = _flags_save_string;
11533 uint32_t _flags_save_string = ndr->flags;
11534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11535 if (r->data_file) {
11536 uint32_t _relative_save_offset;
11537 _relative_save_offset = ndr->offset;
11538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11539 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11540 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11543 ndr->offset = _relative_save_offset;
11545 ndr->flags = _flags_save_string;
11548 uint32_t _flags_save_string = ndr->flags;
11549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11550 if (r->config_file) {
11551 uint32_t _relative_save_offset;
11552 _relative_save_offset = ndr->offset;
11553 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11554 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11555 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11556 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11558 ndr->offset = _relative_save_offset;
11560 ndr->flags = _flags_save_string;
11563 uint32_t _flags_save_string = ndr->flags;
11564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11565 if (r->help_file) {
11566 uint32_t _relative_save_offset;
11567 _relative_save_offset = ndr->offset;
11568 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11569 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11570 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11571 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11573 ndr->offset = _relative_save_offset;
11575 ndr->flags = _flags_save_string;
11578 uint32_t _flags_save_string_array = ndr->flags;
11579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11580 if (r->dependent_files) {
11581 uint32_t _relative_save_offset;
11582 _relative_save_offset = ndr->offset;
11583 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11584 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11585 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11586 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11588 ndr->offset = _relative_save_offset;
11590 ndr->flags = _flags_save_string_array;
11593 uint32_t _flags_save_string = ndr->flags;
11594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11595 if (r->monitor_name) {
11596 uint32_t _relative_save_offset;
11597 _relative_save_offset = ndr->offset;
11598 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11599 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11600 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11601 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11603 ndr->offset = _relative_save_offset;
11605 ndr->flags = _flags_save_string;
11608 uint32_t _flags_save_string = ndr->flags;
11609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11610 if (r->default_datatype) {
11611 uint32_t _relative_save_offset;
11612 _relative_save_offset = ndr->offset;
11613 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11614 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11615 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11616 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11618 ndr->offset = _relative_save_offset;
11620 ndr->flags = _flags_save_string;
11623 uint32_t _flags_save_string_array = ndr->flags;
11624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11625 if (r->previous_names) {
11626 uint32_t _relative_save_offset;
11627 _relative_save_offset = ndr->offset;
11628 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11629 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11630 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11631 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11633 ndr->offset = _relative_save_offset;
11635 ndr->flags = _flags_save_string_array;
11638 return NDR_ERR_SUCCESS;
11641 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11643 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11645 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11646 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11648 if (r->driver_name) {
11649 ndr_print_string(ndr, "driver_name", r->driver_name);
11652 ndr_print_ptr(ndr, "architecture", r->architecture);
11654 if (r->architecture) {
11655 ndr_print_string(ndr, "architecture", r->architecture);
11658 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11660 if (r->driver_path) {
11661 ndr_print_string(ndr, "driver_path", r->driver_path);
11664 ndr_print_ptr(ndr, "data_file", r->data_file);
11666 if (r->data_file) {
11667 ndr_print_string(ndr, "data_file", r->data_file);
11670 ndr_print_ptr(ndr, "config_file", r->config_file);
11672 if (r->config_file) {
11673 ndr_print_string(ndr, "config_file", r->config_file);
11676 ndr_print_ptr(ndr, "help_file", r->help_file);
11678 if (r->help_file) {
11679 ndr_print_string(ndr, "help_file", r->help_file);
11682 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11684 if (r->dependent_files) {
11685 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11688 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11690 if (r->monitor_name) {
11691 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11694 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11696 if (r->default_datatype) {
11697 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11700 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11702 if (r->previous_names) {
11703 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11709 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11711 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11714 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11716 if (ndr_flags & NDR_SCALARS) {
11717 NDR_CHECK(ndr_push_align(ndr, 4));
11718 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11720 uint32_t _flags_save_string = ndr->flags;
11721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11722 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11723 ndr->flags = _flags_save_string;
11726 uint32_t _flags_save_string = ndr->flags;
11727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11728 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11729 ndr->flags = _flags_save_string;
11732 uint32_t _flags_save_string = ndr->flags;
11733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11735 ndr->flags = _flags_save_string;
11738 uint32_t _flags_save_string = ndr->flags;
11739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11740 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11741 ndr->flags = _flags_save_string;
11744 uint32_t _flags_save_string = ndr->flags;
11745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11746 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11747 ndr->flags = _flags_save_string;
11749 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
11750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11753 if (ndr_flags & NDR_BUFFERS) {
11755 uint32_t _flags_save_string = ndr->flags;
11756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11757 if (r->driver_name) {
11758 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11761 ndr->flags = _flags_save_string;
11764 uint32_t _flags_save_string = ndr->flags;
11765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11766 if (r->architecture) {
11767 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11768 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11770 ndr->flags = _flags_save_string;
11773 uint32_t _flags_save_string = ndr->flags;
11774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11775 if (r->driver_path) {
11776 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11777 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11779 ndr->flags = _flags_save_string;
11782 uint32_t _flags_save_string = ndr->flags;
11783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11784 if (r->data_file) {
11785 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11786 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11788 ndr->flags = _flags_save_string;
11791 uint32_t _flags_save_string = ndr->flags;
11792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11793 if (r->config_file) {
11794 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11795 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11797 ndr->flags = _flags_save_string;
11800 return NDR_ERR_SUCCESS;
11803 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11805 uint32_t _ptr_driver_name;
11806 TALLOC_CTX *_mem_save_driver_name_0;
11807 uint32_t _ptr_architecture;
11808 TALLOC_CTX *_mem_save_architecture_0;
11809 uint32_t _ptr_driver_path;
11810 TALLOC_CTX *_mem_save_driver_path_0;
11811 uint32_t _ptr_data_file;
11812 TALLOC_CTX *_mem_save_data_file_0;
11813 uint32_t _ptr_config_file;
11814 TALLOC_CTX *_mem_save_config_file_0;
11815 if (ndr_flags & NDR_SCALARS) {
11816 NDR_CHECK(ndr_pull_align(ndr, 4));
11817 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11819 uint32_t _flags_save_string = ndr->flags;
11820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11822 if (_ptr_driver_name) {
11823 NDR_PULL_ALLOC(ndr, r->driver_name);
11824 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11826 r->driver_name = NULL;
11828 ndr->flags = _flags_save_string;
11831 uint32_t _flags_save_string = ndr->flags;
11832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11834 if (_ptr_architecture) {
11835 NDR_PULL_ALLOC(ndr, r->architecture);
11836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11838 r->architecture = NULL;
11840 ndr->flags = _flags_save_string;
11843 uint32_t _flags_save_string = ndr->flags;
11844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11846 if (_ptr_driver_path) {
11847 NDR_PULL_ALLOC(ndr, r->driver_path);
11848 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11850 r->driver_path = NULL;
11852 ndr->flags = _flags_save_string;
11855 uint32_t _flags_save_string = ndr->flags;
11856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11858 if (_ptr_data_file) {
11859 NDR_PULL_ALLOC(ndr, r->data_file);
11860 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11862 r->data_file = NULL;
11864 ndr->flags = _flags_save_string;
11867 uint32_t _flags_save_string = ndr->flags;
11868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11870 if (_ptr_config_file) {
11871 NDR_PULL_ALLOC(ndr, r->config_file);
11872 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11874 r->config_file = NULL;
11876 ndr->flags = _flags_save_string;
11878 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
11879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11882 if (ndr_flags & NDR_BUFFERS) {
11884 uint32_t _flags_save_string = ndr->flags;
11885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11886 if (r->driver_name) {
11887 uint32_t _relative_save_offset;
11888 _relative_save_offset = ndr->offset;
11889 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11890 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11891 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11892 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11894 ndr->offset = _relative_save_offset;
11896 ndr->flags = _flags_save_string;
11899 uint32_t _flags_save_string = ndr->flags;
11900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11901 if (r->architecture) {
11902 uint32_t _relative_save_offset;
11903 _relative_save_offset = ndr->offset;
11904 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11905 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11906 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11907 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11909 ndr->offset = _relative_save_offset;
11911 ndr->flags = _flags_save_string;
11914 uint32_t _flags_save_string = ndr->flags;
11915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11916 if (r->driver_path) {
11917 uint32_t _relative_save_offset;
11918 _relative_save_offset = ndr->offset;
11919 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11920 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11921 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11922 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11924 ndr->offset = _relative_save_offset;
11926 ndr->flags = _flags_save_string;
11929 uint32_t _flags_save_string = ndr->flags;
11930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11931 if (r->data_file) {
11932 uint32_t _relative_save_offset;
11933 _relative_save_offset = ndr->offset;
11934 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11935 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11936 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11937 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11939 ndr->offset = _relative_save_offset;
11941 ndr->flags = _flags_save_string;
11944 uint32_t _flags_save_string = ndr->flags;
11945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11946 if (r->config_file) {
11947 uint32_t _relative_save_offset;
11948 _relative_save_offset = ndr->offset;
11949 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11950 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11951 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11952 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11954 ndr->offset = _relative_save_offset;
11956 ndr->flags = _flags_save_string;
11959 return NDR_ERR_SUCCESS;
11962 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11964 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11966 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11967 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11969 if (r->driver_name) {
11970 ndr_print_string(ndr, "driver_name", r->driver_name);
11973 ndr_print_ptr(ndr, "architecture", r->architecture);
11975 if (r->architecture) {
11976 ndr_print_string(ndr, "architecture", r->architecture);
11979 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11981 if (r->driver_path) {
11982 ndr_print_string(ndr, "driver_path", r->driver_path);
11985 ndr_print_ptr(ndr, "data_file", r->data_file);
11987 if (r->data_file) {
11988 ndr_print_string(ndr, "data_file", r->data_file);
11991 ndr_print_ptr(ndr, "config_file", r->config_file);
11993 if (r->config_file) {
11994 ndr_print_string(ndr, "config_file", r->config_file);
11997 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
11998 ndr_print_uint32(ndr, "config_version", r->config_version);
11999 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12003 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12005 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12008 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12010 if (ndr_flags & NDR_SCALARS) {
12011 NDR_CHECK(ndr_push_align(ndr, 8));
12012 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12014 uint32_t _flags_save_string = ndr->flags;
12015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12016 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12017 ndr->flags = _flags_save_string;
12020 uint32_t _flags_save_string = ndr->flags;
12021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12022 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12023 ndr->flags = _flags_save_string;
12026 uint32_t _flags_save_string = ndr->flags;
12027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12028 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12029 ndr->flags = _flags_save_string;
12032 uint32_t _flags_save_string = ndr->flags;
12033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12034 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12035 ndr->flags = _flags_save_string;
12038 uint32_t _flags_save_string = ndr->flags;
12039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12040 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12041 ndr->flags = _flags_save_string;
12044 uint32_t _flags_save_string = ndr->flags;
12045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12046 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12047 ndr->flags = _flags_save_string;
12050 uint32_t _flags_save_string_array = ndr->flags;
12051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12052 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12053 ndr->flags = _flags_save_string_array;
12056 uint32_t _flags_save_string = ndr->flags;
12057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12058 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12059 ndr->flags = _flags_save_string;
12062 uint32_t _flags_save_string = ndr->flags;
12063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12064 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12065 ndr->flags = _flags_save_string;
12068 uint32_t _flags_save_string_array = ndr->flags;
12069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12070 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12071 ndr->flags = _flags_save_string_array;
12073 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12074 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12076 uint32_t _flags_save_string = ndr->flags;
12077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12078 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12079 ndr->flags = _flags_save_string;
12082 uint32_t _flags_save_string = ndr->flags;
12083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12084 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12085 ndr->flags = _flags_save_string;
12088 uint32_t _flags_save_string = ndr->flags;
12089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12090 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12091 ndr->flags = _flags_save_string;
12094 uint32_t _flags_save_string = ndr->flags;
12095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12096 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12097 ndr->flags = _flags_save_string;
12100 if (ndr_flags & NDR_BUFFERS) {
12102 uint32_t _flags_save_string = ndr->flags;
12103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12104 if (r->driver_name) {
12105 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12108 ndr->flags = _flags_save_string;
12111 uint32_t _flags_save_string = ndr->flags;
12112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12113 if (r->architecture) {
12114 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12115 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12117 ndr->flags = _flags_save_string;
12120 uint32_t _flags_save_string = ndr->flags;
12121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12122 if (r->driver_path) {
12123 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12124 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12126 ndr->flags = _flags_save_string;
12129 uint32_t _flags_save_string = ndr->flags;
12130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12131 if (r->data_file) {
12132 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12133 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12135 ndr->flags = _flags_save_string;
12138 uint32_t _flags_save_string = ndr->flags;
12139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12140 if (r->config_file) {
12141 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12142 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12144 ndr->flags = _flags_save_string;
12147 uint32_t _flags_save_string = ndr->flags;
12148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12149 if (r->help_file) {
12150 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12151 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12153 ndr->flags = _flags_save_string;
12156 uint32_t _flags_save_string_array = ndr->flags;
12157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12158 if (r->dependent_files) {
12159 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12160 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12162 ndr->flags = _flags_save_string_array;
12165 uint32_t _flags_save_string = ndr->flags;
12166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12167 if (r->monitor_name) {
12168 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12169 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12171 ndr->flags = _flags_save_string;
12174 uint32_t _flags_save_string = ndr->flags;
12175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12176 if (r->default_datatype) {
12177 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12178 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12180 ndr->flags = _flags_save_string;
12183 uint32_t _flags_save_string_array = ndr->flags;
12184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12185 if (r->previous_names) {
12186 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12187 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12189 ndr->flags = _flags_save_string_array;
12192 uint32_t _flags_save_string = ndr->flags;
12193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12194 if (r->manufacturer_name) {
12195 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12196 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12198 ndr->flags = _flags_save_string;
12201 uint32_t _flags_save_string = ndr->flags;
12202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12203 if (r->manufacturer_url) {
12204 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12205 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12207 ndr->flags = _flags_save_string;
12210 uint32_t _flags_save_string = ndr->flags;
12211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12212 if (r->hardware_id) {
12213 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12214 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12216 ndr->flags = _flags_save_string;
12219 uint32_t _flags_save_string = ndr->flags;
12220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12222 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12223 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12225 ndr->flags = _flags_save_string;
12228 return NDR_ERR_SUCCESS;
12231 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12233 uint32_t _ptr_driver_name;
12234 TALLOC_CTX *_mem_save_driver_name_0;
12235 uint32_t _ptr_architecture;
12236 TALLOC_CTX *_mem_save_architecture_0;
12237 uint32_t _ptr_driver_path;
12238 TALLOC_CTX *_mem_save_driver_path_0;
12239 uint32_t _ptr_data_file;
12240 TALLOC_CTX *_mem_save_data_file_0;
12241 uint32_t _ptr_config_file;
12242 TALLOC_CTX *_mem_save_config_file_0;
12243 uint32_t _ptr_help_file;
12244 TALLOC_CTX *_mem_save_help_file_0;
12245 uint32_t _ptr_dependent_files;
12246 TALLOC_CTX *_mem_save_dependent_files_0;
12247 uint32_t _ptr_monitor_name;
12248 TALLOC_CTX *_mem_save_monitor_name_0;
12249 uint32_t _ptr_default_datatype;
12250 TALLOC_CTX *_mem_save_default_datatype_0;
12251 uint32_t _ptr_previous_names;
12252 TALLOC_CTX *_mem_save_previous_names_0;
12253 uint32_t _ptr_manufacturer_name;
12254 TALLOC_CTX *_mem_save_manufacturer_name_0;
12255 uint32_t _ptr_manufacturer_url;
12256 TALLOC_CTX *_mem_save_manufacturer_url_0;
12257 uint32_t _ptr_hardware_id;
12258 TALLOC_CTX *_mem_save_hardware_id_0;
12259 uint32_t _ptr_provider;
12260 TALLOC_CTX *_mem_save_provider_0;
12261 if (ndr_flags & NDR_SCALARS) {
12262 NDR_CHECK(ndr_pull_align(ndr, 8));
12263 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12268 if (_ptr_driver_name) {
12269 NDR_PULL_ALLOC(ndr, r->driver_name);
12270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12272 r->driver_name = NULL;
12274 ndr->flags = _flags_save_string;
12277 uint32_t _flags_save_string = ndr->flags;
12278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12280 if (_ptr_architecture) {
12281 NDR_PULL_ALLOC(ndr, r->architecture);
12282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12284 r->architecture = NULL;
12286 ndr->flags = _flags_save_string;
12289 uint32_t _flags_save_string = ndr->flags;
12290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12292 if (_ptr_driver_path) {
12293 NDR_PULL_ALLOC(ndr, r->driver_path);
12294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12296 r->driver_path = NULL;
12298 ndr->flags = _flags_save_string;
12301 uint32_t _flags_save_string = ndr->flags;
12302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12304 if (_ptr_data_file) {
12305 NDR_PULL_ALLOC(ndr, r->data_file);
12306 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12308 r->data_file = NULL;
12310 ndr->flags = _flags_save_string;
12313 uint32_t _flags_save_string = ndr->flags;
12314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12316 if (_ptr_config_file) {
12317 NDR_PULL_ALLOC(ndr, r->config_file);
12318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12320 r->config_file = NULL;
12322 ndr->flags = _flags_save_string;
12325 uint32_t _flags_save_string = ndr->flags;
12326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12328 if (_ptr_help_file) {
12329 NDR_PULL_ALLOC(ndr, r->help_file);
12330 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12332 r->help_file = NULL;
12334 ndr->flags = _flags_save_string;
12337 uint32_t _flags_save_string_array = ndr->flags;
12338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12340 if (_ptr_dependent_files) {
12341 NDR_PULL_ALLOC(ndr, r->dependent_files);
12342 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12344 r->dependent_files = NULL;
12346 ndr->flags = _flags_save_string_array;
12349 uint32_t _flags_save_string = ndr->flags;
12350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12352 if (_ptr_monitor_name) {
12353 NDR_PULL_ALLOC(ndr, r->monitor_name);
12354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12356 r->monitor_name = NULL;
12358 ndr->flags = _flags_save_string;
12361 uint32_t _flags_save_string = ndr->flags;
12362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12364 if (_ptr_default_datatype) {
12365 NDR_PULL_ALLOC(ndr, r->default_datatype);
12366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12368 r->default_datatype = NULL;
12370 ndr->flags = _flags_save_string;
12373 uint32_t _flags_save_string_array = ndr->flags;
12374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12376 if (_ptr_previous_names) {
12377 NDR_PULL_ALLOC(ndr, r->previous_names);
12378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12380 r->previous_names = NULL;
12382 ndr->flags = _flags_save_string_array;
12384 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12385 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12387 uint32_t _flags_save_string = ndr->flags;
12388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12390 if (_ptr_manufacturer_name) {
12391 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12392 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12394 r->manufacturer_name = NULL;
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12402 if (_ptr_manufacturer_url) {
12403 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12404 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12406 r->manufacturer_url = NULL;
12408 ndr->flags = _flags_save_string;
12411 uint32_t _flags_save_string = ndr->flags;
12412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12414 if (_ptr_hardware_id) {
12415 NDR_PULL_ALLOC(ndr, r->hardware_id);
12416 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12418 r->hardware_id = NULL;
12420 ndr->flags = _flags_save_string;
12423 uint32_t _flags_save_string = ndr->flags;
12424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12426 if (_ptr_provider) {
12427 NDR_PULL_ALLOC(ndr, r->provider);
12428 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12430 r->provider = NULL;
12432 ndr->flags = _flags_save_string;
12435 if (ndr_flags & NDR_BUFFERS) {
12437 uint32_t _flags_save_string = ndr->flags;
12438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12439 if (r->driver_name) {
12440 uint32_t _relative_save_offset;
12441 _relative_save_offset = ndr->offset;
12442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12443 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12444 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12445 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12447 ndr->offset = _relative_save_offset;
12449 ndr->flags = _flags_save_string;
12452 uint32_t _flags_save_string = ndr->flags;
12453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12454 if (r->architecture) {
12455 uint32_t _relative_save_offset;
12456 _relative_save_offset = ndr->offset;
12457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12458 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12459 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12462 ndr->offset = _relative_save_offset;
12464 ndr->flags = _flags_save_string;
12467 uint32_t _flags_save_string = ndr->flags;
12468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12469 if (r->driver_path) {
12470 uint32_t _relative_save_offset;
12471 _relative_save_offset = ndr->offset;
12472 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12473 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12474 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12475 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12477 ndr->offset = _relative_save_offset;
12479 ndr->flags = _flags_save_string;
12482 uint32_t _flags_save_string = ndr->flags;
12483 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12484 if (r->data_file) {
12485 uint32_t _relative_save_offset;
12486 _relative_save_offset = ndr->offset;
12487 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12488 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12489 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12490 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12492 ndr->offset = _relative_save_offset;
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 if (r->config_file) {
12500 uint32_t _relative_save_offset;
12501 _relative_save_offset = ndr->offset;
12502 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12503 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12504 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12505 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12507 ndr->offset = _relative_save_offset;
12509 ndr->flags = _flags_save_string;
12512 uint32_t _flags_save_string = ndr->flags;
12513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12514 if (r->help_file) {
12515 uint32_t _relative_save_offset;
12516 _relative_save_offset = ndr->offset;
12517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12518 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12519 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12520 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12522 ndr->offset = _relative_save_offset;
12524 ndr->flags = _flags_save_string;
12527 uint32_t _flags_save_string_array = ndr->flags;
12528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12529 if (r->dependent_files) {
12530 uint32_t _relative_save_offset;
12531 _relative_save_offset = ndr->offset;
12532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12533 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12534 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12535 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12537 ndr->offset = _relative_save_offset;
12539 ndr->flags = _flags_save_string_array;
12542 uint32_t _flags_save_string = ndr->flags;
12543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12544 if (r->monitor_name) {
12545 uint32_t _relative_save_offset;
12546 _relative_save_offset = ndr->offset;
12547 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12548 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12549 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12550 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
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->default_datatype) {
12560 uint32_t _relative_save_offset;
12561 _relative_save_offset = ndr->offset;
12562 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12563 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12564 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12565 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12567 ndr->offset = _relative_save_offset;
12569 ndr->flags = _flags_save_string;
12572 uint32_t _flags_save_string_array = ndr->flags;
12573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12574 if (r->previous_names) {
12575 uint32_t _relative_save_offset;
12576 _relative_save_offset = ndr->offset;
12577 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12578 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12579 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12580 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12582 ndr->offset = _relative_save_offset;
12584 ndr->flags = _flags_save_string_array;
12587 uint32_t _flags_save_string = ndr->flags;
12588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12589 if (r->manufacturer_name) {
12590 uint32_t _relative_save_offset;
12591 _relative_save_offset = ndr->offset;
12592 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12593 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12594 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12595 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12597 ndr->offset = _relative_save_offset;
12599 ndr->flags = _flags_save_string;
12602 uint32_t _flags_save_string = ndr->flags;
12603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12604 if (r->manufacturer_url) {
12605 uint32_t _relative_save_offset;
12606 _relative_save_offset = ndr->offset;
12607 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12608 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12609 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12610 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12612 ndr->offset = _relative_save_offset;
12614 ndr->flags = _flags_save_string;
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 if (r->hardware_id) {
12620 uint32_t _relative_save_offset;
12621 _relative_save_offset = ndr->offset;
12622 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12623 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12624 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12625 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12627 ndr->offset = _relative_save_offset;
12629 ndr->flags = _flags_save_string;
12632 uint32_t _flags_save_string = ndr->flags;
12633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12635 uint32_t _relative_save_offset;
12636 _relative_save_offset = ndr->offset;
12637 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12638 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12639 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12640 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12642 ndr->offset = _relative_save_offset;
12644 ndr->flags = _flags_save_string;
12647 return NDR_ERR_SUCCESS;
12650 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12652 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12654 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12655 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12657 if (r->driver_name) {
12658 ndr_print_string(ndr, "driver_name", r->driver_name);
12661 ndr_print_ptr(ndr, "architecture", r->architecture);
12663 if (r->architecture) {
12664 ndr_print_string(ndr, "architecture", r->architecture);
12667 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12669 if (r->driver_path) {
12670 ndr_print_string(ndr, "driver_path", r->driver_path);
12673 ndr_print_ptr(ndr, "data_file", r->data_file);
12675 if (r->data_file) {
12676 ndr_print_string(ndr, "data_file", r->data_file);
12679 ndr_print_ptr(ndr, "config_file", r->config_file);
12681 if (r->config_file) {
12682 ndr_print_string(ndr, "config_file", r->config_file);
12685 ndr_print_ptr(ndr, "help_file", r->help_file);
12687 if (r->help_file) {
12688 ndr_print_string(ndr, "help_file", r->help_file);
12691 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12693 if (r->dependent_files) {
12694 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12697 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12699 if (r->monitor_name) {
12700 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12703 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12705 if (r->default_datatype) {
12706 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12709 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12711 if (r->previous_names) {
12712 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12715 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12716 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12717 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12719 if (r->manufacturer_name) {
12720 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12723 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12725 if (r->manufacturer_url) {
12726 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12729 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12731 if (r->hardware_id) {
12732 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12735 ndr_print_ptr(ndr, "provider", r->provider);
12738 ndr_print_string(ndr, "provider", r->provider);
12744 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12746 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12749 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12751 if (ndr_flags & NDR_SCALARS) {
12752 NDR_CHECK(ndr_push_align(ndr, 8));
12753 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12755 uint32_t _flags_save_string = ndr->flags;
12756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12757 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12758 ndr->flags = _flags_save_string;
12761 uint32_t _flags_save_string = ndr->flags;
12762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12763 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12764 ndr->flags = _flags_save_string;
12767 uint32_t _flags_save_string = ndr->flags;
12768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12769 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12770 ndr->flags = _flags_save_string;
12773 uint32_t _flags_save_string = ndr->flags;
12774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12775 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12776 ndr->flags = _flags_save_string;
12779 uint32_t _flags_save_string = ndr->flags;
12780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12781 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12782 ndr->flags = _flags_save_string;
12785 uint32_t _flags_save_string = ndr->flags;
12786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12787 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12788 ndr->flags = _flags_save_string;
12791 uint32_t _flags_save_string = ndr->flags;
12792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12793 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12794 ndr->flags = _flags_save_string;
12797 uint32_t _flags_save_string = ndr->flags;
12798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12799 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12800 ndr->flags = _flags_save_string;
12803 uint32_t _flags_save_string_array = ndr->flags;
12804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12805 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12806 ndr->flags = _flags_save_string_array;
12809 uint32_t _flags_save_string_array = ndr->flags;
12810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12811 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12812 ndr->flags = _flags_save_string_array;
12814 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12815 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12817 uint32_t _flags_save_string = ndr->flags;
12818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12819 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12826 ndr->flags = _flags_save_string;
12829 uint32_t _flags_save_string = ndr->flags;
12830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12831 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12832 ndr->flags = _flags_save_string;
12835 uint32_t _flags_save_string = ndr->flags;
12836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12837 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12838 ndr->flags = _flags_save_string;
12841 uint32_t _flags_save_string = ndr->flags;
12842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12844 ndr->flags = _flags_save_string;
12847 uint32_t _flags_save_string = ndr->flags;
12848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12849 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string_array = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12856 ndr->flags = _flags_save_string_array;
12859 uint32_t _flags_save_string = ndr->flags;
12860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12861 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12862 ndr->flags = _flags_save_string;
12864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12866 uint32_t _flags_save_string_array = ndr->flags;
12867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12868 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12869 ndr->flags = _flags_save_string_array;
12871 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12872 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12874 if (ndr_flags & NDR_BUFFERS) {
12876 uint32_t _flags_save_string = ndr->flags;
12877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12878 if (r->driver_name) {
12879 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12882 ndr->flags = _flags_save_string;
12885 uint32_t _flags_save_string = ndr->flags;
12886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12887 if (r->architecture) {
12888 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12889 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12891 ndr->flags = _flags_save_string;
12894 uint32_t _flags_save_string = ndr->flags;
12895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12896 if (r->driver_path) {
12897 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12898 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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->data_file) {
12906 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12907 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12909 ndr->flags = _flags_save_string;
12912 uint32_t _flags_save_string = ndr->flags;
12913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12914 if (r->config_file) {
12915 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12916 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12918 ndr->flags = _flags_save_string;
12921 uint32_t _flags_save_string = ndr->flags;
12922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12923 if (r->help_file) {
12924 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12925 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12927 ndr->flags = _flags_save_string;
12930 uint32_t _flags_save_string = ndr->flags;
12931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12932 if (r->monitor_name) {
12933 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12934 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12936 ndr->flags = _flags_save_string;
12939 uint32_t _flags_save_string = ndr->flags;
12940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12941 if (r->default_datatype) {
12942 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12943 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12945 ndr->flags = _flags_save_string;
12948 uint32_t _flags_save_string_array = ndr->flags;
12949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12950 if (r->dependent_files) {
12951 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12952 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12954 ndr->flags = _flags_save_string_array;
12957 uint32_t _flags_save_string_array = ndr->flags;
12958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12959 if (r->previous_names) {
12960 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12961 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12963 ndr->flags = _flags_save_string_array;
12966 uint32_t _flags_save_string = ndr->flags;
12967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12968 if (r->manufacturer_name) {
12969 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12970 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12972 ndr->flags = _flags_save_string;
12975 uint32_t _flags_save_string = ndr->flags;
12976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12977 if (r->manufacturer_url) {
12978 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12979 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12981 ndr->flags = _flags_save_string;
12984 uint32_t _flags_save_string = ndr->flags;
12985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12986 if (r->hardware_id) {
12987 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12988 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12990 ndr->flags = _flags_save_string;
12993 uint32_t _flags_save_string = ndr->flags;
12994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12996 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12997 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12999 ndr->flags = _flags_save_string;
13002 uint32_t _flags_save_string = ndr->flags;
13003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13004 if (r->print_processor) {
13005 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13008 ndr->flags = _flags_save_string;
13011 uint32_t _flags_save_string = ndr->flags;
13012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13013 if (r->vendor_setup) {
13014 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13015 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13017 ndr->flags = _flags_save_string;
13020 uint32_t _flags_save_string_array = ndr->flags;
13021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13022 if (r->color_profiles) {
13023 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13024 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13026 ndr->flags = _flags_save_string_array;
13029 uint32_t _flags_save_string = ndr->flags;
13030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13032 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13033 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13035 ndr->flags = _flags_save_string;
13038 uint32_t _flags_save_string_array = ndr->flags;
13039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13040 if (r->core_driver_dependencies) {
13041 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13042 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13044 ndr->flags = _flags_save_string_array;
13047 return NDR_ERR_SUCCESS;
13050 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13052 uint32_t _ptr_driver_name;
13053 TALLOC_CTX *_mem_save_driver_name_0;
13054 uint32_t _ptr_architecture;
13055 TALLOC_CTX *_mem_save_architecture_0;
13056 uint32_t _ptr_driver_path;
13057 TALLOC_CTX *_mem_save_driver_path_0;
13058 uint32_t _ptr_data_file;
13059 TALLOC_CTX *_mem_save_data_file_0;
13060 uint32_t _ptr_config_file;
13061 TALLOC_CTX *_mem_save_config_file_0;
13062 uint32_t _ptr_help_file;
13063 TALLOC_CTX *_mem_save_help_file_0;
13064 uint32_t _ptr_monitor_name;
13065 TALLOC_CTX *_mem_save_monitor_name_0;
13066 uint32_t _ptr_default_datatype;
13067 TALLOC_CTX *_mem_save_default_datatype_0;
13068 uint32_t _ptr_dependent_files;
13069 TALLOC_CTX *_mem_save_dependent_files_0;
13070 uint32_t _ptr_previous_names;
13071 TALLOC_CTX *_mem_save_previous_names_0;
13072 uint32_t _ptr_manufacturer_name;
13073 TALLOC_CTX *_mem_save_manufacturer_name_0;
13074 uint32_t _ptr_manufacturer_url;
13075 TALLOC_CTX *_mem_save_manufacturer_url_0;
13076 uint32_t _ptr_hardware_id;
13077 TALLOC_CTX *_mem_save_hardware_id_0;
13078 uint32_t _ptr_provider;
13079 TALLOC_CTX *_mem_save_provider_0;
13080 uint32_t _ptr_print_processor;
13081 TALLOC_CTX *_mem_save_print_processor_0;
13082 uint32_t _ptr_vendor_setup;
13083 TALLOC_CTX *_mem_save_vendor_setup_0;
13084 uint32_t _ptr_color_profiles;
13085 TALLOC_CTX *_mem_save_color_profiles_0;
13086 uint32_t _ptr_inf_path;
13087 TALLOC_CTX *_mem_save_inf_path_0;
13088 uint32_t _ptr_core_driver_dependencies;
13089 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13090 if (ndr_flags & NDR_SCALARS) {
13091 NDR_CHECK(ndr_pull_align(ndr, 8));
13092 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13094 uint32_t _flags_save_string = ndr->flags;
13095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13097 if (_ptr_driver_name) {
13098 NDR_PULL_ALLOC(ndr, r->driver_name);
13099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13101 r->driver_name = NULL;
13103 ndr->flags = _flags_save_string;
13106 uint32_t _flags_save_string = ndr->flags;
13107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13109 if (_ptr_architecture) {
13110 NDR_PULL_ALLOC(ndr, r->architecture);
13111 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13113 r->architecture = NULL;
13115 ndr->flags = _flags_save_string;
13118 uint32_t _flags_save_string = ndr->flags;
13119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13121 if (_ptr_driver_path) {
13122 NDR_PULL_ALLOC(ndr, r->driver_path);
13123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13125 r->driver_path = NULL;
13127 ndr->flags = _flags_save_string;
13130 uint32_t _flags_save_string = ndr->flags;
13131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13133 if (_ptr_data_file) {
13134 NDR_PULL_ALLOC(ndr, r->data_file);
13135 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13137 r->data_file = NULL;
13139 ndr->flags = _flags_save_string;
13142 uint32_t _flags_save_string = ndr->flags;
13143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13144 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13145 if (_ptr_config_file) {
13146 NDR_PULL_ALLOC(ndr, r->config_file);
13147 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13149 r->config_file = NULL;
13151 ndr->flags = _flags_save_string;
13154 uint32_t _flags_save_string = ndr->flags;
13155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13157 if (_ptr_help_file) {
13158 NDR_PULL_ALLOC(ndr, r->help_file);
13159 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13161 r->help_file = NULL;
13163 ndr->flags = _flags_save_string;
13166 uint32_t _flags_save_string = ndr->flags;
13167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13169 if (_ptr_monitor_name) {
13170 NDR_PULL_ALLOC(ndr, r->monitor_name);
13171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13173 r->monitor_name = NULL;
13175 ndr->flags = _flags_save_string;
13178 uint32_t _flags_save_string = ndr->flags;
13179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13181 if (_ptr_default_datatype) {
13182 NDR_PULL_ALLOC(ndr, r->default_datatype);
13183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13185 r->default_datatype = NULL;
13187 ndr->flags = _flags_save_string;
13190 uint32_t _flags_save_string_array = ndr->flags;
13191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13193 if (_ptr_dependent_files) {
13194 NDR_PULL_ALLOC(ndr, r->dependent_files);
13195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13197 r->dependent_files = NULL;
13199 ndr->flags = _flags_save_string_array;
13202 uint32_t _flags_save_string_array = ndr->flags;
13203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13205 if (_ptr_previous_names) {
13206 NDR_PULL_ALLOC(ndr, r->previous_names);
13207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13209 r->previous_names = NULL;
13211 ndr->flags = _flags_save_string_array;
13213 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13214 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13216 uint32_t _flags_save_string = ndr->flags;
13217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13218 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13219 if (_ptr_manufacturer_name) {
13220 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13221 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13223 r->manufacturer_name = NULL;
13225 ndr->flags = _flags_save_string;
13228 uint32_t _flags_save_string = ndr->flags;
13229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13231 if (_ptr_manufacturer_url) {
13232 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13233 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13235 r->manufacturer_url = NULL;
13237 ndr->flags = _flags_save_string;
13240 uint32_t _flags_save_string = ndr->flags;
13241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13243 if (_ptr_hardware_id) {
13244 NDR_PULL_ALLOC(ndr, r->hardware_id);
13245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13247 r->hardware_id = NULL;
13249 ndr->flags = _flags_save_string;
13252 uint32_t _flags_save_string = ndr->flags;
13253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13255 if (_ptr_provider) {
13256 NDR_PULL_ALLOC(ndr, r->provider);
13257 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13259 r->provider = NULL;
13261 ndr->flags = _flags_save_string;
13264 uint32_t _flags_save_string = ndr->flags;
13265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13267 if (_ptr_print_processor) {
13268 NDR_PULL_ALLOC(ndr, r->print_processor);
13269 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13271 r->print_processor = NULL;
13273 ndr->flags = _flags_save_string;
13276 uint32_t _flags_save_string = ndr->flags;
13277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13279 if (_ptr_vendor_setup) {
13280 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13281 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13283 r->vendor_setup = NULL;
13285 ndr->flags = _flags_save_string;
13288 uint32_t _flags_save_string_array = ndr->flags;
13289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13291 if (_ptr_color_profiles) {
13292 NDR_PULL_ALLOC(ndr, r->color_profiles);
13293 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13295 r->color_profiles = NULL;
13297 ndr->flags = _flags_save_string_array;
13300 uint32_t _flags_save_string = ndr->flags;
13301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13303 if (_ptr_inf_path) {
13304 NDR_PULL_ALLOC(ndr, r->inf_path);
13305 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13307 r->inf_path = NULL;
13309 ndr->flags = _flags_save_string;
13311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13313 uint32_t _flags_save_string_array = ndr->flags;
13314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13316 if (_ptr_core_driver_dependencies) {
13317 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13320 r->core_driver_dependencies = NULL;
13322 ndr->flags = _flags_save_string_array;
13324 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13325 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13327 if (ndr_flags & NDR_BUFFERS) {
13329 uint32_t _flags_save_string = ndr->flags;
13330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13331 if (r->driver_name) {
13332 uint32_t _relative_save_offset;
13333 _relative_save_offset = ndr->offset;
13334 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13335 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13336 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13337 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13339 ndr->offset = _relative_save_offset;
13341 ndr->flags = _flags_save_string;
13344 uint32_t _flags_save_string = ndr->flags;
13345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13346 if (r->architecture) {
13347 uint32_t _relative_save_offset;
13348 _relative_save_offset = ndr->offset;
13349 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13350 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13351 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13352 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13354 ndr->offset = _relative_save_offset;
13356 ndr->flags = _flags_save_string;
13359 uint32_t _flags_save_string = ndr->flags;
13360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13361 if (r->driver_path) {
13362 uint32_t _relative_save_offset;
13363 _relative_save_offset = ndr->offset;
13364 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13365 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13366 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13367 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13369 ndr->offset = _relative_save_offset;
13371 ndr->flags = _flags_save_string;
13374 uint32_t _flags_save_string = ndr->flags;
13375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13376 if (r->data_file) {
13377 uint32_t _relative_save_offset;
13378 _relative_save_offset = ndr->offset;
13379 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13380 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13381 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13382 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13384 ndr->offset = _relative_save_offset;
13386 ndr->flags = _flags_save_string;
13389 uint32_t _flags_save_string = ndr->flags;
13390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13391 if (r->config_file) {
13392 uint32_t _relative_save_offset;
13393 _relative_save_offset = ndr->offset;
13394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13395 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13396 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13397 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13399 ndr->offset = _relative_save_offset;
13401 ndr->flags = _flags_save_string;
13404 uint32_t _flags_save_string = ndr->flags;
13405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13406 if (r->help_file) {
13407 uint32_t _relative_save_offset;
13408 _relative_save_offset = ndr->offset;
13409 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13410 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13411 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13414 ndr->offset = _relative_save_offset;
13416 ndr->flags = _flags_save_string;
13419 uint32_t _flags_save_string = ndr->flags;
13420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13421 if (r->monitor_name) {
13422 uint32_t _relative_save_offset;
13423 _relative_save_offset = ndr->offset;
13424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13425 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13426 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13429 ndr->offset = _relative_save_offset;
13431 ndr->flags = _flags_save_string;
13434 uint32_t _flags_save_string = ndr->flags;
13435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13436 if (r->default_datatype) {
13437 uint32_t _relative_save_offset;
13438 _relative_save_offset = ndr->offset;
13439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13440 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13441 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13442 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13444 ndr->offset = _relative_save_offset;
13446 ndr->flags = _flags_save_string;
13449 uint32_t _flags_save_string_array = ndr->flags;
13450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13451 if (r->dependent_files) {
13452 uint32_t _relative_save_offset;
13453 _relative_save_offset = ndr->offset;
13454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13455 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13456 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13457 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13459 ndr->offset = _relative_save_offset;
13461 ndr->flags = _flags_save_string_array;
13464 uint32_t _flags_save_string_array = ndr->flags;
13465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13466 if (r->previous_names) {
13467 uint32_t _relative_save_offset;
13468 _relative_save_offset = ndr->offset;
13469 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13470 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13471 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13472 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13474 ndr->offset = _relative_save_offset;
13476 ndr->flags = _flags_save_string_array;
13479 uint32_t _flags_save_string = ndr->flags;
13480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13481 if (r->manufacturer_name) {
13482 uint32_t _relative_save_offset;
13483 _relative_save_offset = ndr->offset;
13484 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13485 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13486 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13487 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13489 ndr->offset = _relative_save_offset;
13491 ndr->flags = _flags_save_string;
13494 uint32_t _flags_save_string = ndr->flags;
13495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13496 if (r->manufacturer_url) {
13497 uint32_t _relative_save_offset;
13498 _relative_save_offset = ndr->offset;
13499 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13500 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13501 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13502 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13504 ndr->offset = _relative_save_offset;
13506 ndr->flags = _flags_save_string;
13509 uint32_t _flags_save_string = ndr->flags;
13510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13511 if (r->hardware_id) {
13512 uint32_t _relative_save_offset;
13513 _relative_save_offset = ndr->offset;
13514 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13515 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13516 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13517 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13519 ndr->offset = _relative_save_offset;
13521 ndr->flags = _flags_save_string;
13524 uint32_t _flags_save_string = ndr->flags;
13525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13527 uint32_t _relative_save_offset;
13528 _relative_save_offset = ndr->offset;
13529 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13530 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13531 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13532 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13534 ndr->offset = _relative_save_offset;
13536 ndr->flags = _flags_save_string;
13539 uint32_t _flags_save_string = ndr->flags;
13540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13541 if (r->print_processor) {
13542 uint32_t _relative_save_offset;
13543 _relative_save_offset = ndr->offset;
13544 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13545 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13546 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13547 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13549 ndr->offset = _relative_save_offset;
13551 ndr->flags = _flags_save_string;
13554 uint32_t _flags_save_string = ndr->flags;
13555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13556 if (r->vendor_setup) {
13557 uint32_t _relative_save_offset;
13558 _relative_save_offset = ndr->offset;
13559 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13560 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13561 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13562 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13564 ndr->offset = _relative_save_offset;
13566 ndr->flags = _flags_save_string;
13569 uint32_t _flags_save_string_array = ndr->flags;
13570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13571 if (r->color_profiles) {
13572 uint32_t _relative_save_offset;
13573 _relative_save_offset = ndr->offset;
13574 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13575 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13576 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13577 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13579 ndr->offset = _relative_save_offset;
13581 ndr->flags = _flags_save_string_array;
13584 uint32_t _flags_save_string = ndr->flags;
13585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13587 uint32_t _relative_save_offset;
13588 _relative_save_offset = ndr->offset;
13589 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13590 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13591 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13592 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13594 ndr->offset = _relative_save_offset;
13596 ndr->flags = _flags_save_string;
13599 uint32_t _flags_save_string_array = ndr->flags;
13600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13601 if (r->core_driver_dependencies) {
13602 uint32_t _relative_save_offset;
13603 _relative_save_offset = ndr->offset;
13604 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13605 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13606 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13607 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13609 ndr->offset = _relative_save_offset;
13611 ndr->flags = _flags_save_string_array;
13614 return NDR_ERR_SUCCESS;
13617 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13619 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13621 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13622 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13624 if (r->driver_name) {
13625 ndr_print_string(ndr, "driver_name", r->driver_name);
13628 ndr_print_ptr(ndr, "architecture", r->architecture);
13630 if (r->architecture) {
13631 ndr_print_string(ndr, "architecture", r->architecture);
13634 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13636 if (r->driver_path) {
13637 ndr_print_string(ndr, "driver_path", r->driver_path);
13640 ndr_print_ptr(ndr, "data_file", r->data_file);
13642 if (r->data_file) {
13643 ndr_print_string(ndr, "data_file", r->data_file);
13646 ndr_print_ptr(ndr, "config_file", r->config_file);
13648 if (r->config_file) {
13649 ndr_print_string(ndr, "config_file", r->config_file);
13652 ndr_print_ptr(ndr, "help_file", r->help_file);
13654 if (r->help_file) {
13655 ndr_print_string(ndr, "help_file", r->help_file);
13658 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13660 if (r->monitor_name) {
13661 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13664 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13666 if (r->default_datatype) {
13667 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13670 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13672 if (r->dependent_files) {
13673 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13676 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13678 if (r->previous_names) {
13679 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13682 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13683 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13684 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13686 if (r->manufacturer_name) {
13687 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13690 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13692 if (r->manufacturer_url) {
13693 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13696 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13698 if (r->hardware_id) {
13699 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13702 ndr_print_ptr(ndr, "provider", r->provider);
13705 ndr_print_string(ndr, "provider", r->provider);
13708 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13710 if (r->print_processor) {
13711 ndr_print_string(ndr, "print_processor", r->print_processor);
13714 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13716 if (r->vendor_setup) {
13717 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13720 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13722 if (r->color_profiles) {
13723 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13726 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13729 ndr_print_string(ndr, "inf_path", r->inf_path);
13732 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13733 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13735 if (r->core_driver_dependencies) {
13736 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13739 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13740 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13744 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13746 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13749 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13752 return NDR_ERR_SUCCESS;
13755 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13758 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13760 return NDR_ERR_SUCCESS;
13763 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13765 const char *val = NULL;
13768 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13769 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13770 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13771 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13772 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13774 ndr_print_enum(ndr, name, "ENUM", val, r);
13777 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13779 if (ndr_flags & NDR_SCALARS) {
13780 NDR_CHECK(ndr_push_align(ndr, 4));
13782 uint32_t _flags_save_string = ndr->flags;
13783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13784 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13785 ndr->flags = _flags_save_string;
13787 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13790 if (ndr_flags & NDR_BUFFERS) {
13792 uint32_t _flags_save_string = ndr->flags;
13793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13794 if (r->file_name) {
13795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13798 ndr->flags = _flags_save_string;
13801 return NDR_ERR_SUCCESS;
13804 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13806 uint32_t _ptr_file_name;
13807 TALLOC_CTX *_mem_save_file_name_0;
13808 if (ndr_flags & NDR_SCALARS) {
13809 NDR_CHECK(ndr_pull_align(ndr, 4));
13811 uint32_t _flags_save_string = ndr->flags;
13812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13814 if (_ptr_file_name) {
13815 NDR_PULL_ALLOC(ndr, r->file_name);
13816 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13818 r->file_name = NULL;
13820 ndr->flags = _flags_save_string;
13822 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13825 if (ndr_flags & NDR_BUFFERS) {
13827 uint32_t _flags_save_string = ndr->flags;
13828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13829 if (r->file_name) {
13830 uint32_t _relative_save_offset;
13831 _relative_save_offset = ndr->offset;
13832 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13833 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13834 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13835 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13837 ndr->offset = _relative_save_offset;
13839 ndr->flags = _flags_save_string;
13842 return NDR_ERR_SUCCESS;
13845 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13847 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13849 ndr_print_ptr(ndr, "file_name", r->file_name);
13851 if (r->file_name) {
13852 ndr_print_string(ndr, "file_name", r->file_name);
13855 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13856 ndr_print_uint32(ndr, "file_version", r->file_version);
13860 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13862 uint32_t cntr_file_info_1;
13863 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13865 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13866 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13868 if (r->driver_name) {
13869 ndr_print_string(ndr, "driver_name", r->driver_name);
13872 ndr_print_ptr(ndr, "architecture", r->architecture);
13874 if (r->architecture) {
13875 ndr_print_string(ndr, "architecture", r->architecture);
13878 ndr_print_ptr(ndr, "file_info", r->file_info);
13880 if (r->file_info) {
13881 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13883 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13885 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13886 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13893 ndr_print_uint32(ndr, "file_count", r->file_count);
13894 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13896 if (r->monitor_name) {
13897 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13900 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13902 if (r->default_datatype) {
13903 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13906 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13908 if (r->previous_names) {
13909 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13912 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13913 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13914 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13916 if (r->manufacturer_name) {
13917 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13920 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13922 if (r->manufacturer_url) {
13923 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13926 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13928 if (r->hardware_id) {
13929 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13932 ndr_print_ptr(ndr, "provider", r->provider);
13935 ndr_print_string(ndr, "provider", r->provider);
13941 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13943 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13946 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13948 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13949 if (ndr_flags & NDR_SCALARS) {
13950 int level = ndr_push_get_switch_value(ndr, r);
13953 NDR_CHECK(ndr_push_align(ndr, 4));
13954 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13955 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13959 NDR_CHECK(ndr_push_align(ndr, 4));
13960 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13961 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13965 NDR_CHECK(ndr_push_align(ndr, 4));
13966 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13967 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13971 NDR_CHECK(ndr_push_align(ndr, 4));
13972 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13973 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13977 NDR_CHECK(ndr_push_align(ndr, 4));
13978 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13979 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13983 NDR_CHECK(ndr_push_align(ndr, 8));
13984 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13985 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13989 NDR_CHECK(ndr_push_align(ndr, 8));
13990 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13991 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13995 NDR_CHECK(ndr_push_align(ndr, 8));
13996 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13997 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14005 if (ndr_flags & NDR_BUFFERS) {
14006 int level = ndr_push_get_switch_value(ndr, r);
14007 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14010 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14014 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14018 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14022 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14026 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14030 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14034 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14038 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14046 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14047 return NDR_ERR_SUCCESS;
14050 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14052 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14054 level = ndr_pull_get_switch_value(ndr, r);
14055 if (ndr_flags & NDR_SCALARS) {
14058 NDR_CHECK(ndr_pull_align(ndr, 4));
14059 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14060 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14064 NDR_CHECK(ndr_pull_align(ndr, 4));
14065 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14066 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14070 NDR_CHECK(ndr_pull_align(ndr, 4));
14071 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14072 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14076 NDR_CHECK(ndr_pull_align(ndr, 4));
14077 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14078 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14082 NDR_CHECK(ndr_pull_align(ndr, 4));
14083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14084 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14088 NDR_CHECK(ndr_pull_align(ndr, 8));
14089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14090 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14094 NDR_CHECK(ndr_pull_align(ndr, 8));
14095 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14096 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14100 NDR_CHECK(ndr_pull_align(ndr, 8));
14101 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14102 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14110 if (ndr_flags & NDR_BUFFERS) {
14111 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14114 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14118 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14122 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14126 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14130 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14134 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14138 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14142 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14150 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14151 return NDR_ERR_SUCCESS;
14154 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14157 level = ndr_print_get_switch_value(ndr, r);
14158 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14161 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14165 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14169 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14173 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14177 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14181 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14185 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14189 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14198 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14200 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14205 if (ndr_flags & NDR_SCALARS) {
14206 NDR_CHECK(ndr_push_align(ndr, 4));
14208 uint32_t _flags_save_string = ndr->flags;
14209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14210 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14211 ndr->flags = _flags_save_string;
14214 if (ndr_flags & NDR_BUFFERS) {
14216 return NDR_ERR_SUCCESS;
14219 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14221 if (ndr_flags & NDR_SCALARS) {
14222 NDR_CHECK(ndr_pull_align(ndr, 4));
14224 uint32_t _flags_save_string = ndr->flags;
14225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14227 ndr->flags = _flags_save_string;
14230 if (ndr_flags & NDR_BUFFERS) {
14232 return NDR_ERR_SUCCESS;
14235 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14237 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14239 ndr_print_string(ndr, "directory_name", r->directory_name);
14243 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14245 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14248 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14250 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14251 if (ndr_flags & NDR_SCALARS) {
14252 int level = ndr_push_get_switch_value(ndr, r);
14255 NDR_CHECK(ndr_push_align(ndr, 4));
14256 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14257 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14261 NDR_CHECK(ndr_push_align(ndr, 4));
14262 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14263 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14268 if (ndr_flags & NDR_BUFFERS) {
14269 int level = ndr_push_get_switch_value(ndr, r);
14270 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14280 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14281 return NDR_ERR_SUCCESS;
14284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14286 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14288 level = ndr_pull_get_switch_value(ndr, r);
14289 if (ndr_flags & NDR_SCALARS) {
14292 NDR_CHECK(ndr_pull_align(ndr, 4));
14293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14294 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14298 NDR_CHECK(ndr_pull_align(ndr, 4));
14299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14300 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14305 if (ndr_flags & NDR_BUFFERS) {
14306 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14316 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14317 return NDR_ERR_SUCCESS;
14320 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14323 level = ndr_print_get_switch_value(ndr, r);
14324 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14327 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14331 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14337 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14339 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14342 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14344 if (ndr_flags & NDR_SCALARS) {
14345 NDR_CHECK(ndr_push_align(ndr, 4));
14347 uint32_t _flags_save_string = ndr->flags;
14348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14349 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14350 ndr->flags = _flags_save_string;
14353 if (ndr_flags & NDR_BUFFERS) {
14355 uint32_t _flags_save_string = ndr->flags;
14356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14357 if (r->print_processor_name) {
14358 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14359 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14361 ndr->flags = _flags_save_string;
14364 return NDR_ERR_SUCCESS;
14367 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14369 uint32_t _ptr_print_processor_name;
14370 TALLOC_CTX *_mem_save_print_processor_name_0;
14371 if (ndr_flags & NDR_SCALARS) {
14372 NDR_CHECK(ndr_pull_align(ndr, 4));
14374 uint32_t _flags_save_string = ndr->flags;
14375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14376 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14377 if (_ptr_print_processor_name) {
14378 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14379 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14381 r->print_processor_name = NULL;
14383 ndr->flags = _flags_save_string;
14386 if (ndr_flags & NDR_BUFFERS) {
14388 uint32_t _flags_save_string = ndr->flags;
14389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14390 if (r->print_processor_name) {
14391 uint32_t _relative_save_offset;
14392 _relative_save_offset = ndr->offset;
14393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14394 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14395 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14398 ndr->offset = _relative_save_offset;
14400 ndr->flags = _flags_save_string;
14403 return NDR_ERR_SUCCESS;
14406 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14408 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14410 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14412 if (r->print_processor_name) {
14413 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14419 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14421 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14424 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14426 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14427 if (ndr_flags & NDR_SCALARS) {
14428 int level = ndr_push_get_switch_value(ndr, r);
14431 NDR_CHECK(ndr_push_align(ndr, 4));
14432 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14433 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14441 if (ndr_flags & NDR_BUFFERS) {
14442 int level = ndr_push_get_switch_value(ndr, r);
14443 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14446 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14454 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14455 return NDR_ERR_SUCCESS;
14458 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14460 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14462 level = ndr_pull_get_switch_value(ndr, r);
14463 if (ndr_flags & NDR_SCALARS) {
14466 NDR_CHECK(ndr_pull_align(ndr, 4));
14467 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14468 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14476 if (ndr_flags & NDR_BUFFERS) {
14477 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14480 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14488 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14489 return NDR_ERR_SUCCESS;
14492 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14495 level = ndr_print_get_switch_value(ndr, r);
14496 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14499 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14508 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14510 if (ndr_flags & NDR_SCALARS) {
14511 NDR_CHECK(ndr_push_align(ndr, 4));
14513 uint32_t _flags_save_string = ndr->flags;
14514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14515 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14516 ndr->flags = _flags_save_string;
14519 if (ndr_flags & NDR_BUFFERS) {
14521 return NDR_ERR_SUCCESS;
14524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14526 if (ndr_flags & NDR_SCALARS) {
14527 NDR_CHECK(ndr_pull_align(ndr, 4));
14529 uint32_t _flags_save_string = ndr->flags;
14530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14531 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14532 ndr->flags = _flags_save_string;
14535 if (ndr_flags & NDR_BUFFERS) {
14537 return NDR_ERR_SUCCESS;
14540 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14542 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14544 ndr_print_string(ndr, "directory_name", r->directory_name);
14548 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14550 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14555 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14556 if (ndr_flags & NDR_SCALARS) {
14557 int level = ndr_push_get_switch_value(ndr, r);
14560 NDR_CHECK(ndr_push_align(ndr, 4));
14561 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14562 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14566 NDR_CHECK(ndr_push_align(ndr, 4));
14567 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14568 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14573 if (ndr_flags & NDR_BUFFERS) {
14574 int level = ndr_push_get_switch_value(ndr, r);
14575 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14585 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14586 return NDR_ERR_SUCCESS;
14589 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14591 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14593 level = ndr_pull_get_switch_value(ndr, r);
14594 if (ndr_flags & NDR_SCALARS) {
14597 NDR_CHECK(ndr_pull_align(ndr, 4));
14598 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14599 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14603 NDR_CHECK(ndr_pull_align(ndr, 4));
14604 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14605 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14610 if (ndr_flags & NDR_BUFFERS) {
14611 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14621 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14622 return NDR_ERR_SUCCESS;
14625 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14628 level = ndr_print_get_switch_value(ndr, r);
14629 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14632 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14636 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14642 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14644 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14647 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14649 if (ndr_flags & NDR_SCALARS) {
14650 NDR_CHECK(ndr_push_align(ndr, 4));
14651 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14652 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14655 if (ndr_flags & NDR_BUFFERS) {
14656 if (r->document_name) {
14657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14660 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14662 if (r->output_file) {
14663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14666 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14672 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14675 return NDR_ERR_SUCCESS;
14678 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14680 uint32_t _ptr_document_name;
14681 TALLOC_CTX *_mem_save_document_name_0;
14682 uint32_t _ptr_output_file;
14683 TALLOC_CTX *_mem_save_output_file_0;
14684 uint32_t _ptr_datatype;
14685 TALLOC_CTX *_mem_save_datatype_0;
14686 if (ndr_flags & NDR_SCALARS) {
14687 NDR_CHECK(ndr_pull_align(ndr, 4));
14688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14689 if (_ptr_document_name) {
14690 NDR_PULL_ALLOC(ndr, r->document_name);
14692 r->document_name = NULL;
14694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14695 if (_ptr_output_file) {
14696 NDR_PULL_ALLOC(ndr, r->output_file);
14698 r->output_file = NULL;
14700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14701 if (_ptr_datatype) {
14702 NDR_PULL_ALLOC(ndr, r->datatype);
14704 r->datatype = NULL;
14707 if (ndr_flags & NDR_BUFFERS) {
14708 if (r->document_name) {
14709 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14710 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14711 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14712 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14713 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14714 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));
14716 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14717 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14720 if (r->output_file) {
14721 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14722 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14723 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14724 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14725 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14726 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));
14728 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14729 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14733 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14734 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14735 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14736 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14737 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14738 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));
14740 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14741 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14745 return NDR_ERR_SUCCESS;
14748 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14750 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14752 ndr_print_ptr(ndr, "document_name", r->document_name);
14754 if (r->document_name) {
14755 ndr_print_string(ndr, "document_name", r->document_name);
14758 ndr_print_ptr(ndr, "output_file", r->output_file);
14760 if (r->output_file) {
14761 ndr_print_string(ndr, "output_file", r->output_file);
14764 ndr_print_ptr(ndr, "datatype", r->datatype);
14767 ndr_print_string(ndr, "datatype", r->datatype);
14773 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14775 if (ndr_flags & NDR_SCALARS) {
14776 int level = ndr_push_get_switch_value(ndr, r);
14777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14794 if (ndr_flags & NDR_BUFFERS) {
14795 int level = ndr_push_get_switch_value(ndr, r);
14799 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14814 return NDR_ERR_SUCCESS;
14817 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14821 TALLOC_CTX *_mem_save_info1_0;
14822 level = ndr_pull_get_switch_value(ndr, r);
14823 if (ndr_flags & NDR_SCALARS) {
14824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14825 if (_level != level) {
14826 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14830 uint32_t _ptr_info1;
14831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14833 NDR_PULL_ALLOC(ndr, r->info1);
14850 if (ndr_flags & NDR_BUFFERS) {
14854 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14855 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14856 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14872 return NDR_ERR_SUCCESS;
14875 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14878 level = ndr_print_get_switch_value(ndr, r);
14879 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14882 ndr_print_ptr(ndr, "info1", r->info1);
14885 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14902 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14904 if (ndr_flags & NDR_SCALARS) {
14905 NDR_CHECK(ndr_push_align(ndr, 4));
14906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14912 uint32_t _flags_save_string = ndr->flags;
14913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14915 struct ndr_push *_ndr_extra_string;
14916 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14917 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14918 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14920 ndr->flags = _flags_save_string;
14923 if (ndr_flags & NDR_BUFFERS) {
14925 return NDR_ERR_SUCCESS;
14928 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14930 if (ndr_flags & NDR_SCALARS) {
14931 NDR_CHECK(ndr_pull_align(ndr, 4));
14932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
14938 uint32_t _flags_save_string = ndr->flags;
14939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14941 struct ndr_pull *_ndr_extra_string;
14942 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14943 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14944 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14946 ndr->flags = _flags_save_string;
14949 if (ndr_flags & NDR_BUFFERS) {
14951 return NDR_ERR_SUCCESS;
14954 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14956 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14958 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);
14959 ndr_print_uint32(ndr, "major", r->major);
14960 ndr_print_uint32(ndr, "minor", r->minor);
14961 ndr_print_uint32(ndr, "build", r->build);
14962 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
14963 ndr_print_string(ndr, "extra_string", r->extra_string);
14967 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14969 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14972 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14974 if (ndr_flags & NDR_SCALARS) {
14975 NDR_CHECK(ndr_push_align(ndr, 4));
14976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14982 uint32_t _flags_save_string = ndr->flags;
14983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14985 struct ndr_push *_ndr_extra_string;
14986 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14987 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14988 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14990 ndr->flags = _flags_save_string;
14992 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
14993 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
14994 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
14995 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
14996 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
14998 if (ndr_flags & NDR_BUFFERS) {
15000 return NDR_ERR_SUCCESS;
15003 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15005 if (ndr_flags & NDR_SCALARS) {
15006 NDR_CHECK(ndr_pull_align(ndr, 4));
15007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15013 uint32_t _flags_save_string = ndr->flags;
15014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15016 struct ndr_pull *_ndr_extra_string;
15017 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15018 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15019 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15021 ndr->flags = _flags_save_string;
15023 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15024 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15025 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15026 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15027 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15029 if (ndr_flags & NDR_BUFFERS) {
15031 return NDR_ERR_SUCCESS;
15034 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15036 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15038 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);
15039 ndr_print_uint32(ndr, "major", r->major);
15040 ndr_print_uint32(ndr, "minor", r->minor);
15041 ndr_print_uint32(ndr, "build", r->build);
15042 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15043 ndr_print_string(ndr, "extra_string", r->extra_string);
15044 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15045 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15046 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15047 ndr_print_uint8(ndr, "product_type", r->product_type);
15048 ndr_print_uint8(ndr, "reserved", r->reserved);
15052 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15054 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15057 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15059 if (ndr_flags & NDR_SCALARS) {
15060 int level = ndr_push_get_switch_value(ndr, r);
15067 uint32_t _flags_save_string = ndr->flags;
15068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15070 ndr->flags = _flags_save_string;
15076 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15078 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15079 ndr->flags = _flags_save_DATA_BLOB;
15084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15087 case REG_MULTI_SZ: {
15089 uint32_t _flags_save_string_array = ndr->flags;
15090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15091 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15092 ndr->flags = _flags_save_string_array;
15098 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15100 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15101 ndr->flags = _flags_save_DATA_BLOB;
15107 if (ndr_flags & NDR_BUFFERS) {
15108 int level = ndr_push_get_switch_value(ndr, r);
15130 return NDR_ERR_SUCCESS;
15133 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15136 level = ndr_pull_get_switch_value(ndr, r);
15137 if (ndr_flags & NDR_SCALARS) {
15144 uint32_t _flags_save_string = ndr->flags;
15145 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15147 ndr->flags = _flags_save_string;
15153 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15155 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15156 ndr->flags = _flags_save_DATA_BLOB;
15161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15164 case REG_MULTI_SZ: {
15166 uint32_t _flags_save_string_array = ndr->flags;
15167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15168 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15169 ndr->flags = _flags_save_string_array;
15175 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15177 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15178 ndr->flags = _flags_save_DATA_BLOB;
15184 if (ndr_flags & NDR_BUFFERS) {
15206 return NDR_ERR_SUCCESS;
15209 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15212 level = ndr_print_get_switch_value(ndr, r);
15213 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15219 ndr_print_string(ndr, "string", r->string);
15223 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15227 ndr_print_uint32(ndr, "value", r->value);
15231 ndr_print_string_array(ndr, "string_array", r->string_array);
15235 ndr_print_DATA_BLOB(ndr, "data", r->data);
15241 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15243 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15246 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15249 return NDR_ERR_SUCCESS;
15252 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15257 return NDR_ERR_SUCCESS;
15260 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15262 const char *val = NULL;
15265 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15266 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15267 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15269 ndr_print_enum(ndr, name, "ENUM", val, r);
15272 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15274 if (ndr_flags & NDR_SCALARS) {
15275 NDR_CHECK(ndr_push_align(ndr, 4));
15276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15279 if (ndr_flags & NDR_BUFFERS) {
15281 return NDR_ERR_SUCCESS;
15284 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15286 if (ndr_flags & NDR_SCALARS) {
15287 NDR_CHECK(ndr_pull_align(ndr, 4));
15288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15291 if (ndr_flags & NDR_BUFFERS) {
15293 return NDR_ERR_SUCCESS;
15296 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15298 ndr_print_struct(ndr, name, "spoolss_FormSize");
15300 ndr_print_uint32(ndr, "width", r->width);
15301 ndr_print_uint32(ndr, "height", r->height);
15305 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15307 if (ndr_flags & NDR_SCALARS) {
15308 NDR_CHECK(ndr_push_align(ndr, 4));
15309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15314 if (ndr_flags & NDR_BUFFERS) {
15316 return NDR_ERR_SUCCESS;
15319 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15321 if (ndr_flags & NDR_SCALARS) {
15322 NDR_CHECK(ndr_pull_align(ndr, 4));
15323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15328 if (ndr_flags & NDR_BUFFERS) {
15330 return NDR_ERR_SUCCESS;
15333 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15335 ndr_print_struct(ndr, name, "spoolss_FormArea");
15337 ndr_print_uint32(ndr, "left", r->left);
15338 ndr_print_uint32(ndr, "top", r->top);
15339 ndr_print_uint32(ndr, "right", r->right);
15340 ndr_print_uint32(ndr, "bottom", r->bottom);
15344 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15346 if (ndr_flags & NDR_SCALARS) {
15347 NDR_CHECK(ndr_push_align(ndr, 4));
15348 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15350 uint32_t _flags_save_string = ndr->flags;
15351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15352 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15353 ndr->flags = _flags_save_string;
15355 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15356 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15358 if (ndr_flags & NDR_BUFFERS) {
15360 uint32_t _flags_save_string = ndr->flags;
15361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15362 if (r->form_name) {
15363 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15364 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15366 ndr->flags = _flags_save_string;
15369 return NDR_ERR_SUCCESS;
15372 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15374 uint32_t _ptr_form_name;
15375 TALLOC_CTX *_mem_save_form_name_0;
15376 if (ndr_flags & NDR_SCALARS) {
15377 NDR_CHECK(ndr_pull_align(ndr, 4));
15378 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15380 uint32_t _flags_save_string = ndr->flags;
15381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15383 if (_ptr_form_name) {
15384 NDR_PULL_ALLOC(ndr, r->form_name);
15385 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15387 r->form_name = NULL;
15389 ndr->flags = _flags_save_string;
15391 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15392 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15394 if (ndr_flags & NDR_BUFFERS) {
15396 uint32_t _flags_save_string = ndr->flags;
15397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15398 if (r->form_name) {
15399 uint32_t _relative_save_offset;
15400 _relative_save_offset = ndr->offset;
15401 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15402 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15403 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15404 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15406 ndr->offset = _relative_save_offset;
15408 ndr->flags = _flags_save_string;
15411 return NDR_ERR_SUCCESS;
15414 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15416 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15418 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15419 ndr_print_ptr(ndr, "form_name", r->form_name);
15421 if (r->form_name) {
15422 ndr_print_string(ndr, "form_name", r->form_name);
15425 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15426 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15430 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15432 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15435 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15438 return NDR_ERR_SUCCESS;
15441 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15446 return NDR_ERR_SUCCESS;
15449 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15451 ndr_print_uint32(ndr, name, r);
15453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15459 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15461 if (ndr_flags & NDR_SCALARS) {
15462 NDR_CHECK(ndr_push_align(ndr, 4));
15463 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15465 uint32_t _flags_save_string = ndr->flags;
15466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15467 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15468 ndr->flags = _flags_save_string;
15470 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15471 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15473 uint32_t _flags_save_string = ndr->flags;
15474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15475 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15476 ndr->flags = _flags_save_string;
15478 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15480 uint32_t _flags_save_string = ndr->flags;
15481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15482 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15483 ndr->flags = _flags_save_string;
15485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15487 uint32_t _flags_save_string = ndr->flags;
15488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15490 ndr->flags = _flags_save_string;
15492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15494 if (ndr_flags & NDR_BUFFERS) {
15496 uint32_t _flags_save_string = ndr->flags;
15497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15498 if (r->form_name) {
15499 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15502 ndr->flags = _flags_save_string;
15505 uint32_t _flags_save_string = ndr->flags;
15506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15508 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15509 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15511 ndr->flags = _flags_save_string;
15514 uint32_t _flags_save_string = ndr->flags;
15515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15517 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15518 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15520 ndr->flags = _flags_save_string;
15523 uint32_t _flags_save_string = ndr->flags;
15524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15525 if (r->display_name) {
15526 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15527 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15529 ndr->flags = _flags_save_string;
15532 return NDR_ERR_SUCCESS;
15535 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15537 uint32_t _ptr_form_name;
15538 TALLOC_CTX *_mem_save_form_name_0;
15539 uint32_t _ptr_keyword;
15540 TALLOC_CTX *_mem_save_keyword_0;
15541 uint32_t _ptr_mui_dll;
15542 TALLOC_CTX *_mem_save_mui_dll_0;
15543 uint32_t _ptr_display_name;
15544 TALLOC_CTX *_mem_save_display_name_0;
15545 if (ndr_flags & NDR_SCALARS) {
15546 NDR_CHECK(ndr_pull_align(ndr, 4));
15547 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15549 uint32_t _flags_save_string = ndr->flags;
15550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15552 if (_ptr_form_name) {
15553 NDR_PULL_ALLOC(ndr, r->form_name);
15554 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15556 r->form_name = NULL;
15558 ndr->flags = _flags_save_string;
15560 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15561 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15563 uint32_t _flags_save_string = ndr->flags;
15564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15566 if (_ptr_keyword) {
15567 NDR_PULL_ALLOC(ndr, r->keyword);
15568 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15572 ndr->flags = _flags_save_string;
15574 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15576 uint32_t _flags_save_string = ndr->flags;
15577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15579 if (_ptr_mui_dll) {
15580 NDR_PULL_ALLOC(ndr, r->mui_dll);
15581 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15585 ndr->flags = _flags_save_string;
15587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15589 uint32_t _flags_save_string = ndr->flags;
15590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15592 if (_ptr_display_name) {
15593 NDR_PULL_ALLOC(ndr, r->display_name);
15594 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15596 r->display_name = NULL;
15598 ndr->flags = _flags_save_string;
15600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15602 if (ndr_flags & NDR_BUFFERS) {
15604 uint32_t _flags_save_string = ndr->flags;
15605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15606 if (r->form_name) {
15607 uint32_t _relative_save_offset;
15608 _relative_save_offset = ndr->offset;
15609 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15610 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15611 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15612 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15614 ndr->offset = _relative_save_offset;
15616 ndr->flags = _flags_save_string;
15619 uint32_t _flags_save_string = ndr->flags;
15620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15622 uint32_t _relative_save_offset;
15623 _relative_save_offset = ndr->offset;
15624 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15625 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15626 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15627 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15629 ndr->offset = _relative_save_offset;
15631 ndr->flags = _flags_save_string;
15634 uint32_t _flags_save_string = ndr->flags;
15635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15637 uint32_t _relative_save_offset;
15638 _relative_save_offset = ndr->offset;
15639 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15640 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15641 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15642 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15644 ndr->offset = _relative_save_offset;
15646 ndr->flags = _flags_save_string;
15649 uint32_t _flags_save_string = ndr->flags;
15650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15651 if (r->display_name) {
15652 uint32_t _relative_save_offset;
15653 _relative_save_offset = ndr->offset;
15654 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15655 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15656 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15657 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15659 ndr->offset = _relative_save_offset;
15661 ndr->flags = _flags_save_string;
15664 return NDR_ERR_SUCCESS;
15667 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15669 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15671 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15672 ndr_print_ptr(ndr, "form_name", r->form_name);
15674 if (r->form_name) {
15675 ndr_print_string(ndr, "form_name", r->form_name);
15678 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15679 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15680 ndr_print_ptr(ndr, "keyword", r->keyword);
15683 ndr_print_string(ndr, "keyword", r->keyword);
15686 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15687 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15690 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15693 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15694 ndr_print_ptr(ndr, "display_name", r->display_name);
15696 if (r->display_name) {
15697 ndr_print_string(ndr, "display_name", r->display_name);
15700 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15704 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15706 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15709 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15711 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15712 if (ndr_flags & NDR_SCALARS) {
15713 int level = ndr_push_get_switch_value(ndr, r);
15716 NDR_CHECK(ndr_push_align(ndr, 4));
15717 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15718 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15722 NDR_CHECK(ndr_push_align(ndr, 4));
15723 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15724 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15732 if (ndr_flags & NDR_BUFFERS) {
15733 int level = ndr_push_get_switch_value(ndr, r);
15734 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15737 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15741 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15749 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15750 return NDR_ERR_SUCCESS;
15753 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15755 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15757 level = ndr_pull_get_switch_value(ndr, r);
15758 if (ndr_flags & NDR_SCALARS) {
15761 NDR_CHECK(ndr_pull_align(ndr, 4));
15762 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15763 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15767 NDR_CHECK(ndr_pull_align(ndr, 4));
15768 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15769 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15777 if (ndr_flags & NDR_BUFFERS) {
15778 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15781 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15785 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15793 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15794 return NDR_ERR_SUCCESS;
15797 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15800 level = ndr_print_get_switch_value(ndr, r);
15801 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15804 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15808 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15817 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15819 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15822 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15824 if (ndr_flags & NDR_SCALARS) {
15825 NDR_CHECK(ndr_push_align(ndr, 4));
15826 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15827 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15828 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15829 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15831 if (ndr_flags & NDR_BUFFERS) {
15832 if (r->form_name) {
15833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15839 return NDR_ERR_SUCCESS;
15842 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15844 uint32_t _ptr_form_name;
15845 TALLOC_CTX *_mem_save_form_name_0;
15846 if (ndr_flags & NDR_SCALARS) {
15847 NDR_CHECK(ndr_pull_align(ndr, 4));
15848 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15850 if (_ptr_form_name) {
15851 NDR_PULL_ALLOC(ndr, r->form_name);
15853 r->form_name = NULL;
15855 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15856 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15858 if (ndr_flags & NDR_BUFFERS) {
15859 if (r->form_name) {
15860 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15861 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15862 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15863 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15864 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15865 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));
15867 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15868 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15872 return NDR_ERR_SUCCESS;
15875 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15877 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15879 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15880 ndr_print_ptr(ndr, "form_name", r->form_name);
15882 if (r->form_name) {
15883 ndr_print_string(ndr, "form_name", r->form_name);
15886 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15887 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15891 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15893 if (ndr_flags & NDR_SCALARS) {
15894 NDR_CHECK(ndr_push_align(ndr, 4));
15895 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15897 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15898 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15899 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15900 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15901 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15903 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15906 if (ndr_flags & NDR_BUFFERS) {
15907 if (r->form_name) {
15908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15911 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15917 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15923 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15925 if (r->display_name) {
15926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15929 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15932 return NDR_ERR_SUCCESS;
15935 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15937 uint32_t _ptr_form_name;
15938 TALLOC_CTX *_mem_save_form_name_0;
15939 uint32_t _ptr_keyword;
15940 TALLOC_CTX *_mem_save_keyword_0;
15941 uint32_t _ptr_mui_dll;
15942 TALLOC_CTX *_mem_save_mui_dll_0;
15943 uint32_t _ptr_display_name;
15944 TALLOC_CTX *_mem_save_display_name_0;
15945 if (ndr_flags & NDR_SCALARS) {
15946 NDR_CHECK(ndr_pull_align(ndr, 4));
15947 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15949 if (_ptr_form_name) {
15950 NDR_PULL_ALLOC(ndr, r->form_name);
15952 r->form_name = NULL;
15954 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15955 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15957 if (_ptr_keyword) {
15958 NDR_PULL_ALLOC(ndr, r->keyword);
15962 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15964 if (_ptr_mui_dll) {
15965 NDR_PULL_ALLOC(ndr, r->mui_dll);
15969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15970 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15971 if (_ptr_display_name) {
15972 NDR_PULL_ALLOC(ndr, r->display_name);
15974 r->display_name = NULL;
15976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15978 if (ndr_flags & NDR_BUFFERS) {
15979 if (r->form_name) {
15980 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15981 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15982 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15983 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15984 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15985 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));
15987 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15992 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15993 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15994 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15995 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15996 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15997 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));
15999 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16004 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16005 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16006 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16007 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16008 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16009 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));
16011 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16015 if (r->display_name) {
16016 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16017 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16018 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16019 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16020 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16021 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));
16023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16028 return NDR_ERR_SUCCESS;
16031 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16033 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16035 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16036 ndr_print_ptr(ndr, "form_name", r->form_name);
16038 if (r->form_name) {
16039 ndr_print_string(ndr, "form_name", r->form_name);
16042 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16043 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16044 ndr_print_ptr(ndr, "keyword", r->keyword);
16047 ndr_print_string(ndr, "keyword", r->keyword);
16050 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16051 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16054 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16057 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16058 ndr_print_ptr(ndr, "display_name", r->display_name);
16060 if (r->display_name) {
16061 ndr_print_string(ndr, "display_name", r->display_name);
16064 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16068 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16070 if (ndr_flags & NDR_SCALARS) {
16071 int level = ndr_push_get_switch_value(ndr, r);
16072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16079 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16083 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16086 if (ndr_flags & NDR_BUFFERS) {
16087 int level = ndr_push_get_switch_value(ndr, r);
16091 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16097 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16102 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16105 return NDR_ERR_SUCCESS;
16108 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16112 TALLOC_CTX *_mem_save_info1_0;
16113 TALLOC_CTX *_mem_save_info2_0;
16114 level = ndr_pull_get_switch_value(ndr, r);
16115 if (ndr_flags & NDR_SCALARS) {
16116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16117 if (_level != level) {
16118 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
16122 uint32_t _ptr_info1;
16123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16125 NDR_PULL_ALLOC(ndr, r->info1);
16132 uint32_t _ptr_info2;
16133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16135 NDR_PULL_ALLOC(ndr, r->info2);
16142 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16145 if (ndr_flags & NDR_BUFFERS) {
16149 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16150 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16151 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16158 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16159 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16160 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16166 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16169 return NDR_ERR_SUCCESS;
16172 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16175 level = ndr_print_get_switch_value(ndr, r);
16176 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16179 ndr_print_ptr(ndr, "info1", r->info1);
16182 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16188 ndr_print_ptr(ndr, "info2", r->info2);
16191 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16197 ndr_print_bad_level(ndr, name, level);
16201 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16203 if (ndr_flags & NDR_SCALARS) {
16204 NDR_CHECK(ndr_push_align(ndr, 4));
16206 uint32_t _flags_save_string = ndr->flags;
16207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16208 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16209 ndr->flags = _flags_save_string;
16212 if (ndr_flags & NDR_BUFFERS) {
16214 uint32_t _flags_save_string = ndr->flags;
16215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16216 if (r->port_name) {
16217 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16218 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16220 ndr->flags = _flags_save_string;
16223 return NDR_ERR_SUCCESS;
16226 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16228 uint32_t _ptr_port_name;
16229 TALLOC_CTX *_mem_save_port_name_0;
16230 if (ndr_flags & NDR_SCALARS) {
16231 NDR_CHECK(ndr_pull_align(ndr, 4));
16233 uint32_t _flags_save_string = ndr->flags;
16234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16236 if (_ptr_port_name) {
16237 NDR_PULL_ALLOC(ndr, r->port_name);
16238 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16240 r->port_name = NULL;
16242 ndr->flags = _flags_save_string;
16245 if (ndr_flags & NDR_BUFFERS) {
16247 uint32_t _flags_save_string = ndr->flags;
16248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16249 if (r->port_name) {
16250 uint32_t _relative_save_offset;
16251 _relative_save_offset = ndr->offset;
16252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16253 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16254 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16255 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16257 ndr->offset = _relative_save_offset;
16259 ndr->flags = _flags_save_string;
16262 return NDR_ERR_SUCCESS;
16265 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16267 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16269 ndr_print_ptr(ndr, "port_name", r->port_name);
16271 if (r->port_name) {
16272 ndr_print_string(ndr, "port_name", r->port_name);
16278 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16280 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16283 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16286 return NDR_ERR_SUCCESS;
16289 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16294 return NDR_ERR_SUCCESS;
16297 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16299 ndr_print_uint32(ndr, name, r);
16301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16308 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16310 if (ndr_flags & NDR_SCALARS) {
16311 NDR_CHECK(ndr_push_align(ndr, 4));
16313 uint32_t _flags_save_string = ndr->flags;
16314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16315 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16316 ndr->flags = _flags_save_string;
16319 uint32_t _flags_save_string = ndr->flags;
16320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16322 ndr->flags = _flags_save_string;
16325 uint32_t _flags_save_string = ndr->flags;
16326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16327 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16328 ndr->flags = _flags_save_string;
16330 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16333 if (ndr_flags & NDR_BUFFERS) {
16335 uint32_t _flags_save_string = ndr->flags;
16336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16337 if (r->port_name) {
16338 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16341 ndr->flags = _flags_save_string;
16344 uint32_t _flags_save_string = ndr->flags;
16345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16346 if (r->monitor_name) {
16347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16350 ndr->flags = _flags_save_string;
16353 uint32_t _flags_save_string = ndr->flags;
16354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16355 if (r->description) {
16356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16359 ndr->flags = _flags_save_string;
16362 return NDR_ERR_SUCCESS;
16365 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16367 uint32_t _ptr_port_name;
16368 TALLOC_CTX *_mem_save_port_name_0;
16369 uint32_t _ptr_monitor_name;
16370 TALLOC_CTX *_mem_save_monitor_name_0;
16371 uint32_t _ptr_description;
16372 TALLOC_CTX *_mem_save_description_0;
16373 if (ndr_flags & NDR_SCALARS) {
16374 NDR_CHECK(ndr_pull_align(ndr, 4));
16376 uint32_t _flags_save_string = ndr->flags;
16377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16379 if (_ptr_port_name) {
16380 NDR_PULL_ALLOC(ndr, r->port_name);
16381 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16383 r->port_name = NULL;
16385 ndr->flags = _flags_save_string;
16388 uint32_t _flags_save_string = ndr->flags;
16389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16391 if (_ptr_monitor_name) {
16392 NDR_PULL_ALLOC(ndr, r->monitor_name);
16393 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16395 r->monitor_name = NULL;
16397 ndr->flags = _flags_save_string;
16400 uint32_t _flags_save_string = ndr->flags;
16401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16403 if (_ptr_description) {
16404 NDR_PULL_ALLOC(ndr, r->description);
16405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16407 r->description = NULL;
16409 ndr->flags = _flags_save_string;
16411 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16414 if (ndr_flags & NDR_BUFFERS) {
16416 uint32_t _flags_save_string = ndr->flags;
16417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16418 if (r->port_name) {
16419 uint32_t _relative_save_offset;
16420 _relative_save_offset = ndr->offset;
16421 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16422 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16423 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16424 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16426 ndr->offset = _relative_save_offset;
16428 ndr->flags = _flags_save_string;
16431 uint32_t _flags_save_string = ndr->flags;
16432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16433 if (r->monitor_name) {
16434 uint32_t _relative_save_offset;
16435 _relative_save_offset = ndr->offset;
16436 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16437 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16438 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16439 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16441 ndr->offset = _relative_save_offset;
16443 ndr->flags = _flags_save_string;
16446 uint32_t _flags_save_string = ndr->flags;
16447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16448 if (r->description) {
16449 uint32_t _relative_save_offset;
16450 _relative_save_offset = ndr->offset;
16451 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16452 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16453 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16454 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16456 ndr->offset = _relative_save_offset;
16458 ndr->flags = _flags_save_string;
16461 return NDR_ERR_SUCCESS;
16464 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16466 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16468 ndr_print_ptr(ndr, "port_name", r->port_name);
16470 if (r->port_name) {
16471 ndr_print_string(ndr, "port_name", r->port_name);
16474 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16476 if (r->monitor_name) {
16477 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16480 ndr_print_ptr(ndr, "description", r->description);
16482 if (r->description) {
16483 ndr_print_string(ndr, "description", r->description);
16486 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16487 ndr_print_uint32(ndr, "reserved", r->reserved);
16491 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16493 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16496 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16499 return NDR_ERR_SUCCESS;
16502 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16507 return NDR_ERR_SUCCESS;
16510 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16512 const char *val = NULL;
16515 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16516 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16517 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16518 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16519 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16520 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16521 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16522 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16523 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16524 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16525 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16526 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16527 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16529 ndr_print_enum(ndr, name, "ENUM", val, r);
16532 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16535 return NDR_ERR_SUCCESS;
16538 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16543 return NDR_ERR_SUCCESS;
16546 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16548 const char *val = NULL;
16551 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16552 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16553 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16555 ndr_print_enum(ndr, name, "ENUM", val, r);
16558 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16560 if (ndr_flags & NDR_SCALARS) {
16561 NDR_CHECK(ndr_push_align(ndr, 4));
16562 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16564 uint32_t _flags_save_string = ndr->flags;
16565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16566 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16567 ndr->flags = _flags_save_string;
16569 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16571 if (ndr_flags & NDR_BUFFERS) {
16573 uint32_t _flags_save_string = ndr->flags;
16574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16575 if (r->status_string) {
16576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16579 ndr->flags = _flags_save_string;
16582 return NDR_ERR_SUCCESS;
16585 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16587 uint32_t _ptr_status_string;
16588 TALLOC_CTX *_mem_save_status_string_0;
16589 if (ndr_flags & NDR_SCALARS) {
16590 NDR_CHECK(ndr_pull_align(ndr, 4));
16591 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16593 uint32_t _flags_save_string = ndr->flags;
16594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16596 if (_ptr_status_string) {
16597 NDR_PULL_ALLOC(ndr, r->status_string);
16598 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16600 r->status_string = NULL;
16602 ndr->flags = _flags_save_string;
16604 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16606 if (ndr_flags & NDR_BUFFERS) {
16608 uint32_t _flags_save_string = ndr->flags;
16609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16610 if (r->status_string) {
16611 uint32_t _relative_save_offset;
16612 _relative_save_offset = ndr->offset;
16613 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16614 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16615 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16616 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16618 ndr->offset = _relative_save_offset;
16620 ndr->flags = _flags_save_string;
16623 return NDR_ERR_SUCCESS;
16626 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16628 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16630 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16631 ndr_print_ptr(ndr, "status_string", r->status_string);
16633 if (r->status_string) {
16634 ndr_print_string(ndr, "status_string", r->status_string);
16637 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16641 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16643 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16646 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16648 if (ndr_flags & NDR_SCALARS) {
16649 NDR_CHECK(ndr_push_align(ndr, 4));
16651 uint32_t _flags_save_string = ndr->flags;
16652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16653 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16654 ndr->flags = _flags_save_string;
16656 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16658 if (ndr_flags & NDR_BUFFERS) {
16660 uint32_t _flags_save_string = ndr->flags;
16661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16662 if (r->port_name) {
16663 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16664 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16666 ndr->flags = _flags_save_string;
16669 return NDR_ERR_SUCCESS;
16672 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16674 uint32_t _ptr_port_name;
16675 TALLOC_CTX *_mem_save_port_name_0;
16676 if (ndr_flags & NDR_SCALARS) {
16677 NDR_CHECK(ndr_pull_align(ndr, 4));
16679 uint32_t _flags_save_string = ndr->flags;
16680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16682 if (_ptr_port_name) {
16683 NDR_PULL_ALLOC(ndr, r->port_name);
16684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16686 r->port_name = NULL;
16688 ndr->flags = _flags_save_string;
16690 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16692 if (ndr_flags & NDR_BUFFERS) {
16694 uint32_t _flags_save_string = ndr->flags;
16695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16696 if (r->port_name) {
16697 uint32_t _relative_save_offset;
16698 _relative_save_offset = ndr->offset;
16699 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16700 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16701 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16702 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16704 ndr->offset = _relative_save_offset;
16706 ndr->flags = _flags_save_string;
16709 return NDR_ERR_SUCCESS;
16712 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16714 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16716 ndr_print_ptr(ndr, "port_name", r->port_name);
16718 if (r->port_name) {
16719 ndr_print_string(ndr, "port_name", r->port_name);
16722 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16726 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16728 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16731 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16733 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16734 if (ndr_flags & NDR_SCALARS) {
16735 int level = ndr_push_get_switch_value(ndr, r);
16738 NDR_CHECK(ndr_push_align(ndr, 4));
16739 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16740 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16744 NDR_CHECK(ndr_push_align(ndr, 4));
16745 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16746 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16750 NDR_CHECK(ndr_push_align(ndr, 4));
16751 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16752 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16756 NDR_CHECK(ndr_push_align(ndr, 4));
16757 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16758 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16766 if (ndr_flags & NDR_BUFFERS) {
16767 int level = ndr_push_get_switch_value(ndr, r);
16768 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16771 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16775 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16779 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16783 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16791 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16792 return NDR_ERR_SUCCESS;
16795 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16797 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16799 level = ndr_pull_get_switch_value(ndr, r);
16800 if (ndr_flags & NDR_SCALARS) {
16803 NDR_CHECK(ndr_pull_align(ndr, 4));
16804 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16805 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16809 NDR_CHECK(ndr_pull_align(ndr, 4));
16810 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16811 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16815 NDR_CHECK(ndr_pull_align(ndr, 4));
16816 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16817 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16821 NDR_CHECK(ndr_pull_align(ndr, 4));
16822 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16823 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16831 if (ndr_flags & NDR_BUFFERS) {
16832 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16835 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16839 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16843 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16847 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16855 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16856 return NDR_ERR_SUCCESS;
16859 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16862 level = ndr_print_get_switch_value(ndr, r);
16863 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16866 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16870 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16874 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16878 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16887 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16889 if (ndr_flags & NDR_SCALARS) {
16890 NDR_CHECK(ndr_push_align(ndr, 4));
16892 uint32_t _flags_save_string = ndr->flags;
16893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16895 ndr->flags = _flags_save_string;
16898 if (ndr_flags & NDR_BUFFERS) {
16900 uint32_t _flags_save_string = ndr->flags;
16901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16902 if (r->monitor_name) {
16903 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16904 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16906 ndr->flags = _flags_save_string;
16909 return NDR_ERR_SUCCESS;
16912 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16914 uint32_t _ptr_monitor_name;
16915 TALLOC_CTX *_mem_save_monitor_name_0;
16916 if (ndr_flags & NDR_SCALARS) {
16917 NDR_CHECK(ndr_pull_align(ndr, 4));
16919 uint32_t _flags_save_string = ndr->flags;
16920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16922 if (_ptr_monitor_name) {
16923 NDR_PULL_ALLOC(ndr, r->monitor_name);
16924 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16926 r->monitor_name = NULL;
16928 ndr->flags = _flags_save_string;
16931 if (ndr_flags & NDR_BUFFERS) {
16933 uint32_t _flags_save_string = ndr->flags;
16934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16935 if (r->monitor_name) {
16936 uint32_t _relative_save_offset;
16937 _relative_save_offset = ndr->offset;
16938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16939 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16940 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16943 ndr->offset = _relative_save_offset;
16945 ndr->flags = _flags_save_string;
16948 return NDR_ERR_SUCCESS;
16951 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16953 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16955 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16957 if (r->monitor_name) {
16958 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16964 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16966 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16969 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16971 if (ndr_flags & NDR_SCALARS) {
16972 NDR_CHECK(ndr_push_align(ndr, 4));
16974 uint32_t _flags_save_string = ndr->flags;
16975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16976 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16977 ndr->flags = _flags_save_string;
16980 uint32_t _flags_save_string = ndr->flags;
16981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16982 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16983 ndr->flags = _flags_save_string;
16986 uint32_t _flags_save_string = ndr->flags;
16987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16988 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16989 ndr->flags = _flags_save_string;
16992 if (ndr_flags & NDR_BUFFERS) {
16994 uint32_t _flags_save_string = ndr->flags;
16995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16996 if (r->monitor_name) {
16997 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17000 ndr->flags = _flags_save_string;
17003 uint32_t _flags_save_string = ndr->flags;
17004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17005 if (r->environment) {
17006 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17007 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17009 ndr->flags = _flags_save_string;
17012 uint32_t _flags_save_string = ndr->flags;
17013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17015 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17016 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17018 ndr->flags = _flags_save_string;
17021 return NDR_ERR_SUCCESS;
17024 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17026 uint32_t _ptr_monitor_name;
17027 TALLOC_CTX *_mem_save_monitor_name_0;
17028 uint32_t _ptr_environment;
17029 TALLOC_CTX *_mem_save_environment_0;
17030 uint32_t _ptr_dll_name;
17031 TALLOC_CTX *_mem_save_dll_name_0;
17032 if (ndr_flags & NDR_SCALARS) {
17033 NDR_CHECK(ndr_pull_align(ndr, 4));
17035 uint32_t _flags_save_string = ndr->flags;
17036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17038 if (_ptr_monitor_name) {
17039 NDR_PULL_ALLOC(ndr, r->monitor_name);
17040 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17042 r->monitor_name = NULL;
17044 ndr->flags = _flags_save_string;
17047 uint32_t _flags_save_string = ndr->flags;
17048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17050 if (_ptr_environment) {
17051 NDR_PULL_ALLOC(ndr, r->environment);
17052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17054 r->environment = NULL;
17056 ndr->flags = _flags_save_string;
17059 uint32_t _flags_save_string = ndr->flags;
17060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17062 if (_ptr_dll_name) {
17063 NDR_PULL_ALLOC(ndr, r->dll_name);
17064 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17066 r->dll_name = NULL;
17068 ndr->flags = _flags_save_string;
17071 if (ndr_flags & NDR_BUFFERS) {
17073 uint32_t _flags_save_string = ndr->flags;
17074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17075 if (r->monitor_name) {
17076 uint32_t _relative_save_offset;
17077 _relative_save_offset = ndr->offset;
17078 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17079 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17080 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17081 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17083 ndr->offset = _relative_save_offset;
17085 ndr->flags = _flags_save_string;
17088 uint32_t _flags_save_string = ndr->flags;
17089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17090 if (r->environment) {
17091 uint32_t _relative_save_offset;
17092 _relative_save_offset = ndr->offset;
17093 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17094 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17095 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17096 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17098 ndr->offset = _relative_save_offset;
17100 ndr->flags = _flags_save_string;
17103 uint32_t _flags_save_string = ndr->flags;
17104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17106 uint32_t _relative_save_offset;
17107 _relative_save_offset = ndr->offset;
17108 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17109 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17110 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17111 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17113 ndr->offset = _relative_save_offset;
17115 ndr->flags = _flags_save_string;
17118 return NDR_ERR_SUCCESS;
17121 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17123 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17125 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17127 if (r->monitor_name) {
17128 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17131 ndr_print_ptr(ndr, "environment", r->environment);
17133 if (r->environment) {
17134 ndr_print_string(ndr, "environment", r->environment);
17137 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17140 ndr_print_string(ndr, "dll_name", r->dll_name);
17146 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17148 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17151 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17153 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17154 if (ndr_flags & NDR_SCALARS) {
17155 int level = ndr_push_get_switch_value(ndr, r);
17158 NDR_CHECK(ndr_push_align(ndr, 4));
17159 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17160 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17164 NDR_CHECK(ndr_push_align(ndr, 4));
17165 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17166 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17174 if (ndr_flags & NDR_BUFFERS) {
17175 int level = ndr_push_get_switch_value(ndr, r);
17176 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17179 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17183 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17191 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17192 return NDR_ERR_SUCCESS;
17195 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17197 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17199 level = ndr_pull_get_switch_value(ndr, r);
17200 if (ndr_flags & NDR_SCALARS) {
17203 NDR_CHECK(ndr_pull_align(ndr, 4));
17204 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17205 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17209 NDR_CHECK(ndr_pull_align(ndr, 4));
17210 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17211 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17219 if (ndr_flags & NDR_BUFFERS) {
17220 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17223 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17227 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17235 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17236 return NDR_ERR_SUCCESS;
17239 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17242 level = ndr_print_get_switch_value(ndr, r);
17243 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17246 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17250 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17259 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17261 if (ndr_flags & NDR_SCALARS) {
17262 NDR_CHECK(ndr_push_align(ndr, 4));
17264 uint32_t _flags_save_string = ndr->flags;
17265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17266 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17267 ndr->flags = _flags_save_string;
17270 if (ndr_flags & NDR_BUFFERS) {
17272 uint32_t _flags_save_string = ndr->flags;
17273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17274 if (r->name_array) {
17275 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17276 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17278 ndr->flags = _flags_save_string;
17281 return NDR_ERR_SUCCESS;
17284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17286 uint32_t _ptr_name_array;
17287 TALLOC_CTX *_mem_save_name_array_0;
17288 if (ndr_flags & NDR_SCALARS) {
17289 NDR_CHECK(ndr_pull_align(ndr, 4));
17291 uint32_t _flags_save_string = ndr->flags;
17292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17294 if (_ptr_name_array) {
17295 NDR_PULL_ALLOC(ndr, r->name_array);
17296 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17298 r->name_array = NULL;
17300 ndr->flags = _flags_save_string;
17303 if (ndr_flags & NDR_BUFFERS) {
17305 uint32_t _flags_save_string = ndr->flags;
17306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17307 if (r->name_array) {
17308 uint32_t _relative_save_offset;
17309 _relative_save_offset = ndr->offset;
17310 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17311 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17312 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17313 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17315 ndr->offset = _relative_save_offset;
17317 ndr->flags = _flags_save_string;
17320 return NDR_ERR_SUCCESS;
17323 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17325 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17327 ndr_print_ptr(ndr, "name_array", r->name_array);
17329 if (r->name_array) {
17330 ndr_print_string(ndr, "name_array", r->name_array);
17336 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17338 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17341 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17343 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17344 if (ndr_flags & NDR_SCALARS) {
17345 int level = ndr_push_get_switch_value(ndr, r);
17348 NDR_CHECK(ndr_push_align(ndr, 4));
17349 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17350 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17358 if (ndr_flags & NDR_BUFFERS) {
17359 int level = ndr_push_get_switch_value(ndr, r);
17360 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17363 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17371 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17372 return NDR_ERR_SUCCESS;
17375 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17377 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17379 level = ndr_pull_get_switch_value(ndr, r);
17380 if (ndr_flags & NDR_SCALARS) {
17383 NDR_CHECK(ndr_pull_align(ndr, 4));
17384 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17385 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17393 if (ndr_flags & NDR_BUFFERS) {
17394 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17397 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17405 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17406 return NDR_ERR_SUCCESS;
17409 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17412 level = ndr_print_get_switch_value(ndr, r);
17413 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17416 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17425 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17428 return NDR_ERR_SUCCESS;
17431 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17436 return NDR_ERR_SUCCESS;
17439 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17441 ndr_print_uint32(ndr, name, r);
17443 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17445 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17446 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17447 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17452 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17467 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17469 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17470 return NDR_ERR_SUCCESS;
17473 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17476 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17478 return NDR_ERR_SUCCESS;
17481 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17483 const char *val = NULL;
17486 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17487 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17488 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17489 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17490 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17491 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17492 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17493 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17494 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17495 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17496 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17497 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17498 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17499 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17500 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17501 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17502 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17503 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17504 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17505 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17506 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17507 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17508 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17509 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17511 ndr_print_enum(ndr, name, "ENUM", val, r);
17514 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17516 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17517 return NDR_ERR_SUCCESS;
17520 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17523 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17525 return NDR_ERR_SUCCESS;
17528 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17530 const char *val = NULL;
17533 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17534 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17535 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17536 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17537 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17538 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17539 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17540 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17541 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17542 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17543 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17544 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17545 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17546 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17547 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17548 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17549 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17550 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17551 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17552 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17553 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17554 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17555 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17556 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17557 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17558 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17559 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17560 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17562 ndr_print_enum(ndr, name, "ENUM", val, r);
17565 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17567 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17568 return NDR_ERR_SUCCESS;
17571 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17574 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17576 return NDR_ERR_SUCCESS;
17579 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17581 const char *val = NULL;
17584 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17585 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17587 ndr_print_enum(ndr, name, "ENUM", val, r);
17590 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17592 if (ndr_flags & NDR_SCALARS) {
17593 int level = ndr_push_get_switch_value(ndr, r);
17595 case PRINTER_NOTIFY_TYPE: {
17596 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17599 case JOB_NOTIFY_TYPE: {
17600 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17604 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17609 if (ndr_flags & NDR_BUFFERS) {
17610 int level = ndr_push_get_switch_value(ndr, r);
17612 case PRINTER_NOTIFY_TYPE:
17615 case JOB_NOTIFY_TYPE:
17623 return NDR_ERR_SUCCESS;
17626 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17629 level = ndr_pull_get_switch_value(ndr, r);
17630 if (ndr_flags & NDR_SCALARS) {
17632 case PRINTER_NOTIFY_TYPE: {
17633 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17636 case JOB_NOTIFY_TYPE: {
17637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17646 if (ndr_flags & NDR_BUFFERS) {
17648 case PRINTER_NOTIFY_TYPE:
17651 case JOB_NOTIFY_TYPE:
17659 return NDR_ERR_SUCCESS;
17662 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17664 uint32_t cntr_fields_1;
17665 if (ndr_flags & NDR_SCALARS) {
17666 NDR_CHECK(ndr_push_align(ndr, 4));
17667 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17668 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17674 if (ndr_flags & NDR_BUFFERS) {
17676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17677 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17678 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17679 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17683 return NDR_ERR_SUCCESS;
17686 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17688 uint32_t _ptr_fields;
17689 uint32_t cntr_fields_1;
17690 TALLOC_CTX *_mem_save_fields_0;
17691 TALLOC_CTX *_mem_save_fields_1;
17692 if (ndr_flags & NDR_SCALARS) {
17693 NDR_CHECK(ndr_pull_align(ndr, 4));
17694 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17695 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17701 NDR_PULL_ALLOC(ndr, r->fields);
17706 if (ndr_flags & NDR_BUFFERS) {
17708 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17709 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17710 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17711 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17712 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17713 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17714 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17715 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17716 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17722 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17725 return NDR_ERR_SUCCESS;
17728 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17730 uint32_t cntr_fields_1;
17731 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17733 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17734 ndr_print_uint16(ndr, "u1", r->u1);
17735 ndr_print_uint32(ndr, "u2", r->u2);
17736 ndr_print_uint32(ndr, "u3", r->u3);
17737 ndr_print_uint32(ndr, "count", r->count);
17738 ndr_print_ptr(ndr, "fields", r->fields);
17741 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17743 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17745 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17746 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17747 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17757 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17760 return NDR_ERR_SUCCESS;
17763 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17768 return NDR_ERR_SUCCESS;
17771 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17773 ndr_print_uint32(ndr, name, r);
17775 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17779 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17781 uint32_t cntr_types_1;
17782 if (ndr_flags & NDR_SCALARS) {
17783 NDR_CHECK(ndr_push_align(ndr, 4));
17784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17785 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17789 if (ndr_flags & NDR_BUFFERS) {
17791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17792 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17793 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17795 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17796 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17800 return NDR_ERR_SUCCESS;
17803 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17805 uint32_t _ptr_types;
17806 uint32_t cntr_types_1;
17807 TALLOC_CTX *_mem_save_types_0;
17808 TALLOC_CTX *_mem_save_types_1;
17809 if (ndr_flags & NDR_SCALARS) {
17810 NDR_CHECK(ndr_pull_align(ndr, 4));
17811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17812 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17816 NDR_PULL_ALLOC(ndr, r->types);
17821 if (ndr_flags & NDR_BUFFERS) {
17823 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17824 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17825 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17826 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17827 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17828 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17829 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17830 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17832 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17833 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17839 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17842 return NDR_ERR_SUCCESS;
17845 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17847 uint32_t cntr_types_1;
17848 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17850 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17851 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17852 ndr_print_uint32(ndr, "count", r->count);
17853 ndr_print_ptr(ndr, "types", r->types);
17856 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17858 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17860 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17861 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17871 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17873 if (ndr_flags & NDR_SCALARS) {
17874 NDR_CHECK(ndr_push_align(ndr, 4));
17875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17878 if (ndr_flags & NDR_BUFFERS) {
17880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17884 return NDR_ERR_SUCCESS;
17887 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17889 uint32_t _ptr_string;
17890 TALLOC_CTX *_mem_save_string_0;
17891 if (ndr_flags & NDR_SCALARS) {
17892 NDR_CHECK(ndr_pull_align(ndr, 4));
17893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17896 NDR_PULL_ALLOC(ndr, r->string);
17901 if (ndr_flags & NDR_BUFFERS) {
17903 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17904 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17905 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17906 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17910 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17913 return NDR_ERR_SUCCESS;
17916 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17918 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17920 ndr_print_uint32(ndr, "size", r->size);
17921 ndr_print_ptr(ndr, "string", r->string);
17924 ndr_print_string(ndr, "string", r->string);
17930 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17933 return NDR_ERR_SUCCESS;
17936 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17941 return NDR_ERR_SUCCESS;
17944 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17946 const char *val = NULL;
17949 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17950 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17951 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17952 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17953 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17955 ndr_print_enum(ndr, name, "ENUM", val, r);
17958 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17960 if (ndr_flags & NDR_SCALARS) {
17961 int level = ndr_push_get_switch_value(ndr, r);
17962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17965 uint32_t cntr_integer_0;
17966 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17972 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17976 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17980 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17984 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17988 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17991 if (ndr_flags & NDR_BUFFERS) {
17992 int level = ndr_push_get_switch_value(ndr, r);
17998 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18002 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18006 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18010 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18014 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18017 return NDR_ERR_SUCCESS;
18020 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18024 level = ndr_pull_get_switch_value(ndr, r);
18025 if (ndr_flags & NDR_SCALARS) {
18026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18027 if (_level != level) {
18028 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18032 uint32_t cntr_integer_0;
18033 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18039 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18043 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18047 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18051 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18055 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18058 if (ndr_flags & NDR_BUFFERS) {
18064 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18068 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18072 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18076 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18080 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18083 return NDR_ERR_SUCCESS;
18086 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18089 uint32_t cntr_integer_0;
18090 level = ndr_print_get_switch_value(ndr, r);
18091 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18094 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18096 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18098 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18099 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18107 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18111 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18115 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18119 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18123 ndr_print_bad_level(ndr, name, level);
18127 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18129 if (ndr_flags & NDR_SCALARS) {
18130 NDR_CHECK(ndr_push_align(ndr, 4));
18131 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18132 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18133 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18134 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18136 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18137 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18139 if (ndr_flags & NDR_BUFFERS) {
18140 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18142 return NDR_ERR_SUCCESS;
18145 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18147 if (ndr_flags & NDR_SCALARS) {
18148 NDR_CHECK(ndr_pull_align(ndr, 4));
18149 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18150 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18151 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18152 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18154 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18155 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18157 if (ndr_flags & NDR_BUFFERS) {
18158 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18160 return NDR_ERR_SUCCESS;
18163 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18165 ndr_print_struct(ndr, name, "spoolss_Notify");
18167 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18168 ndr_print_set_switch_value(ndr, &r->field, r->type);
18169 ndr_print_spoolss_Field(ndr, "field", &r->field);
18170 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18171 ndr_print_uint32(ndr, "job_id", r->job_id);
18172 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18173 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18177 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18179 uint32_t cntr_notifies_0;
18180 if (ndr_flags & NDR_SCALARS) {
18181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18182 NDR_CHECK(ndr_push_align(ndr, 4));
18183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18186 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18187 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18190 if (ndr_flags & NDR_BUFFERS) {
18191 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18192 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18195 return NDR_ERR_SUCCESS;
18198 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18200 uint32_t cntr_notifies_0;
18201 TALLOC_CTX *_mem_save_notifies_0;
18202 if (ndr_flags & NDR_SCALARS) {
18203 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18204 NDR_CHECK(ndr_pull_align(ndr, 4));
18205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18208 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18209 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18210 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18211 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18212 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18216 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18219 if (ndr_flags & NDR_BUFFERS) {
18220 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18221 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18222 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18223 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18227 return NDR_ERR_SUCCESS;
18230 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18232 uint32_t cntr_notifies_0;
18233 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18235 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18236 ndr_print_uint32(ndr, "flags", r->flags);
18237 ndr_print_uint32(ndr, "count", r->count);
18238 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18240 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18242 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18243 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18251 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18253 if (ndr_flags & NDR_SCALARS) {
18254 int level = ndr_push_get_switch_value(ndr, r);
18255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18258 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18262 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18265 if (ndr_flags & NDR_BUFFERS) {
18266 int level = ndr_push_get_switch_value(ndr, r);
18270 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18275 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18278 return NDR_ERR_SUCCESS;
18281 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18285 TALLOC_CTX *_mem_save_info0_0;
18286 level = ndr_pull_get_switch_value(ndr, r);
18287 if (ndr_flags & NDR_SCALARS) {
18288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18289 if (_level != level) {
18290 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18294 uint32_t _ptr_info0;
18295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18297 NDR_PULL_ALLOC(ndr, r->info0);
18304 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18307 if (ndr_flags & NDR_BUFFERS) {
18311 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18312 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18313 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18319 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18322 return NDR_ERR_SUCCESS;
18325 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18328 level = ndr_print_get_switch_value(ndr, r);
18329 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18332 ndr_print_ptr(ndr, "info0", r->info0);
18335 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18341 ndr_print_bad_level(ndr, name, level);
18345 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18348 return NDR_ERR_SUCCESS;
18351 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18356 return NDR_ERR_SUCCESS;
18359 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18361 ndr_print_uint32(ndr, name, r);
18363 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18364 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18365 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18369 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18371 if (ndr_flags & NDR_SCALARS) {
18372 NDR_CHECK(ndr_push_align(ndr, 4));
18373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18377 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18378 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18379 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18381 if (ndr_flags & NDR_BUFFERS) {
18383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18395 return NDR_ERR_SUCCESS;
18398 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18400 uint32_t _ptr_client;
18401 TALLOC_CTX *_mem_save_client_0;
18402 uint32_t _ptr_user;
18403 TALLOC_CTX *_mem_save_user_0;
18404 if (ndr_flags & NDR_SCALARS) {
18405 NDR_CHECK(ndr_pull_align(ndr, 4));
18406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18409 NDR_PULL_ALLOC(ndr, r->client);
18413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18415 NDR_PULL_ALLOC(ndr, r->user);
18419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18420 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18421 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18422 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18424 if (ndr_flags & NDR_BUFFERS) {
18426 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18427 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18428 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18429 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18430 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18431 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));
18433 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18438 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18439 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18440 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18441 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18442 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18443 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));
18445 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18446 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18450 return NDR_ERR_SUCCESS;
18453 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18455 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18457 ndr_print_uint32(ndr, "size", r->size);
18458 ndr_print_ptr(ndr, "client", r->client);
18461 ndr_print_string(ndr, "client", r->client);
18464 ndr_print_ptr(ndr, "user", r->user);
18467 ndr_print_string(ndr, "user", r->user);
18470 ndr_print_uint32(ndr, "build", r->build);
18471 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18472 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18473 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18477 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18479 if (ndr_flags & NDR_SCALARS) {
18480 NDR_CHECK(ndr_push_align(ndr, 4));
18481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18483 if (ndr_flags & NDR_BUFFERS) {
18485 return NDR_ERR_SUCCESS;
18488 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18490 if (ndr_flags & NDR_SCALARS) {
18491 NDR_CHECK(ndr_pull_align(ndr, 4));
18492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18494 if (ndr_flags & NDR_BUFFERS) {
18496 return NDR_ERR_SUCCESS;
18499 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18501 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18503 ndr_print_uint32(ndr, "not_used", r->not_used);
18507 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18509 if (ndr_flags & NDR_SCALARS) {
18510 NDR_CHECK(ndr_push_align(ndr, 4));
18511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18514 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18515 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18517 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18518 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18519 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18520 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18522 if (ndr_flags & NDR_BUFFERS) {
18524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18533 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18536 return NDR_ERR_SUCCESS;
18539 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18541 uint32_t _ptr_client;
18542 TALLOC_CTX *_mem_save_client_0;
18543 uint32_t _ptr_user;
18544 TALLOC_CTX *_mem_save_user_0;
18545 if (ndr_flags & NDR_SCALARS) {
18546 NDR_CHECK(ndr_pull_align(ndr, 4));
18547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18552 NDR_PULL_ALLOC(ndr, r->client);
18556 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18558 NDR_PULL_ALLOC(ndr, r->user);
18562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18563 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18564 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18565 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18566 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18568 if (ndr_flags & NDR_BUFFERS) {
18570 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18571 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18572 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18573 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18574 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18575 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));
18577 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18578 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18582 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18583 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18584 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18585 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18586 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18587 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));
18589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18594 return NDR_ERR_SUCCESS;
18597 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18599 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18601 ndr_print_uint32(ndr, "size", r->size);
18602 ndr_print_uint32(ndr, "flags", r->flags);
18603 ndr_print_uint32(ndr, "size2", r->size2);
18604 ndr_print_ptr(ndr, "client", r->client);
18607 ndr_print_string(ndr, "client", r->client);
18610 ndr_print_ptr(ndr, "user", r->user);
18613 ndr_print_string(ndr, "user", r->user);
18616 ndr_print_uint32(ndr, "build", r->build);
18617 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18618 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18619 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18620 ndr_print_udlong(ndr, "reserved", r->reserved);
18624 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18626 if (ndr_flags & NDR_SCALARS) {
18627 int level = ndr_push_get_switch_value(ndr, r);
18628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18639 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18643 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18646 if (ndr_flags & NDR_BUFFERS) {
18647 int level = ndr_push_get_switch_value(ndr, r);
18651 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18657 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18663 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18668 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18671 return NDR_ERR_SUCCESS;
18674 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18678 TALLOC_CTX *_mem_save_level1_0;
18679 TALLOC_CTX *_mem_save_level2_0;
18680 TALLOC_CTX *_mem_save_level3_0;
18681 level = ndr_pull_get_switch_value(ndr, r);
18682 if (ndr_flags & NDR_SCALARS) {
18683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18684 if (_level != level) {
18685 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18689 uint32_t _ptr_level1;
18690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18692 NDR_PULL_ALLOC(ndr, r->level1);
18699 uint32_t _ptr_level2;
18700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18702 NDR_PULL_ALLOC(ndr, r->level2);
18709 uint32_t _ptr_level3;
18710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18712 NDR_PULL_ALLOC(ndr, r->level3);
18719 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18722 if (ndr_flags & NDR_BUFFERS) {
18726 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18727 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18728 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18735 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18736 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18737 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18744 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18745 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18746 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18752 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18755 return NDR_ERR_SUCCESS;
18758 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18761 level = ndr_print_get_switch_value(ndr, r);
18762 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18765 ndr_print_ptr(ndr, "level1", r->level1);
18768 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18774 ndr_print_ptr(ndr, "level2", r->level2);
18777 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18783 ndr_print_ptr(ndr, "level3", r->level3);
18786 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18792 ndr_print_bad_level(ndr, name, level);
18796 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18798 if (ndr_flags & NDR_SCALARS) {
18799 NDR_CHECK(ndr_push_align(ndr, 4));
18800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18801 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18802 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18804 if (ndr_flags & NDR_BUFFERS) {
18805 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18807 return NDR_ERR_SUCCESS;
18810 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18812 if (ndr_flags & NDR_SCALARS) {
18813 NDR_CHECK(ndr_pull_align(ndr, 4));
18814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18815 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18816 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18818 if (ndr_flags & NDR_BUFFERS) {
18819 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18821 return NDR_ERR_SUCCESS;
18824 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18826 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18828 ndr_print_uint32(ndr, "level", r->level);
18829 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18830 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18834 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18837 return NDR_ERR_SUCCESS;
18840 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18845 return NDR_ERR_SUCCESS;
18848 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18850 ndr_print_uint32(ndr, name, r);
18852 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18853 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18854 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18855 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18856 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18857 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18861 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
18863 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18864 if (ndr_flags & NDR_SCALARS) {
18865 NDR_CHECK(ndr_push_align(ndr, 4));
18866 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18868 uint32_t _flags_save_string = ndr->flags;
18869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18870 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
18871 ndr->flags = _flags_save_string;
18873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
18874 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
18875 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
18876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
18878 if (ndr_flags & NDR_BUFFERS) {
18879 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18881 uint32_t _flags_save_string = ndr->flags;
18882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18883 if (r->value_name) {
18884 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
18885 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
18887 ndr->flags = _flags_save_string;
18890 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
18892 struct ndr_push *_ndr_data;
18893 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18894 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
18895 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18896 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18900 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18901 return NDR_ERR_SUCCESS;
18904 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
18906 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18907 uint32_t _ptr_value_name;
18908 TALLOC_CTX *_mem_save_value_name_0;
18909 uint32_t _ptr_data;
18910 TALLOC_CTX *_mem_save_data_0;
18911 if (ndr_flags & NDR_SCALARS) {
18912 NDR_CHECK(ndr_pull_align(ndr, 4));
18913 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18915 uint32_t _flags_save_string = ndr->flags;
18916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
18918 if (_ptr_value_name) {
18919 NDR_PULL_ALLOC(ndr, r->value_name);
18920 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
18922 r->value_name = NULL;
18924 ndr->flags = _flags_save_string;
18926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
18927 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
18928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
18930 NDR_PULL_ALLOC(ndr, r->data);
18931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
18935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
18937 if (ndr_flags & NDR_BUFFERS) {
18938 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18940 uint32_t _flags_save_string = ndr->flags;
18941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18942 if (r->value_name) {
18943 uint32_t _relative_save_offset;
18944 _relative_save_offset = ndr->offset;
18945 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
18946 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18947 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
18948 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
18949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
18950 ndr->offset = _relative_save_offset;
18952 ndr->flags = _flags_save_string;
18955 uint32_t _relative_save_offset;
18956 _relative_save_offset = ndr->offset;
18957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
18958 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
18959 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
18961 struct ndr_pull *_ndr_data;
18962 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18963 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
18964 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18965 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
18968 ndr->offset = _relative_save_offset;
18971 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18972 return NDR_ERR_SUCCESS;
18975 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
18977 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
18979 ndr_print_ptr(ndr, "value_name", r->value_name);
18981 if (r->value_name) {
18982 ndr_print_string(ndr, "value_name", r->value_name);
18985 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
18986 ndr_print_winreg_Type(ndr, "type", r->type);
18987 ndr_print_ptr(ndr, "data", r->data);
18990 ndr_print_set_switch_value(ndr, r->data, r->type);
18991 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
18994 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);
18998 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19000 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19003 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19006 return NDR_ERR_SUCCESS;
19009 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19014 return NDR_ERR_SUCCESS;
19017 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19019 ndr_print_uint32(ndr, name, r);
19021 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19022 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19023 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19027 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19030 return NDR_ERR_SUCCESS;
19033 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19038 return NDR_ERR_SUCCESS;
19041 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19043 const char *val = NULL;
19046 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19047 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19049 ndr_print_enum(ndr, name, "ENUM", val, r);
19052 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19054 if (ndr_flags & NDR_SCALARS) {
19055 NDR_CHECK(ndr_push_align(ndr, 4));
19056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19058 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19061 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19064 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19067 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19072 if (ndr_flags & NDR_BUFFERS) {
19074 return NDR_ERR_SUCCESS;
19077 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19079 if (ndr_flags & NDR_SCALARS) {
19080 NDR_CHECK(ndr_pull_align(ndr, 4));
19081 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19083 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19087 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19088 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19090 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19091 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19092 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19095 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19097 if (ndr_flags & NDR_BUFFERS) {
19099 return NDR_ERR_SUCCESS;
19102 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19104 ndr_print_struct(ndr, name, "spoolss_PortData1");
19106 ndr_print_string(ndr, "portname", r->portname);
19107 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19108 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19110 ndr_print_uint32(ndr, "reserved", r->reserved);
19111 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19112 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19113 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19114 ndr_print_string(ndr, "queue", r->queue);
19115 ndr_print_string(ndr, "ip_address", r->ip_address);
19116 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19117 ndr_print_string(ndr, "device_type", r->device_type);
19118 ndr_print_uint32(ndr, "port_number", r->port_number);
19119 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19120 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19124 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19126 if (ndr_flags & NDR_SCALARS) {
19127 NDR_CHECK(ndr_push_align(ndr, 4));
19128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19130 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19133 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19136 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19137 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19143 if (ndr_flags & NDR_BUFFERS) {
19145 return NDR_ERR_SUCCESS;
19148 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19150 if (ndr_flags & NDR_SCALARS) {
19151 NDR_CHECK(ndr_pull_align(ndr, 4));
19152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19154 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19157 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19158 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19161 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19167 if (ndr_flags & NDR_BUFFERS) {
19169 return NDR_ERR_SUCCESS;
19172 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19174 ndr_print_struct(ndr, name, "spoolss_PortData2");
19176 ndr_print_string(ndr, "portname", r->portname);
19177 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19178 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19179 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19180 ndr_print_uint32(ndr, "reserved", r->reserved);
19181 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19182 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19183 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19184 ndr_print_string(ndr, "queue", r->queue);
19185 ndr_print_string(ndr, "device_type", r->device_type);
19186 ndr_print_uint32(ndr, "port_number", r->port_number);
19187 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19188 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19189 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19193 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19195 if (ndr_flags & NDR_SCALARS) {
19196 NDR_CHECK(ndr_push_align(ndr, 4));
19198 uint32_t _flags_save_string = ndr->flags;
19199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19200 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19201 ndr->flags = _flags_save_string;
19204 if (ndr_flags & NDR_BUFFERS) {
19206 return NDR_ERR_SUCCESS;
19209 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19211 if (ndr_flags & NDR_SCALARS) {
19212 NDR_CHECK(ndr_pull_align(ndr, 4));
19214 uint32_t _flags_save_string = ndr->flags;
19215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19216 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19217 ndr->flags = _flags_save_string;
19220 if (ndr_flags & NDR_BUFFERS) {
19222 return NDR_ERR_SUCCESS;
19225 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19227 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19229 ndr_print_string(ndr, "dll_name", r->dll_name);
19233 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19236 return NDR_ERR_SUCCESS;
19239 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19244 return NDR_ERR_SUCCESS;
19247 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19249 ndr_print_uint32(ndr, name, r);
19251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19262 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19264 if (flags & NDR_IN) {
19265 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19266 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19267 if (r->in.server) {
19268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19271 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19275 if (r->in.buffer) {
19276 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19280 if (flags & NDR_OUT) {
19281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19283 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19285 if (r->out.needed == NULL) {
19286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19289 if (r->out.count == NULL) {
19290 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19293 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19295 return NDR_ERR_SUCCESS;
19298 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19300 uint32_t _ptr_server;
19301 uint32_t _ptr_buffer;
19302 uint32_t _ptr_info;
19303 TALLOC_CTX *_mem_save_server_0;
19304 TALLOC_CTX *_mem_save_buffer_0;
19305 TALLOC_CTX *_mem_save_info_0;
19306 TALLOC_CTX *_mem_save_needed_0;
19307 TALLOC_CTX *_mem_save_count_0;
19308 if (flags & NDR_IN) {
19309 ZERO_STRUCT(r->out);
19311 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19314 NDR_PULL_ALLOC(ndr, r->in.server);
19316 r->in.server = NULL;
19318 if (r->in.server) {
19319 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19320 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19321 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19322 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19323 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19324 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));
19326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19333 NDR_PULL_ALLOC(ndr, r->in.buffer);
19335 r->in.buffer = NULL;
19337 if (r->in.buffer) {
19338 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19339 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19340 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19344 NDR_PULL_ALLOC(ndr, r->out.needed);
19345 ZERO_STRUCTP(r->out.needed);
19346 NDR_PULL_ALLOC(ndr, r->out.count);
19347 ZERO_STRUCTP(r->out.count);
19349 if (flags & NDR_OUT) {
19350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19352 NDR_PULL_ALLOC(ndr, r->out.info);
19354 r->out.info = NULL;
19357 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19358 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19359 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19362 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19363 NDR_PULL_ALLOC(ndr, r->out.needed);
19365 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19366 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19367 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19369 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19370 NDR_PULL_ALLOC(ndr, r->out.count);
19372 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19373 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19378 return NDR_ERR_SUCCESS;
19381 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19383 uint32_t cntr_info_0;
19384 if (flags & NDR_IN) {
19385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19388 if (flags & NDR_OUT) {
19389 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19390 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19391 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19393 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19394 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19397 return NDR_ERR_SUCCESS;
19400 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19402 uint32_t cntr_info_0;
19403 TALLOC_CTX *_mem_save_info_0;
19404 if (flags & NDR_IN) {
19405 ZERO_STRUCT(r->out);
19407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19410 if (flags & NDR_OUT) {
19411 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19412 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19413 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19414 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19415 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19416 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19418 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19419 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19423 return NDR_ERR_SUCCESS;
19426 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19428 uint32_t cntr_info_2;
19429 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19431 if (flags & NDR_SET_VALUES) {
19432 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19434 if (flags & NDR_IN) {
19435 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19437 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19438 ndr_print_ptr(ndr, "server", r->in.server);
19440 if (r->in.server) {
19441 ndr_print_string(ndr, "server", r->in.server);
19444 ndr_print_uint32(ndr, "level", r->in.level);
19445 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19447 if (r->in.buffer) {
19448 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19451 ndr_print_uint32(ndr, "offered", r->in.offered);
19454 if (flags & NDR_OUT) {
19455 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
19457 ndr_print_ptr(ndr, "count", r->out.count);
19459 ndr_print_uint32(ndr, "count", *r->out.count);
19461 ndr_print_ptr(ndr, "info", r->out.info);
19463 ndr_print_ptr(ndr, "info", *r->out.info);
19465 if (*r->out.info) {
19466 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19468 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19470 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19471 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19472 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19480 ndr_print_ptr(ndr, "needed", r->out.needed);
19482 ndr_print_uint32(ndr, "needed", *r->out.needed);
19484 ndr_print_WERROR(ndr, "result", r->out.result);
19490 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
19492 if (flags & NDR_IN) {
19493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
19494 if (r->in.printername) {
19495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19500 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19501 if (r->in.datatype) {
19502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19505 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19507 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19508 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19510 if (flags & NDR_OUT) {
19511 if (r->out.handle == NULL) {
19512 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19514 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19515 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19517 return NDR_ERR_SUCCESS;
19520 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19522 uint32_t _ptr_printername;
19523 uint32_t _ptr_datatype;
19524 TALLOC_CTX *_mem_save_printername_0;
19525 TALLOC_CTX *_mem_save_datatype_0;
19526 TALLOC_CTX *_mem_save_handle_0;
19527 if (flags & NDR_IN) {
19528 ZERO_STRUCT(r->out);
19530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19531 if (_ptr_printername) {
19532 NDR_PULL_ALLOC(ndr, r->in.printername);
19534 r->in.printername = NULL;
19536 if (r->in.printername) {
19537 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19538 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19539 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19540 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19541 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19542 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));
19544 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19545 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
19546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19549 if (_ptr_datatype) {
19550 NDR_PULL_ALLOC(ndr, r->in.datatype);
19552 r->in.datatype = NULL;
19554 if (r->in.datatype) {
19555 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19556 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19557 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19558 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19559 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19560 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));
19562 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19563 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
19564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19566 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19567 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19568 NDR_PULL_ALLOC(ndr, r->out.handle);
19569 ZERO_STRUCTP(r->out.handle);
19571 if (flags & NDR_OUT) {
19572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19573 NDR_PULL_ALLOC(ndr, r->out.handle);
19575 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19576 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19577 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19581 return NDR_ERR_SUCCESS;
19584 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19586 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19588 if (flags & NDR_SET_VALUES) {
19589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19591 if (flags & NDR_IN) {
19592 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19594 ndr_print_ptr(ndr, "printername", r->in.printername);
19596 if (r->in.printername) {
19597 ndr_print_string(ndr, "printername", r->in.printername);
19600 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19602 if (r->in.datatype) {
19603 ndr_print_string(ndr, "datatype", r->in.datatype);
19606 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19607 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19610 if (flags & NDR_OUT) {
19611 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19613 ndr_print_ptr(ndr, "handle", r->out.handle);
19615 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19617 ndr_print_WERROR(ndr, "result", r->out.result);
19623 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
19625 if (flags & NDR_IN) {
19626 if (r->in.handle == NULL) {
19627 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19629 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19633 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19635 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19637 if (flags & NDR_OUT) {
19638 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19640 return NDR_ERR_SUCCESS;
19643 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19646 TALLOC_CTX *_mem_save_handle_0;
19647 TALLOC_CTX *_mem_save_ctr_0;
19648 if (flags & NDR_IN) {
19649 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19650 NDR_PULL_ALLOC(ndr, r->in.handle);
19652 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19653 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19654 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19659 NDR_PULL_ALLOC(ndr, r->in.ctr);
19664 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19665 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
19666 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
19669 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
19671 if (flags & NDR_OUT) {
19672 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19674 return NDR_ERR_SUCCESS;
19677 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
19679 ndr_print_struct(ndr, name, "spoolss_SetJob");
19681 if (flags & NDR_SET_VALUES) {
19682 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19684 if (flags & NDR_IN) {
19685 ndr_print_struct(ndr, "in", "spoolss_SetJob");
19687 ndr_print_ptr(ndr, "handle", r->in.handle);
19689 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19691 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19692 ndr_print_ptr(ndr, "ctr", r->in.ctr);
19695 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
19698 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
19701 if (flags & NDR_OUT) {
19702 ndr_print_struct(ndr, "out", "spoolss_SetJob");
19704 ndr_print_WERROR(ndr, "result", r->out.result);
19710 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
19712 if (flags & NDR_IN) {
19713 if (r->in.handle == NULL) {
19714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19716 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19720 if (r->in.buffer) {
19721 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19725 if (flags & NDR_OUT) {
19726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19729 struct ndr_push *_ndr_info;
19730 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19731 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19732 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19733 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19736 if (r->out.needed == NULL) {
19737 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19740 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19742 return NDR_ERR_SUCCESS;
19745 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
19747 uint32_t _ptr_buffer;
19748 uint32_t _ptr_info;
19749 TALLOC_CTX *_mem_save_handle_0;
19750 TALLOC_CTX *_mem_save_buffer_0;
19751 TALLOC_CTX *_mem_save_info_0;
19752 TALLOC_CTX *_mem_save_needed_0;
19753 if (flags & NDR_IN) {
19754 ZERO_STRUCT(r->out);
19756 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19757 NDR_PULL_ALLOC(ndr, r->in.handle);
19759 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19760 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19761 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19767 NDR_PULL_ALLOC(ndr, r->in.buffer);
19769 r->in.buffer = NULL;
19771 if (r->in.buffer) {
19772 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19773 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19774 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19778 NDR_PULL_ALLOC(ndr, r->out.needed);
19779 ZERO_STRUCTP(r->out.needed);
19781 if (flags & NDR_OUT) {
19782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19784 NDR_PULL_ALLOC(ndr, r->out.info);
19786 r->out.info = NULL;
19789 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19790 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19792 struct ndr_pull *_ndr_info;
19793 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19794 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19795 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19796 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19800 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19801 NDR_PULL_ALLOC(ndr, r->out.needed);
19803 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19804 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19807 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19809 return NDR_ERR_SUCCESS;
19812 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19814 ndr_print_struct(ndr, name, "spoolss_GetJob");
19816 if (flags & NDR_SET_VALUES) {
19817 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19819 if (flags & NDR_IN) {
19820 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19822 ndr_print_ptr(ndr, "handle", r->in.handle);
19824 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19826 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19827 ndr_print_uint32(ndr, "level", r->in.level);
19828 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19830 if (r->in.buffer) {
19831 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19834 ndr_print_uint32(ndr, "offered", r->in.offered);
19837 if (flags & NDR_OUT) {
19838 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19840 ndr_print_ptr(ndr, "info", r->out.info);
19843 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19844 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19847 ndr_print_ptr(ndr, "needed", r->out.needed);
19849 ndr_print_uint32(ndr, "needed", *r->out.needed);
19851 ndr_print_WERROR(ndr, "result", r->out.result);
19857 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19859 if (flags & NDR_IN) {
19860 if (r->in.handle == NULL) {
19861 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19863 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19867 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19868 if (r->in.buffer) {
19869 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19873 if (flags & NDR_OUT) {
19874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19876 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19878 if (r->out.needed == NULL) {
19879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19882 if (r->out.count == NULL) {
19883 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19886 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19888 return NDR_ERR_SUCCESS;
19891 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19893 uint32_t _ptr_buffer;
19894 uint32_t _ptr_info;
19895 TALLOC_CTX *_mem_save_handle_0;
19896 TALLOC_CTX *_mem_save_buffer_0;
19897 TALLOC_CTX *_mem_save_info_0;
19898 TALLOC_CTX *_mem_save_needed_0;
19899 TALLOC_CTX *_mem_save_count_0;
19900 if (flags & NDR_IN) {
19901 ZERO_STRUCT(r->out);
19903 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19904 NDR_PULL_ALLOC(ndr, r->in.handle);
19906 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19907 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19908 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19915 NDR_PULL_ALLOC(ndr, r->in.buffer);
19917 r->in.buffer = NULL;
19919 if (r->in.buffer) {
19920 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19921 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19922 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19926 NDR_PULL_ALLOC(ndr, r->out.needed);
19927 ZERO_STRUCTP(r->out.needed);
19928 NDR_PULL_ALLOC(ndr, r->out.count);
19929 ZERO_STRUCTP(r->out.count);
19931 if (flags & NDR_OUT) {
19932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19934 NDR_PULL_ALLOC(ndr, r->out.info);
19936 r->out.info = NULL;
19939 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19940 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19941 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19944 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19945 NDR_PULL_ALLOC(ndr, r->out.needed);
19947 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19948 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19952 NDR_PULL_ALLOC(ndr, r->out.count);
19954 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19955 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19960 return NDR_ERR_SUCCESS;
19963 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19965 uint32_t cntr_info_0;
19966 if (flags & NDR_IN) {
19967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19970 if (flags & NDR_OUT) {
19971 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19972 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19973 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19975 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19976 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19979 return NDR_ERR_SUCCESS;
19982 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19984 uint32_t cntr_info_0;
19985 TALLOC_CTX *_mem_save_info_0;
19986 if (flags & NDR_IN) {
19987 ZERO_STRUCT(r->out);
19989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19992 if (flags & NDR_OUT) {
19993 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19994 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19995 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19996 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19997 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19998 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20000 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20001 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20005 return NDR_ERR_SUCCESS;
20008 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20010 uint32_t cntr_info_2;
20011 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20013 if (flags & NDR_SET_VALUES) {
20014 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20016 if (flags & NDR_IN) {
20017 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20019 ndr_print_ptr(ndr, "handle", r->in.handle);
20021 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20023 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20024 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20025 ndr_print_uint32(ndr, "level", r->in.level);
20026 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20028 if (r->in.buffer) {
20029 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20032 ndr_print_uint32(ndr, "offered", r->in.offered);
20035 if (flags & NDR_OUT) {
20036 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20038 ndr_print_ptr(ndr, "count", r->out.count);
20040 ndr_print_uint32(ndr, "count", *r->out.count);
20042 ndr_print_ptr(ndr, "info", r->out.info);
20044 ndr_print_ptr(ndr, "info", *r->out.info);
20046 if (*r->out.info) {
20047 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20049 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20051 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20052 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20053 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20061 ndr_print_ptr(ndr, "needed", r->out.needed);
20063 ndr_print_uint32(ndr, "needed", *r->out.needed);
20065 ndr_print_WERROR(ndr, "result", r->out.result);
20071 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20073 if (flags & NDR_IN) {
20074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20075 if (r->in.server) {
20076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20079 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20081 if (r->in.info_ctr == NULL) {
20082 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20084 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20085 if (r->in.devmode_ctr == NULL) {
20086 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20088 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20089 if (r->in.secdesc_ctr == NULL) {
20090 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20092 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20094 if (flags & NDR_OUT) {
20095 if (r->out.handle == NULL) {
20096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20098 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20099 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20101 return NDR_ERR_SUCCESS;
20104 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20106 uint32_t _ptr_server;
20107 TALLOC_CTX *_mem_save_server_0;
20108 TALLOC_CTX *_mem_save_info_ctr_0;
20109 TALLOC_CTX *_mem_save_devmode_ctr_0;
20110 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20111 TALLOC_CTX *_mem_save_handle_0;
20112 if (flags & NDR_IN) {
20113 ZERO_STRUCT(r->out);
20115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20117 NDR_PULL_ALLOC(ndr, r->in.server);
20119 r->in.server = NULL;
20121 if (r->in.server) {
20122 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20123 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20124 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20125 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20126 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20127 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));
20129 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20130 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20133 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20134 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20136 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20137 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20138 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20141 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20143 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20144 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20145 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20147 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20148 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20150 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20151 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20152 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20154 NDR_PULL_ALLOC(ndr, r->out.handle);
20155 ZERO_STRUCTP(r->out.handle);
20157 if (flags & NDR_OUT) {
20158 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20159 NDR_PULL_ALLOC(ndr, r->out.handle);
20161 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20162 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20163 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20167 return NDR_ERR_SUCCESS;
20170 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20172 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20174 if (flags & NDR_SET_VALUES) {
20175 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20177 if (flags & NDR_IN) {
20178 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20180 ndr_print_ptr(ndr, "server", r->in.server);
20182 if (r->in.server) {
20183 ndr_print_string(ndr, "server", r->in.server);
20186 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20188 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20190 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20192 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20194 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20196 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20200 if (flags & NDR_OUT) {
20201 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20203 ndr_print_ptr(ndr, "handle", r->out.handle);
20205 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20207 ndr_print_WERROR(ndr, "result", r->out.result);
20213 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20215 if (flags & NDR_IN) {
20216 if (r->in.handle == NULL) {
20217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20219 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20221 if (flags & NDR_OUT) {
20222 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20224 return NDR_ERR_SUCCESS;
20227 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20229 TALLOC_CTX *_mem_save_handle_0;
20230 if (flags & NDR_IN) {
20231 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20232 NDR_PULL_ALLOC(ndr, r->in.handle);
20234 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20235 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20236 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20239 if (flags & NDR_OUT) {
20240 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20242 return NDR_ERR_SUCCESS;
20245 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20247 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20249 if (flags & NDR_SET_VALUES) {
20250 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20252 if (flags & NDR_IN) {
20253 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20255 ndr_print_ptr(ndr, "handle", r->in.handle);
20257 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20261 if (flags & NDR_OUT) {
20262 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20264 ndr_print_WERROR(ndr, "result", r->out.result);
20270 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20272 if (flags & NDR_IN) {
20273 if (r->in.handle == NULL) {
20274 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20276 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20277 if (r->in.info_ctr == NULL) {
20278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20280 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20281 if (r->in.devmode_ctr == NULL) {
20282 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20284 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20285 if (r->in.secdesc_ctr == NULL) {
20286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20288 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20289 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20291 if (flags & NDR_OUT) {
20292 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20294 return NDR_ERR_SUCCESS;
20297 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20299 TALLOC_CTX *_mem_save_handle_0;
20300 TALLOC_CTX *_mem_save_info_ctr_0;
20301 TALLOC_CTX *_mem_save_devmode_ctr_0;
20302 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20303 if (flags & NDR_IN) {
20304 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20305 NDR_PULL_ALLOC(ndr, r->in.handle);
20307 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20308 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20309 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20311 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20312 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20314 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20315 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20316 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20319 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20321 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20322 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20323 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20326 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20328 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20329 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20330 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20332 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20334 if (flags & NDR_OUT) {
20335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20337 return NDR_ERR_SUCCESS;
20340 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20342 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20344 if (flags & NDR_SET_VALUES) {
20345 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20347 if (flags & NDR_IN) {
20348 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20350 ndr_print_ptr(ndr, "handle", r->in.handle);
20352 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20354 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20356 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20358 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20360 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20362 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20364 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20366 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20369 if (flags & NDR_OUT) {
20370 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20372 ndr_print_WERROR(ndr, "result", r->out.result);
20378 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20380 if (flags & NDR_IN) {
20381 if (r->in.handle == NULL) {
20382 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20384 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20387 if (r->in.buffer) {
20388 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20392 if (flags & NDR_OUT) {
20393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20396 struct ndr_push *_ndr_info;
20397 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20398 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20399 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20400 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20403 if (r->out.needed == NULL) {
20404 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20409 return NDR_ERR_SUCCESS;
20412 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20414 uint32_t _ptr_buffer;
20415 uint32_t _ptr_info;
20416 TALLOC_CTX *_mem_save_handle_0;
20417 TALLOC_CTX *_mem_save_buffer_0;
20418 TALLOC_CTX *_mem_save_info_0;
20419 TALLOC_CTX *_mem_save_needed_0;
20420 if (flags & NDR_IN) {
20421 ZERO_STRUCT(r->out);
20423 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20424 NDR_PULL_ALLOC(ndr, r->in.handle);
20426 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20427 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20428 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20431 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20433 NDR_PULL_ALLOC(ndr, r->in.buffer);
20435 r->in.buffer = NULL;
20437 if (r->in.buffer) {
20438 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20439 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20440 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20444 NDR_PULL_ALLOC(ndr, r->out.needed);
20445 ZERO_STRUCTP(r->out.needed);
20447 if (flags & NDR_OUT) {
20448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20450 NDR_PULL_ALLOC(ndr, r->out.info);
20452 r->out.info = NULL;
20455 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20456 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20458 struct ndr_pull *_ndr_info;
20459 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20460 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20461 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20462 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20466 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20467 NDR_PULL_ALLOC(ndr, r->out.needed);
20469 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20470 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20473 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20475 return NDR_ERR_SUCCESS;
20478 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
20480 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
20482 if (flags & NDR_SET_VALUES) {
20483 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20485 if (flags & NDR_IN) {
20486 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
20488 ndr_print_ptr(ndr, "handle", r->in.handle);
20490 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20492 ndr_print_uint32(ndr, "level", r->in.level);
20493 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20495 if (r->in.buffer) {
20496 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20499 ndr_print_uint32(ndr, "offered", r->in.offered);
20502 if (flags & NDR_OUT) {
20503 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
20505 ndr_print_ptr(ndr, "info", r->out.info);
20508 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20509 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
20512 ndr_print_ptr(ndr, "needed", r->out.needed);
20514 ndr_print_uint32(ndr, "needed", *r->out.needed);
20516 ndr_print_WERROR(ndr, "result", r->out.result);
20522 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
20524 if (flags & NDR_IN) {
20525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20526 if (r->in.servername) {
20527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20530 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20532 if (r->in.info_ctr == NULL) {
20533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20535 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20537 if (flags & NDR_OUT) {
20538 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20540 return NDR_ERR_SUCCESS;
20543 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20545 uint32_t _ptr_servername;
20546 TALLOC_CTX *_mem_save_servername_0;
20547 TALLOC_CTX *_mem_save_info_ctr_0;
20548 if (flags & NDR_IN) {
20549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20550 if (_ptr_servername) {
20551 NDR_PULL_ALLOC(ndr, r->in.servername);
20553 r->in.servername = NULL;
20555 if (r->in.servername) {
20556 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20557 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20558 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20559 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20560 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20561 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));
20563 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20564 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20567 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20568 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20570 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20571 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20572 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20575 if (flags & NDR_OUT) {
20576 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20578 return NDR_ERR_SUCCESS;
20581 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
20583 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
20585 if (flags & NDR_SET_VALUES) {
20586 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20588 if (flags & NDR_IN) {
20589 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
20591 ndr_print_ptr(ndr, "servername", r->in.servername);
20593 if (r->in.servername) {
20594 ndr_print_string(ndr, "servername", r->in.servername);
20597 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20599 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20603 if (flags & NDR_OUT) {
20604 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20606 ndr_print_WERROR(ndr, "result", r->out.result);
20612 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20614 if (flags & NDR_IN) {
20615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20616 if (r->in.server) {
20617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20620 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20623 if (r->in.environment) {
20624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20627 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20631 if (r->in.buffer) {
20632 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20636 if (flags & NDR_OUT) {
20637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20639 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20641 if (r->out.needed == NULL) {
20642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20645 if (r->out.count == NULL) {
20646 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20649 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20651 return NDR_ERR_SUCCESS;
20654 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20656 uint32_t _ptr_server;
20657 uint32_t _ptr_environment;
20658 uint32_t _ptr_buffer;
20659 uint32_t _ptr_info;
20660 TALLOC_CTX *_mem_save_server_0;
20661 TALLOC_CTX *_mem_save_environment_0;
20662 TALLOC_CTX *_mem_save_buffer_0;
20663 TALLOC_CTX *_mem_save_info_0;
20664 TALLOC_CTX *_mem_save_needed_0;
20665 TALLOC_CTX *_mem_save_count_0;
20666 if (flags & NDR_IN) {
20667 ZERO_STRUCT(r->out);
20669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20671 NDR_PULL_ALLOC(ndr, r->in.server);
20673 r->in.server = NULL;
20675 if (r->in.server) {
20676 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20677 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20678 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20679 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20680 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20681 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));
20683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20688 if (_ptr_environment) {
20689 NDR_PULL_ALLOC(ndr, r->in.environment);
20691 r->in.environment = NULL;
20693 if (r->in.environment) {
20694 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20695 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20696 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20697 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20698 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20699 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));
20701 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20702 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20706 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20708 NDR_PULL_ALLOC(ndr, r->in.buffer);
20710 r->in.buffer = NULL;
20712 if (r->in.buffer) {
20713 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20714 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20715 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20719 NDR_PULL_ALLOC(ndr, r->out.needed);
20720 ZERO_STRUCTP(r->out.needed);
20721 NDR_PULL_ALLOC(ndr, r->out.count);
20722 ZERO_STRUCTP(r->out.count);
20724 if (flags & NDR_OUT) {
20725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20727 NDR_PULL_ALLOC(ndr, r->out.info);
20729 r->out.info = NULL;
20732 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20733 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20734 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20737 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20738 NDR_PULL_ALLOC(ndr, r->out.needed);
20740 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20741 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20745 NDR_PULL_ALLOC(ndr, r->out.count);
20747 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20748 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20751 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20753 return NDR_ERR_SUCCESS;
20756 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
20758 uint32_t cntr_info_0;
20759 if (flags & NDR_IN) {
20760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20763 if (flags & NDR_OUT) {
20764 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20765 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20766 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20768 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20769 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20772 return NDR_ERR_SUCCESS;
20775 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
20777 uint32_t cntr_info_0;
20778 TALLOC_CTX *_mem_save_info_0;
20779 if (flags & NDR_IN) {
20780 ZERO_STRUCT(r->out);
20782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20785 if (flags & NDR_OUT) {
20786 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20787 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20788 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20789 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20790 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20791 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20793 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20794 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20798 return NDR_ERR_SUCCESS;
20801 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
20803 uint32_t cntr_info_2;
20804 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
20806 if (flags & NDR_SET_VALUES) {
20807 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20809 if (flags & NDR_IN) {
20810 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
20812 ndr_print_ptr(ndr, "server", r->in.server);
20814 if (r->in.server) {
20815 ndr_print_string(ndr, "server", r->in.server);
20818 ndr_print_ptr(ndr, "environment", r->in.environment);
20820 if (r->in.environment) {
20821 ndr_print_string(ndr, "environment", r->in.environment);
20824 ndr_print_uint32(ndr, "level", r->in.level);
20825 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20827 if (r->in.buffer) {
20828 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20831 ndr_print_uint32(ndr, "offered", r->in.offered);
20834 if (flags & NDR_OUT) {
20835 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
20837 ndr_print_ptr(ndr, "count", r->out.count);
20839 ndr_print_uint32(ndr, "count", *r->out.count);
20841 ndr_print_ptr(ndr, "info", r->out.info);
20843 ndr_print_ptr(ndr, "info", *r->out.info);
20845 if (*r->out.info) {
20846 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20848 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20850 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20851 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20852 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20860 ndr_print_ptr(ndr, "needed", r->out.needed);
20862 ndr_print_uint32(ndr, "needed", *r->out.needed);
20864 ndr_print_WERROR(ndr, "result", r->out.result);
20870 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
20872 if (flags & NDR_IN) {
20873 if (r->in.handle == NULL) {
20874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
20878 if (r->in.architecture) {
20879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20885 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20886 if (r->in.buffer) {
20887 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20891 if (flags & NDR_OUT) {
20892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20895 struct ndr_push *_ndr_info;
20896 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20897 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20898 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20899 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20902 if (r->out.needed == NULL) {
20903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20906 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20908 return NDR_ERR_SUCCESS;
20911 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
20913 uint32_t _ptr_architecture;
20914 uint32_t _ptr_buffer;
20915 uint32_t _ptr_info;
20916 TALLOC_CTX *_mem_save_handle_0;
20917 TALLOC_CTX *_mem_save_architecture_0;
20918 TALLOC_CTX *_mem_save_buffer_0;
20919 TALLOC_CTX *_mem_save_info_0;
20920 TALLOC_CTX *_mem_save_needed_0;
20921 if (flags & NDR_IN) {
20922 ZERO_STRUCT(r->out);
20924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20925 NDR_PULL_ALLOC(ndr, r->in.handle);
20927 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20928 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20929 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
20932 if (_ptr_architecture) {
20933 NDR_PULL_ALLOC(ndr, r->in.architecture);
20935 r->in.architecture = NULL;
20937 if (r->in.architecture) {
20938 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
20939 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
20940 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20941 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20942 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20943 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));
20945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
20949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20952 NDR_PULL_ALLOC(ndr, r->in.buffer);
20954 r->in.buffer = NULL;
20956 if (r->in.buffer) {
20957 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20958 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20959 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20963 NDR_PULL_ALLOC(ndr, r->out.needed);
20964 ZERO_STRUCTP(r->out.needed);
20966 if (flags & NDR_OUT) {
20967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20969 NDR_PULL_ALLOC(ndr, r->out.info);
20971 r->out.info = NULL;
20974 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20975 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20977 struct ndr_pull *_ndr_info;
20978 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20979 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20980 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20981 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20985 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20986 NDR_PULL_ALLOC(ndr, r->out.needed);
20988 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20989 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20994 return NDR_ERR_SUCCESS;
20997 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
20999 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21001 if (flags & NDR_SET_VALUES) {
21002 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21004 if (flags & NDR_IN) {
21005 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21007 ndr_print_ptr(ndr, "handle", r->in.handle);
21009 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21011 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21013 if (r->in.architecture) {
21014 ndr_print_string(ndr, "architecture", r->in.architecture);
21017 ndr_print_uint32(ndr, "level", r->in.level);
21018 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21020 if (r->in.buffer) {
21021 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21024 ndr_print_uint32(ndr, "offered", r->in.offered);
21027 if (flags & NDR_OUT) {
21028 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21030 ndr_print_ptr(ndr, "info", r->out.info);
21033 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21034 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21037 ndr_print_ptr(ndr, "needed", r->out.needed);
21039 ndr_print_uint32(ndr, "needed", *r->out.needed);
21041 ndr_print_WERROR(ndr, "result", r->out.result);
21047 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21049 if (flags & NDR_IN) {
21050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21051 if (r->in.server) {
21052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21055 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21057 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21058 if (r->in.environment) {
21059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21066 if (r->in.buffer) {
21067 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21071 if (flags & NDR_OUT) {
21072 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21075 struct ndr_push *_ndr_info;
21076 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21077 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21078 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21079 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21082 if (r->out.needed == NULL) {
21083 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21086 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21088 return NDR_ERR_SUCCESS;
21091 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21093 uint32_t _ptr_server;
21094 uint32_t _ptr_environment;
21095 uint32_t _ptr_buffer;
21096 uint32_t _ptr_info;
21097 TALLOC_CTX *_mem_save_server_0;
21098 TALLOC_CTX *_mem_save_environment_0;
21099 TALLOC_CTX *_mem_save_buffer_0;
21100 TALLOC_CTX *_mem_save_info_0;
21101 TALLOC_CTX *_mem_save_needed_0;
21102 if (flags & NDR_IN) {
21103 ZERO_STRUCT(r->out);
21105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21107 NDR_PULL_ALLOC(ndr, r->in.server);
21109 r->in.server = NULL;
21111 if (r->in.server) {
21112 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21113 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21114 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21115 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21116 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21117 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));
21119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21120 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21124 if (_ptr_environment) {
21125 NDR_PULL_ALLOC(ndr, r->in.environment);
21127 r->in.environment = NULL;
21129 if (r->in.environment) {
21130 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21131 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21132 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21133 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21134 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21135 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));
21137 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21138 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21144 NDR_PULL_ALLOC(ndr, r->in.buffer);
21146 r->in.buffer = NULL;
21148 if (r->in.buffer) {
21149 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21150 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21151 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21155 NDR_PULL_ALLOC(ndr, r->out.needed);
21156 ZERO_STRUCTP(r->out.needed);
21158 if (flags & NDR_OUT) {
21159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21161 NDR_PULL_ALLOC(ndr, r->out.info);
21163 r->out.info = NULL;
21166 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21167 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21169 struct ndr_pull *_ndr_info;
21170 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21171 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21172 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21173 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21177 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21178 NDR_PULL_ALLOC(ndr, r->out.needed);
21180 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21181 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21186 return NDR_ERR_SUCCESS;
21189 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21191 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21193 if (flags & NDR_SET_VALUES) {
21194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21196 if (flags & NDR_IN) {
21197 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21199 ndr_print_ptr(ndr, "server", r->in.server);
21201 if (r->in.server) {
21202 ndr_print_string(ndr, "server", r->in.server);
21205 ndr_print_ptr(ndr, "environment", r->in.environment);
21207 if (r->in.environment) {
21208 ndr_print_string(ndr, "environment", r->in.environment);
21211 ndr_print_uint32(ndr, "level", r->in.level);
21212 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21214 if (r->in.buffer) {
21215 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21218 ndr_print_uint32(ndr, "offered", r->in.offered);
21221 if (flags & NDR_OUT) {
21222 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21224 ndr_print_ptr(ndr, "info", r->out.info);
21227 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21228 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21231 ndr_print_ptr(ndr, "needed", r->out.needed);
21233 ndr_print_uint32(ndr, "needed", *r->out.needed);
21235 ndr_print_WERROR(ndr, "result", r->out.result);
21241 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21243 if (flags & NDR_IN) {
21244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21245 if (r->in.server) {
21246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21249 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21260 if (flags & NDR_OUT) {
21261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21263 return NDR_ERR_SUCCESS;
21266 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21268 uint32_t _ptr_server;
21269 TALLOC_CTX *_mem_save_server_0;
21270 if (flags & NDR_IN) {
21271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21273 NDR_PULL_ALLOC(ndr, r->in.server);
21275 r->in.server = NULL;
21277 if (r->in.server) {
21278 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21279 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21280 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21281 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21282 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21283 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));
21285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21289 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21290 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21291 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21292 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));
21294 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21295 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21296 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21297 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21298 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21299 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));
21301 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21302 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21304 if (flags & NDR_OUT) {
21305 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21307 return NDR_ERR_SUCCESS;
21310 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21312 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21314 if (flags & NDR_SET_VALUES) {
21315 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21317 if (flags & NDR_IN) {
21318 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21320 ndr_print_ptr(ndr, "server", r->in.server);
21322 if (r->in.server) {
21323 ndr_print_string(ndr, "server", r->in.server);
21326 ndr_print_string(ndr, "architecture", r->in.architecture);
21327 ndr_print_string(ndr, "driver", r->in.driver);
21330 if (flags & NDR_OUT) {
21331 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21333 ndr_print_WERROR(ndr, "result", r->out.result);
21339 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21341 if (flags & NDR_IN) {
21342 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21343 if (r->in.server) {
21344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21352 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21356 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));
21357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21360 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));
21362 if (flags & NDR_OUT) {
21363 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21365 return NDR_ERR_SUCCESS;
21368 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21370 uint32_t _ptr_server;
21371 TALLOC_CTX *_mem_save_server_0;
21372 if (flags & NDR_IN) {
21373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21375 NDR_PULL_ALLOC(ndr, r->in.server);
21377 r->in.server = NULL;
21379 if (r->in.server) {
21380 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21381 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21382 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21383 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21384 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21385 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));
21387 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21388 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21393 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21394 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));
21396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21398 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21399 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21400 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
21401 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));
21403 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21404 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));
21405 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21406 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21407 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21408 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));
21410 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21411 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));
21413 if (flags & NDR_OUT) {
21414 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21416 return NDR_ERR_SUCCESS;
21419 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21421 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21423 if (flags & NDR_SET_VALUES) {
21424 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21426 if (flags & NDR_IN) {
21427 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21429 ndr_print_ptr(ndr, "server", r->in.server);
21431 if (r->in.server) {
21432 ndr_print_string(ndr, "server", r->in.server);
21435 ndr_print_string(ndr, "architecture", r->in.architecture);
21436 ndr_print_string(ndr, "path_name", r->in.path_name);
21437 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21440 if (flags & NDR_OUT) {
21441 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21443 ndr_print_WERROR(ndr, "result", r->out.result);
21449 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
21451 if (flags & NDR_IN) {
21452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21453 if (r->in.servername) {
21454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21460 if (r->in.environment) {
21461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21464 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21468 if (r->in.buffer) {
21469 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21473 if (flags & NDR_OUT) {
21474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21476 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21478 if (r->out.needed == NULL) {
21479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21482 if (r->out.count == NULL) {
21483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21486 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21488 return NDR_ERR_SUCCESS;
21491 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21493 uint32_t _ptr_servername;
21494 uint32_t _ptr_environment;
21495 uint32_t _ptr_buffer;
21496 uint32_t _ptr_info;
21497 TALLOC_CTX *_mem_save_servername_0;
21498 TALLOC_CTX *_mem_save_environment_0;
21499 TALLOC_CTX *_mem_save_buffer_0;
21500 TALLOC_CTX *_mem_save_info_0;
21501 TALLOC_CTX *_mem_save_needed_0;
21502 TALLOC_CTX *_mem_save_count_0;
21503 if (flags & NDR_IN) {
21504 ZERO_STRUCT(r->out);
21506 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21507 if (_ptr_servername) {
21508 NDR_PULL_ALLOC(ndr, r->in.servername);
21510 r->in.servername = NULL;
21512 if (r->in.servername) {
21513 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21514 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21515 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21516 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21517 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21518 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));
21520 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21521 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21525 if (_ptr_environment) {
21526 NDR_PULL_ALLOC(ndr, r->in.environment);
21528 r->in.environment = NULL;
21530 if (r->in.environment) {
21531 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21532 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21533 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21534 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21535 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21536 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));
21538 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21545 NDR_PULL_ALLOC(ndr, r->in.buffer);
21547 r->in.buffer = NULL;
21549 if (r->in.buffer) {
21550 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21551 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21552 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21556 NDR_PULL_ALLOC(ndr, r->out.needed);
21557 ZERO_STRUCTP(r->out.needed);
21558 NDR_PULL_ALLOC(ndr, r->out.count);
21559 ZERO_STRUCTP(r->out.count);
21561 if (flags & NDR_OUT) {
21562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21564 NDR_PULL_ALLOC(ndr, r->out.info);
21566 r->out.info = NULL;
21569 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21570 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21571 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21574 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21575 NDR_PULL_ALLOC(ndr, r->out.needed);
21577 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21578 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21581 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21582 NDR_PULL_ALLOC(ndr, r->out.count);
21584 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21585 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21588 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21590 return NDR_ERR_SUCCESS;
21593 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
21595 uint32_t cntr_info_0;
21596 if (flags & NDR_IN) {
21597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21600 if (flags & NDR_OUT) {
21601 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21602 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21603 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21605 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21606 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21609 return NDR_ERR_SUCCESS;
21612 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21614 uint32_t cntr_info_0;
21615 TALLOC_CTX *_mem_save_info_0;
21616 if (flags & NDR_IN) {
21617 ZERO_STRUCT(r->out);
21619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21622 if (flags & NDR_OUT) {
21623 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21624 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21625 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21626 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21627 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21628 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21630 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21631 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21635 return NDR_ERR_SUCCESS;
21638 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
21640 uint32_t cntr_info_2;
21641 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
21643 if (flags & NDR_SET_VALUES) {
21644 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21646 if (flags & NDR_IN) {
21647 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
21649 ndr_print_ptr(ndr, "servername", r->in.servername);
21651 if (r->in.servername) {
21652 ndr_print_string(ndr, "servername", r->in.servername);
21655 ndr_print_ptr(ndr, "environment", r->in.environment);
21657 if (r->in.environment) {
21658 ndr_print_string(ndr, "environment", r->in.environment);
21661 ndr_print_uint32(ndr, "level", r->in.level);
21662 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21664 if (r->in.buffer) {
21665 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21668 ndr_print_uint32(ndr, "offered", r->in.offered);
21671 if (flags & NDR_OUT) {
21672 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
21674 ndr_print_ptr(ndr, "count", r->out.count);
21676 ndr_print_uint32(ndr, "count", *r->out.count);
21678 ndr_print_ptr(ndr, "info", r->out.info);
21680 ndr_print_ptr(ndr, "info", *r->out.info);
21682 if (*r->out.info) {
21683 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21685 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21687 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21688 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21689 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21697 ndr_print_ptr(ndr, "needed", r->out.needed);
21699 ndr_print_uint32(ndr, "needed", *r->out.needed);
21701 ndr_print_WERROR(ndr, "result", r->out.result);
21707 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21709 if (flags & NDR_IN) {
21710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21711 if (r->in.server) {
21712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21718 if (r->in.environment) {
21719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21722 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21726 if (r->in.buffer) {
21727 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21731 if (flags & NDR_OUT) {
21732 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21735 struct ndr_push *_ndr_info;
21736 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21737 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21738 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21739 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21742 if (r->out.needed == NULL) {
21743 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21746 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21748 return NDR_ERR_SUCCESS;
21751 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21753 uint32_t _ptr_server;
21754 uint32_t _ptr_environment;
21755 uint32_t _ptr_buffer;
21756 uint32_t _ptr_info;
21757 TALLOC_CTX *_mem_save_server_0;
21758 TALLOC_CTX *_mem_save_environment_0;
21759 TALLOC_CTX *_mem_save_buffer_0;
21760 TALLOC_CTX *_mem_save_info_0;
21761 TALLOC_CTX *_mem_save_needed_0;
21762 if (flags & NDR_IN) {
21763 ZERO_STRUCT(r->out);
21765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21767 NDR_PULL_ALLOC(ndr, r->in.server);
21769 r->in.server = NULL;
21771 if (r->in.server) {
21772 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21773 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21774 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21775 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21776 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21777 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));
21779 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21780 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21784 if (_ptr_environment) {
21785 NDR_PULL_ALLOC(ndr, r->in.environment);
21787 r->in.environment = NULL;
21789 if (r->in.environment) {
21790 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21791 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21793 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21794 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21795 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));
21797 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21804 NDR_PULL_ALLOC(ndr, r->in.buffer);
21806 r->in.buffer = NULL;
21808 if (r->in.buffer) {
21809 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21810 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21811 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21815 NDR_PULL_ALLOC(ndr, r->out.needed);
21816 ZERO_STRUCTP(r->out.needed);
21818 if (flags & NDR_OUT) {
21819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21821 NDR_PULL_ALLOC(ndr, r->out.info);
21823 r->out.info = NULL;
21826 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21827 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21829 struct ndr_pull *_ndr_info;
21830 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21831 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21832 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21833 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21838 NDR_PULL_ALLOC(ndr, r->out.needed);
21840 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21841 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21844 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21846 return NDR_ERR_SUCCESS;
21849 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21851 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
21853 if (flags & NDR_SET_VALUES) {
21854 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21856 if (flags & NDR_IN) {
21857 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
21859 ndr_print_ptr(ndr, "server", r->in.server);
21861 if (r->in.server) {
21862 ndr_print_string(ndr, "server", r->in.server);
21865 ndr_print_ptr(ndr, "environment", r->in.environment);
21867 if (r->in.environment) {
21868 ndr_print_string(ndr, "environment", r->in.environment);
21871 ndr_print_uint32(ndr, "level", r->in.level);
21872 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21874 if (r->in.buffer) {
21875 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21878 ndr_print_uint32(ndr, "offered", r->in.offered);
21881 if (flags & NDR_OUT) {
21882 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
21884 ndr_print_ptr(ndr, "info", r->out.info);
21887 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21888 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
21891 ndr_print_ptr(ndr, "needed", r->out.needed);
21893 ndr_print_uint32(ndr, "needed", *r->out.needed);
21895 ndr_print_WERROR(ndr, "result", r->out.result);
21901 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
21903 if (flags & NDR_IN) {
21904 if (r->in.handle == NULL) {
21905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21907 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21909 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21910 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21912 if (flags & NDR_OUT) {
21913 if (r->out.job_id == NULL) {
21914 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
21917 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21919 return NDR_ERR_SUCCESS;
21922 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
21924 TALLOC_CTX *_mem_save_handle_0;
21925 TALLOC_CTX *_mem_save_job_id_0;
21926 if (flags & NDR_IN) {
21927 ZERO_STRUCT(r->out);
21929 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21930 NDR_PULL_ALLOC(ndr, r->in.handle);
21932 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21933 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21934 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21937 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21938 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21939 NDR_PULL_ALLOC(ndr, r->out.job_id);
21940 ZERO_STRUCTP(r->out.job_id);
21942 if (flags & NDR_OUT) {
21943 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21944 NDR_PULL_ALLOC(ndr, r->out.job_id);
21946 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
21947 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
21948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
21949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
21950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21952 return NDR_ERR_SUCCESS;
21955 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
21957 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
21959 if (flags & NDR_SET_VALUES) {
21960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21962 if (flags & NDR_IN) {
21963 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
21965 ndr_print_ptr(ndr, "handle", r->in.handle);
21967 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21969 ndr_print_uint32(ndr, "level", r->in.level);
21970 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21971 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
21974 if (flags & NDR_OUT) {
21975 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
21977 ndr_print_ptr(ndr, "job_id", r->out.job_id);
21979 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
21981 ndr_print_WERROR(ndr, "result", r->out.result);
21987 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
21989 if (flags & NDR_IN) {
21990 if (r->in.handle == NULL) {
21991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21993 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21995 if (flags & NDR_OUT) {
21996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21998 return NDR_ERR_SUCCESS;
22001 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22003 TALLOC_CTX *_mem_save_handle_0;
22004 if (flags & NDR_IN) {
22005 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22006 NDR_PULL_ALLOC(ndr, r->in.handle);
22008 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22009 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22010 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22013 if (flags & NDR_OUT) {
22014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22016 return NDR_ERR_SUCCESS;
22019 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22021 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22023 if (flags & NDR_SET_VALUES) {
22024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22026 if (flags & NDR_IN) {
22027 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22029 ndr_print_ptr(ndr, "handle", r->in.handle);
22031 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22035 if (flags & NDR_OUT) {
22036 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22038 ndr_print_WERROR(ndr, "result", r->out.result);
22044 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22046 if (flags & NDR_IN) {
22047 if (r->in.handle == NULL) {
22048 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22050 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22051 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22054 if (flags & NDR_OUT) {
22055 if (r->out.num_written == NULL) {
22056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22061 return NDR_ERR_SUCCESS;
22064 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22066 TALLOC_CTX *_mem_save_handle_0;
22067 TALLOC_CTX *_mem_save_num_written_0;
22068 if (flags & NDR_IN) {
22069 ZERO_STRUCT(r->out);
22071 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22072 NDR_PULL_ALLOC(ndr, r->in.handle);
22074 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22075 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22076 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22078 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22080 NDR_PULL_ALLOC(ndr, r->out.num_written);
22081 ZERO_STRUCTP(r->out.num_written);
22083 if (flags & NDR_OUT) {
22084 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22085 NDR_PULL_ALLOC(ndr, r->out.num_written);
22087 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22088 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22091 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22093 return NDR_ERR_SUCCESS;
22096 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22098 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22100 if (flags & NDR_SET_VALUES) {
22101 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22103 if (flags & NDR_IN) {
22104 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22106 ndr_print_ptr(ndr, "handle", r->in.handle);
22108 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22110 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22111 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22114 if (flags & NDR_OUT) {
22115 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22117 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22119 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22121 ndr_print_WERROR(ndr, "result", r->out.result);
22127 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22129 if (flags & NDR_IN) {
22130 if (r->in.handle == NULL) {
22131 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22133 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22135 if (flags & NDR_OUT) {
22136 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22138 return NDR_ERR_SUCCESS;
22141 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22143 TALLOC_CTX *_mem_save_handle_0;
22144 if (flags & NDR_IN) {
22145 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22146 NDR_PULL_ALLOC(ndr, r->in.handle);
22148 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22149 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22150 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22153 if (flags & NDR_OUT) {
22154 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22156 return NDR_ERR_SUCCESS;
22159 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22161 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22163 if (flags & NDR_SET_VALUES) {
22164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22166 if (flags & NDR_IN) {
22167 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22169 ndr_print_ptr(ndr, "handle", r->in.handle);
22171 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22175 if (flags & NDR_OUT) {
22176 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22178 ndr_print_WERROR(ndr, "result", r->out.result);
22184 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22186 if (flags & NDR_IN) {
22187 if (r->in.handle == NULL) {
22188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22190 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22192 if (flags & NDR_OUT) {
22193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22195 return NDR_ERR_SUCCESS;
22198 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22200 TALLOC_CTX *_mem_save_handle_0;
22201 if (flags & NDR_IN) {
22202 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22203 NDR_PULL_ALLOC(ndr, r->in.handle);
22205 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22206 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22207 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22210 if (flags & NDR_OUT) {
22211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22213 return NDR_ERR_SUCCESS;
22216 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22218 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22220 if (flags & NDR_SET_VALUES) {
22221 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22223 if (flags & NDR_IN) {
22224 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22226 ndr_print_ptr(ndr, "handle", r->in.handle);
22228 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22232 if (flags & NDR_OUT) {
22233 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22235 ndr_print_WERROR(ndr, "result", r->out.result);
22241 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22243 if (flags & NDR_IN) {
22244 if (r->in.handle == NULL) {
22245 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22247 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22250 if (flags & NDR_OUT) {
22251 if (r->out.data == NULL) {
22252 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22255 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22256 if (r->out._data_size == NULL) {
22257 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22260 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22262 return NDR_ERR_SUCCESS;
22265 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22267 TALLOC_CTX *_mem_save_handle_0;
22268 TALLOC_CTX *_mem_save__data_size_0;
22269 if (flags & NDR_IN) {
22270 ZERO_STRUCT(r->out);
22272 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22273 NDR_PULL_ALLOC(ndr, r->in.handle);
22275 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22276 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22277 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22280 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22281 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22282 NDR_PULL_ALLOC(ndr, r->out._data_size);
22283 ZERO_STRUCTP(r->out._data_size);
22285 if (flags & NDR_OUT) {
22286 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22287 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22288 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22290 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22291 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22292 NDR_PULL_ALLOC(ndr, r->out._data_size);
22294 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22295 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22298 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22300 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22303 return NDR_ERR_SUCCESS;
22306 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22308 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22310 if (flags & NDR_SET_VALUES) {
22311 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22313 if (flags & NDR_IN) {
22314 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22316 ndr_print_ptr(ndr, "handle", r->in.handle);
22318 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22320 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22323 if (flags & NDR_OUT) {
22324 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22326 ndr_print_ptr(ndr, "data", r->out.data);
22328 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22330 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22332 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22334 ndr_print_WERROR(ndr, "result", r->out.result);
22340 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *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));
22348 if (flags & NDR_OUT) {
22349 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22351 return NDR_ERR_SUCCESS;
22354 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
22356 TALLOC_CTX *_mem_save_handle_0;
22357 if (flags & NDR_IN) {
22358 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22359 NDR_PULL_ALLOC(ndr, r->in.handle);
22361 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22362 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22363 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22366 if (flags & NDR_OUT) {
22367 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22369 return NDR_ERR_SUCCESS;
22372 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22374 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22376 if (flags & NDR_SET_VALUES) {
22377 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22379 if (flags & NDR_IN) {
22380 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22382 ndr_print_ptr(ndr, "handle", r->in.handle);
22384 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22388 if (flags & NDR_OUT) {
22389 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22391 ndr_print_WERROR(ndr, "result", r->out.result);
22397 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22399 if (flags & NDR_IN) {
22400 if (r->in.handle == NULL) {
22401 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22403 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22406 if (r->in.buffer) {
22407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22408 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22412 if (flags & NDR_OUT) {
22413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22414 if (r->out.buffer) {
22415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22416 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22418 if (r->out.needed == NULL) {
22419 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22422 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22424 return NDR_ERR_SUCCESS;
22427 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22429 uint32_t _ptr_buffer;
22430 TALLOC_CTX *_mem_save_handle_0;
22431 TALLOC_CTX *_mem_save_buffer_0;
22432 TALLOC_CTX *_mem_save_needed_0;
22433 if (flags & NDR_IN) {
22434 ZERO_STRUCT(r->out);
22436 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22437 NDR_PULL_ALLOC(ndr, r->in.handle);
22439 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22440 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22441 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22446 NDR_PULL_ALLOC(ndr, r->in.buffer);
22448 r->in.buffer = NULL;
22450 if (r->in.buffer) {
22451 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22452 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22454 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22455 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22459 NDR_PULL_ALLOC(ndr, r->out.needed);
22460 ZERO_STRUCTP(r->out.needed);
22461 if (r->in.buffer) {
22462 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22465 if (flags & NDR_OUT) {
22466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22468 NDR_PULL_ALLOC(ndr, r->out.buffer);
22470 r->out.buffer = NULL;
22472 if (r->out.buffer) {
22473 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22474 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22475 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22476 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22477 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22480 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22481 NDR_PULL_ALLOC(ndr, r->out.needed);
22483 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22484 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22487 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22488 if (r->out.buffer) {
22489 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22492 return NDR_ERR_SUCCESS;
22495 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
22497 ndr_print_struct(ndr, name, "spoolss_AddJob");
22499 if (flags & NDR_SET_VALUES) {
22500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22502 if (flags & NDR_IN) {
22503 ndr_print_struct(ndr, "in", "spoolss_AddJob");
22505 ndr_print_ptr(ndr, "handle", r->in.handle);
22507 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22509 ndr_print_uint32(ndr, "level", r->in.level);
22510 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22512 if (r->in.buffer) {
22513 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22516 ndr_print_uint32(ndr, "offered", r->in.offered);
22519 if (flags & NDR_OUT) {
22520 ndr_print_struct(ndr, "out", "spoolss_AddJob");
22522 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22524 if (r->out.buffer) {
22525 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22528 ndr_print_ptr(ndr, "needed", r->out.needed);
22530 ndr_print_uint32(ndr, "needed", *r->out.needed);
22532 ndr_print_WERROR(ndr, "result", r->out.result);
22538 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
22540 if (flags & NDR_IN) {
22541 if (r->in.handle == NULL) {
22542 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22544 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
22547 if (flags & NDR_OUT) {
22548 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22550 return NDR_ERR_SUCCESS;
22553 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
22555 TALLOC_CTX *_mem_save_handle_0;
22556 if (flags & NDR_IN) {
22557 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22558 NDR_PULL_ALLOC(ndr, r->in.handle);
22560 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22561 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22562 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
22566 if (flags & NDR_OUT) {
22567 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22569 return NDR_ERR_SUCCESS;
22572 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
22574 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
22576 if (flags & NDR_SET_VALUES) {
22577 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22579 if (flags & NDR_IN) {
22580 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
22582 ndr_print_ptr(ndr, "handle", r->in.handle);
22584 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22586 ndr_print_uint32(ndr, "jobid", r->in.jobid);
22589 if (flags & NDR_OUT) {
22590 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
22592 ndr_print_WERROR(ndr, "result", r->out.result);
22598 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
22600 if (flags & NDR_IN) {
22601 if (r->in.handle == NULL) {
22602 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22604 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22608 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));
22609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22611 if (flags & NDR_OUT) {
22612 if (r->out.type == NULL) {
22613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22615 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
22616 if (r->out.data == NULL) {
22617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22619 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
22620 if (r->out.needed == NULL) {
22621 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22624 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22626 return NDR_ERR_SUCCESS;
22629 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
22631 TALLOC_CTX *_mem_save_handle_0;
22632 TALLOC_CTX *_mem_save_type_0;
22633 TALLOC_CTX *_mem_save_data_0;
22634 TALLOC_CTX *_mem_save_needed_0;
22635 if (flags & NDR_IN) {
22636 ZERO_STRUCT(r->out);
22638 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22639 NDR_PULL_ALLOC(ndr, r->in.handle);
22641 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22642 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22643 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22645 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22646 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22647 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22648 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));
22650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22651 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));
22652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22653 NDR_PULL_ALLOC(ndr, r->out.type);
22654 ZERO_STRUCTP(r->out.type);
22655 NDR_PULL_ALLOC(ndr, r->out.data);
22656 ZERO_STRUCTP(r->out.data);
22657 NDR_PULL_ALLOC(ndr, r->out.needed);
22658 ZERO_STRUCTP(r->out.needed);
22660 if (flags & NDR_OUT) {
22661 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22662 NDR_PULL_ALLOC(ndr, r->out.type);
22664 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22665 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22666 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
22667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22669 NDR_PULL_ALLOC(ndr, r->out.data);
22671 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22672 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22673 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
22674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22675 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22676 NDR_PULL_ALLOC(ndr, r->out.needed);
22678 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22679 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22684 return NDR_ERR_SUCCESS;
22687 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
22689 if (flags & NDR_IN) {
22690 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22692 if (flags & NDR_OUT) {
22693 if (r->out.data == NULL) {
22694 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22696 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22697 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22699 return NDR_ERR_SUCCESS;
22702 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
22704 TALLOC_CTX *_mem_save_data_0;
22705 if (flags & NDR_IN) {
22706 ZERO_STRUCT(r->out);
22708 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22709 NDR_PULL_ALLOC(ndr, r->out.data);
22710 ZERO_STRUCTP(r->out.data);
22712 if (flags & NDR_OUT) {
22713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22714 NDR_PULL_ALLOC(ndr, r->out.data);
22716 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22717 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22718 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
22719 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22722 return NDR_ERR_SUCCESS;
22725 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
22727 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
22729 if (flags & NDR_SET_VALUES) {
22730 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22732 if (flags & NDR_IN) {
22733 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
22735 ndr_print_ptr(ndr, "handle", r->in.handle);
22737 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22739 ndr_print_string(ndr, "value_name", r->in.value_name);
22740 ndr_print_uint32(ndr, "offered", r->in.offered);
22743 if (flags & NDR_OUT) {
22744 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
22746 ndr_print_ptr(ndr, "type", r->out.type);
22748 ndr_print_winreg_Type(ndr, "type", *r->out.type);
22750 ndr_print_ptr(ndr, "data", r->out.data);
22752 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
22753 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
22755 ndr_print_ptr(ndr, "needed", r->out.needed);
22757 ndr_print_uint32(ndr, "needed", *r->out.needed);
22759 ndr_print_WERROR(ndr, "result", r->out.result);
22765 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
22767 if (flags & NDR_IN) {
22768 if (r->in.handle == NULL) {
22769 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22771 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22775 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));
22776 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22777 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
22780 if (flags & NDR_OUT) {
22781 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22783 return NDR_ERR_SUCCESS;
22786 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
22788 if (flags & NDR_IN) {
22789 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22791 if (flags & NDR_OUT) {
22792 if (r->out.data == NULL) {
22793 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22795 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22796 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22798 return NDR_ERR_SUCCESS;
22801 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
22803 TALLOC_CTX *_mem_save_handle_0;
22804 if (flags & NDR_IN) {
22805 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22806 NDR_PULL_ALLOC(ndr, r->in.handle);
22808 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22809 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22810 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22812 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22813 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22814 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22815 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));
22817 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22818 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));
22819 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22821 struct ndr_pull *_ndr_data;
22822 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
22823 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
22824 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
22825 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
22827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
22829 if (flags & NDR_OUT) {
22830 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22832 return NDR_ERR_SUCCESS;
22835 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
22837 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
22839 if (flags & NDR_SET_VALUES) {
22840 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22842 if (flags & NDR_IN) {
22843 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
22845 ndr_print_ptr(ndr, "handle", r->in.handle);
22847 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22849 ndr_print_string(ndr, "value_name", r->in.value_name);
22850 ndr_print_winreg_Type(ndr, "type", r->in.type);
22851 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
22852 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
22853 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);
22856 if (flags & NDR_OUT) {
22857 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
22859 ndr_print_WERROR(ndr, "result", r->out.result);
22865 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
22867 if (flags & NDR_IN) {
22869 if (flags & NDR_OUT) {
22870 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22872 return NDR_ERR_SUCCESS;
22875 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
22877 if (flags & NDR_IN) {
22879 if (flags & NDR_OUT) {
22880 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22882 return NDR_ERR_SUCCESS;
22885 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
22887 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
22889 if (flags & NDR_SET_VALUES) {
22890 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22892 if (flags & NDR_IN) {
22893 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
22897 if (flags & NDR_OUT) {
22898 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
22900 ndr_print_WERROR(ndr, "result", r->out.result);
22906 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
22908 if (flags & NDR_IN) {
22909 if (r->in.handle == NULL) {
22910 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22912 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22914 if (flags & NDR_OUT) {
22915 if (r->out.handle == NULL) {
22916 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22918 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22919 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22921 return NDR_ERR_SUCCESS;
22924 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
22926 TALLOC_CTX *_mem_save_handle_0;
22927 if (flags & NDR_IN) {
22928 ZERO_STRUCT(r->out);
22930 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22931 NDR_PULL_ALLOC(ndr, r->in.handle);
22933 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22934 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22935 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22937 NDR_PULL_ALLOC(ndr, r->out.handle);
22938 *r->out.handle = *r->in.handle;
22940 if (flags & NDR_OUT) {
22941 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22942 NDR_PULL_ALLOC(ndr, r->out.handle);
22944 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22945 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
22946 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22950 return NDR_ERR_SUCCESS;
22953 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
22955 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
22957 if (flags & NDR_SET_VALUES) {
22958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22960 if (flags & NDR_IN) {
22961 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
22963 ndr_print_ptr(ndr, "handle", r->in.handle);
22965 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22969 if (flags & NDR_OUT) {
22970 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
22972 ndr_print_ptr(ndr, "handle", r->out.handle);
22974 ndr_print_policy_handle(ndr, "handle", r->out.handle);
22976 ndr_print_WERROR(ndr, "result", r->out.result);
22982 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
22984 if (flags & NDR_IN) {
22985 if (r->in.handle == NULL) {
22986 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22988 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22990 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22991 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22993 if (flags & NDR_OUT) {
22994 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22996 return NDR_ERR_SUCCESS;
22999 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23001 TALLOC_CTX *_mem_save_handle_0;
23002 if (flags & NDR_IN) {
23003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23004 NDR_PULL_ALLOC(ndr, r->in.handle);
23006 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23007 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23008 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23011 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23012 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23014 if (flags & NDR_OUT) {
23015 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23017 return NDR_ERR_SUCCESS;
23020 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23022 ndr_print_struct(ndr, name, "spoolss_AddForm");
23024 if (flags & NDR_SET_VALUES) {
23025 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23027 if (flags & NDR_IN) {
23028 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23030 ndr_print_ptr(ndr, "handle", r->in.handle);
23032 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23034 ndr_print_uint32(ndr, "level", r->in.level);
23035 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23036 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23039 if (flags & NDR_OUT) {
23040 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23042 ndr_print_WERROR(ndr, "result", r->out.result);
23048 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23050 if (flags & NDR_IN) {
23051 if (r->in.handle == NULL) {
23052 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23054 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23058 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));
23060 if (flags & NDR_OUT) {
23061 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23063 return NDR_ERR_SUCCESS;
23066 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23068 TALLOC_CTX *_mem_save_handle_0;
23069 if (flags & NDR_IN) {
23070 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23071 NDR_PULL_ALLOC(ndr, r->in.handle);
23073 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23074 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23075 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23077 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23078 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23079 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23080 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));
23082 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23083 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));
23085 if (flags & NDR_OUT) {
23086 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23088 return NDR_ERR_SUCCESS;
23091 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23093 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23095 if (flags & NDR_SET_VALUES) {
23096 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23098 if (flags & NDR_IN) {
23099 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23101 ndr_print_ptr(ndr, "handle", r->in.handle);
23103 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23105 ndr_print_string(ndr, "form_name", r->in.form_name);
23108 if (flags & NDR_OUT) {
23109 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23111 ndr_print_WERROR(ndr, "result", r->out.result);
23117 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23119 if (flags & NDR_IN) {
23120 if (r->in.handle == NULL) {
23121 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23123 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23127 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));
23128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23130 if (r->in.buffer) {
23131 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23135 if (flags & NDR_OUT) {
23136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23139 struct ndr_push *_ndr_info;
23140 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23141 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23142 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23143 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23146 if (r->out.needed == NULL) {
23147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23152 return NDR_ERR_SUCCESS;
23155 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23157 uint32_t _ptr_buffer;
23158 uint32_t _ptr_info;
23159 TALLOC_CTX *_mem_save_handle_0;
23160 TALLOC_CTX *_mem_save_buffer_0;
23161 TALLOC_CTX *_mem_save_info_0;
23162 TALLOC_CTX *_mem_save_needed_0;
23163 if (flags & NDR_IN) {
23164 ZERO_STRUCT(r->out);
23166 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23167 NDR_PULL_ALLOC(ndr, r->in.handle);
23169 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23170 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23171 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23173 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23174 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23175 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23176 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));
23178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23179 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));
23180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23183 NDR_PULL_ALLOC(ndr, r->in.buffer);
23185 r->in.buffer = NULL;
23187 if (r->in.buffer) {
23188 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23189 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23190 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23194 NDR_PULL_ALLOC(ndr, r->out.needed);
23195 ZERO_STRUCTP(r->out.needed);
23197 if (flags & NDR_OUT) {
23198 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23200 NDR_PULL_ALLOC(ndr, r->out.info);
23202 r->out.info = NULL;
23205 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23206 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23208 struct ndr_pull *_ndr_info;
23209 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23210 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23211 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23212 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23216 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23217 NDR_PULL_ALLOC(ndr, r->out.needed);
23219 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23220 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23223 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23225 return NDR_ERR_SUCCESS;
23228 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23230 ndr_print_struct(ndr, name, "spoolss_GetForm");
23232 if (flags & NDR_SET_VALUES) {
23233 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23235 if (flags & NDR_IN) {
23236 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23238 ndr_print_ptr(ndr, "handle", r->in.handle);
23240 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23242 ndr_print_string(ndr, "form_name", r->in.form_name);
23243 ndr_print_uint32(ndr, "level", r->in.level);
23244 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23246 if (r->in.buffer) {
23247 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23250 ndr_print_uint32(ndr, "offered", r->in.offered);
23253 if (flags & NDR_OUT) {
23254 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23256 ndr_print_ptr(ndr, "info", r->out.info);
23259 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23260 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23263 ndr_print_ptr(ndr, "needed", r->out.needed);
23265 ndr_print_uint32(ndr, "needed", *r->out.needed);
23267 ndr_print_WERROR(ndr, "result", r->out.result);
23273 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23275 if (flags & NDR_IN) {
23276 if (r->in.handle == NULL) {
23277 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23279 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23283 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));
23284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23285 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23286 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23288 if (flags & NDR_OUT) {
23289 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23291 return NDR_ERR_SUCCESS;
23294 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23296 TALLOC_CTX *_mem_save_handle_0;
23297 if (flags & NDR_IN) {
23298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23299 NDR_PULL_ALLOC(ndr, r->in.handle);
23301 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23302 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23303 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23305 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23306 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23307 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23308 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));
23310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23311 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));
23312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23313 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23314 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23316 if (flags & NDR_OUT) {
23317 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23319 return NDR_ERR_SUCCESS;
23322 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23324 ndr_print_struct(ndr, name, "spoolss_SetForm");
23326 if (flags & NDR_SET_VALUES) {
23327 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23329 if (flags & NDR_IN) {
23330 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23332 ndr_print_ptr(ndr, "handle", r->in.handle);
23334 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23336 ndr_print_string(ndr, "form_name", r->in.form_name);
23337 ndr_print_uint32(ndr, "level", r->in.level);
23338 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23339 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23342 if (flags & NDR_OUT) {
23343 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23345 ndr_print_WERROR(ndr, "result", r->out.result);
23351 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
23353 if (flags & NDR_IN) {
23354 if (r->in.handle == NULL) {
23355 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23357 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23360 if (r->in.buffer) {
23361 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23365 if (flags & NDR_OUT) {
23366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23368 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23370 if (r->out.needed == NULL) {
23371 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23374 if (r->out.count == NULL) {
23375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23378 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23380 return NDR_ERR_SUCCESS;
23383 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23385 uint32_t _ptr_buffer;
23386 uint32_t _ptr_info;
23387 TALLOC_CTX *_mem_save_handle_0;
23388 TALLOC_CTX *_mem_save_buffer_0;
23389 TALLOC_CTX *_mem_save_info_0;
23390 TALLOC_CTX *_mem_save_needed_0;
23391 TALLOC_CTX *_mem_save_count_0;
23392 if (flags & NDR_IN) {
23393 ZERO_STRUCT(r->out);
23395 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23396 NDR_PULL_ALLOC(ndr, r->in.handle);
23398 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23399 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23400 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23405 NDR_PULL_ALLOC(ndr, r->in.buffer);
23407 r->in.buffer = NULL;
23409 if (r->in.buffer) {
23410 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23411 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23412 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23416 NDR_PULL_ALLOC(ndr, r->out.needed);
23417 ZERO_STRUCTP(r->out.needed);
23418 NDR_PULL_ALLOC(ndr, r->out.count);
23419 ZERO_STRUCTP(r->out.count);
23421 if (flags & NDR_OUT) {
23422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23424 NDR_PULL_ALLOC(ndr, r->out.info);
23426 r->out.info = NULL;
23429 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23430 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23431 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23434 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23435 NDR_PULL_ALLOC(ndr, r->out.needed);
23437 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23438 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23441 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23442 NDR_PULL_ALLOC(ndr, r->out.count);
23444 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23445 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23448 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23450 return NDR_ERR_SUCCESS;
23453 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
23455 uint32_t cntr_info_0;
23456 if (flags & NDR_IN) {
23457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23460 if (flags & NDR_OUT) {
23461 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23462 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23463 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23465 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23466 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23469 return NDR_ERR_SUCCESS;
23472 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23474 uint32_t cntr_info_0;
23475 TALLOC_CTX *_mem_save_info_0;
23476 if (flags & NDR_IN) {
23477 ZERO_STRUCT(r->out);
23479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23482 if (flags & NDR_OUT) {
23483 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23484 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23485 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23486 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23487 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23488 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23490 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23491 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23495 return NDR_ERR_SUCCESS;
23498 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
23500 uint32_t cntr_info_2;
23501 ndr_print_struct(ndr, name, "spoolss_EnumForms");
23503 if (flags & NDR_SET_VALUES) {
23504 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23506 if (flags & NDR_IN) {
23507 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
23509 ndr_print_ptr(ndr, "handle", r->in.handle);
23511 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23513 ndr_print_uint32(ndr, "level", r->in.level);
23514 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23516 if (r->in.buffer) {
23517 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23520 ndr_print_uint32(ndr, "offered", r->in.offered);
23523 if (flags & NDR_OUT) {
23524 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
23526 ndr_print_ptr(ndr, "count", r->out.count);
23528 ndr_print_uint32(ndr, "count", *r->out.count);
23530 ndr_print_ptr(ndr, "info", r->out.info);
23532 ndr_print_ptr(ndr, "info", *r->out.info);
23534 if (*r->out.info) {
23535 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23537 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23539 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23540 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23541 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23549 ndr_print_ptr(ndr, "needed", r->out.needed);
23551 ndr_print_uint32(ndr, "needed", *r->out.needed);
23553 ndr_print_WERROR(ndr, "result", r->out.result);
23559 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
23561 if (flags & NDR_IN) {
23562 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23563 if (r->in.servername) {
23564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23570 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23571 if (r->in.buffer) {
23572 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23576 if (flags & NDR_OUT) {
23577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23579 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23581 if (r->out.needed == NULL) {
23582 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23585 if (r->out.count == NULL) {
23586 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23589 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23591 return NDR_ERR_SUCCESS;
23594 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23596 uint32_t _ptr_servername;
23597 uint32_t _ptr_buffer;
23598 uint32_t _ptr_info;
23599 TALLOC_CTX *_mem_save_servername_0;
23600 TALLOC_CTX *_mem_save_buffer_0;
23601 TALLOC_CTX *_mem_save_info_0;
23602 TALLOC_CTX *_mem_save_needed_0;
23603 TALLOC_CTX *_mem_save_count_0;
23604 if (flags & NDR_IN) {
23605 ZERO_STRUCT(r->out);
23607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23608 if (_ptr_servername) {
23609 NDR_PULL_ALLOC(ndr, r->in.servername);
23611 r->in.servername = NULL;
23613 if (r->in.servername) {
23614 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23615 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23616 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23617 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23618 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23619 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));
23621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23625 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23626 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23628 NDR_PULL_ALLOC(ndr, r->in.buffer);
23630 r->in.buffer = NULL;
23632 if (r->in.buffer) {
23633 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23634 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23635 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23639 NDR_PULL_ALLOC(ndr, r->out.needed);
23640 ZERO_STRUCTP(r->out.needed);
23641 NDR_PULL_ALLOC(ndr, r->out.count);
23642 ZERO_STRUCTP(r->out.count);
23644 if (flags & NDR_OUT) {
23645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23647 NDR_PULL_ALLOC(ndr, r->out.info);
23649 r->out.info = NULL;
23652 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23653 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23654 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23657 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23658 NDR_PULL_ALLOC(ndr, r->out.needed);
23660 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23661 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23665 NDR_PULL_ALLOC(ndr, r->out.count);
23667 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23668 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23671 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23673 return NDR_ERR_SUCCESS;
23676 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
23678 uint32_t cntr_info_0;
23679 if (flags & NDR_IN) {
23680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23683 if (flags & NDR_OUT) {
23684 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23685 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23686 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23688 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23689 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23692 return NDR_ERR_SUCCESS;
23695 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
23697 uint32_t cntr_info_0;
23698 TALLOC_CTX *_mem_save_info_0;
23699 if (flags & NDR_IN) {
23700 ZERO_STRUCT(r->out);
23702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23705 if (flags & NDR_OUT) {
23706 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23707 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23708 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23709 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23710 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23711 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23713 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23714 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23718 return NDR_ERR_SUCCESS;
23721 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
23723 uint32_t cntr_info_2;
23724 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
23726 if (flags & NDR_SET_VALUES) {
23727 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23729 if (flags & NDR_IN) {
23730 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
23732 ndr_print_ptr(ndr, "servername", r->in.servername);
23734 if (r->in.servername) {
23735 ndr_print_string(ndr, "servername", r->in.servername);
23738 ndr_print_uint32(ndr, "level", r->in.level);
23739 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23741 if (r->in.buffer) {
23742 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23745 ndr_print_uint32(ndr, "offered", r->in.offered);
23748 if (flags & NDR_OUT) {
23749 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
23751 ndr_print_ptr(ndr, "count", r->out.count);
23753 ndr_print_uint32(ndr, "count", *r->out.count);
23755 ndr_print_ptr(ndr, "info", r->out.info);
23757 ndr_print_ptr(ndr, "info", *r->out.info);
23759 if (*r->out.info) {
23760 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23762 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23764 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23765 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23766 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23774 ndr_print_ptr(ndr, "needed", r->out.needed);
23776 ndr_print_uint32(ndr, "needed", *r->out.needed);
23778 ndr_print_WERROR(ndr, "result", r->out.result);
23784 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
23786 if (flags & NDR_IN) {
23787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23788 if (r->in.servername) {
23789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23792 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23795 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23796 if (r->in.buffer) {
23797 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23801 if (flags & NDR_OUT) {
23802 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23804 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23806 if (r->out.needed == NULL) {
23807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23810 if (r->out.count == NULL) {
23811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23814 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23816 return NDR_ERR_SUCCESS;
23819 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
23821 uint32_t _ptr_servername;
23822 uint32_t _ptr_buffer;
23823 uint32_t _ptr_info;
23824 TALLOC_CTX *_mem_save_servername_0;
23825 TALLOC_CTX *_mem_save_buffer_0;
23826 TALLOC_CTX *_mem_save_info_0;
23827 TALLOC_CTX *_mem_save_needed_0;
23828 TALLOC_CTX *_mem_save_count_0;
23829 if (flags & NDR_IN) {
23830 ZERO_STRUCT(r->out);
23832 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23833 if (_ptr_servername) {
23834 NDR_PULL_ALLOC(ndr, r->in.servername);
23836 r->in.servername = NULL;
23838 if (r->in.servername) {
23839 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23840 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23841 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23842 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23843 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23844 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));
23846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23847 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23853 NDR_PULL_ALLOC(ndr, r->in.buffer);
23855 r->in.buffer = NULL;
23857 if (r->in.buffer) {
23858 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23859 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23860 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23864 NDR_PULL_ALLOC(ndr, r->out.needed);
23865 ZERO_STRUCTP(r->out.needed);
23866 NDR_PULL_ALLOC(ndr, r->out.count);
23867 ZERO_STRUCTP(r->out.count);
23869 if (flags & NDR_OUT) {
23870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23872 NDR_PULL_ALLOC(ndr, r->out.info);
23874 r->out.info = NULL;
23877 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23878 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23879 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23883 NDR_PULL_ALLOC(ndr, r->out.needed);
23885 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23886 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23889 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23890 NDR_PULL_ALLOC(ndr, r->out.count);
23892 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23893 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23896 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23898 return NDR_ERR_SUCCESS;
23901 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
23903 uint32_t cntr_info_0;
23904 if (flags & NDR_IN) {
23905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23908 if (flags & NDR_OUT) {
23909 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23910 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23911 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23913 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23914 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23917 return NDR_ERR_SUCCESS;
23920 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
23922 uint32_t cntr_info_0;
23923 TALLOC_CTX *_mem_save_info_0;
23924 if (flags & NDR_IN) {
23925 ZERO_STRUCT(r->out);
23927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23930 if (flags & NDR_OUT) {
23931 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23932 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23933 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23934 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23935 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23936 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23938 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23939 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23943 return NDR_ERR_SUCCESS;
23946 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
23948 uint32_t cntr_info_2;
23949 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
23951 if (flags & NDR_SET_VALUES) {
23952 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23954 if (flags & NDR_IN) {
23955 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
23957 ndr_print_ptr(ndr, "servername", r->in.servername);
23959 if (r->in.servername) {
23960 ndr_print_string(ndr, "servername", r->in.servername);
23963 ndr_print_uint32(ndr, "level", r->in.level);
23964 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23966 if (r->in.buffer) {
23967 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23970 ndr_print_uint32(ndr, "offered", r->in.offered);
23973 if (flags & NDR_OUT) {
23974 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
23976 ndr_print_ptr(ndr, "count", r->out.count);
23978 ndr_print_uint32(ndr, "count", *r->out.count);
23980 ndr_print_ptr(ndr, "info", r->out.info);
23982 ndr_print_ptr(ndr, "info", *r->out.info);
23984 if (*r->out.info) {
23985 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23987 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23989 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23990 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23991 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23999 ndr_print_ptr(ndr, "needed", r->out.needed);
24001 ndr_print_uint32(ndr, "needed", *r->out.needed);
24003 ndr_print_WERROR(ndr, "result", r->out.result);
24009 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24011 if (flags & NDR_IN) {
24012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24013 if (r->in.server_name) {
24014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24017 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));
24019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24023 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));
24025 if (flags & NDR_OUT) {
24026 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24028 return NDR_ERR_SUCCESS;
24031 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24033 uint32_t _ptr_server_name;
24034 TALLOC_CTX *_mem_save_server_name_0;
24035 if (flags & NDR_IN) {
24036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24037 if (_ptr_server_name) {
24038 NDR_PULL_ALLOC(ndr, r->in.server_name);
24040 r->in.server_name = NULL;
24042 if (r->in.server_name) {
24043 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24044 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24047 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24048 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));
24050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24051 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));
24052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24055 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24056 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24057 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24058 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));
24060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24061 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));
24063 if (flags & NDR_OUT) {
24064 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24066 return NDR_ERR_SUCCESS;
24069 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24071 ndr_print_struct(ndr, name, "spoolss_AddPort");
24073 if (flags & NDR_SET_VALUES) {
24074 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24076 if (flags & NDR_IN) {
24077 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24079 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24081 if (r->in.server_name) {
24082 ndr_print_string(ndr, "server_name", r->in.server_name);
24085 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24086 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24089 if (flags & NDR_OUT) {
24090 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24092 ndr_print_WERROR(ndr, "result", r->out.result);
24098 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24100 if (flags & NDR_IN) {
24102 if (flags & NDR_OUT) {
24103 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24105 return NDR_ERR_SUCCESS;
24108 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24110 if (flags & NDR_IN) {
24112 if (flags & NDR_OUT) {
24113 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24115 return NDR_ERR_SUCCESS;
24118 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24120 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24122 if (flags & NDR_SET_VALUES) {
24123 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24125 if (flags & NDR_IN) {
24126 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24130 if (flags & NDR_OUT) {
24131 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24133 ndr_print_WERROR(ndr, "result", r->out.result);
24139 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24141 if (flags & NDR_IN) {
24143 if (flags & NDR_OUT) {
24144 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24146 return NDR_ERR_SUCCESS;
24149 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24151 if (flags & NDR_IN) {
24153 if (flags & NDR_OUT) {
24154 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24156 return NDR_ERR_SUCCESS;
24159 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24161 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24163 if (flags & NDR_SET_VALUES) {
24164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24166 if (flags & NDR_IN) {
24167 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24171 if (flags & NDR_OUT) {
24172 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24174 ndr_print_WERROR(ndr, "result", r->out.result);
24180 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24182 if (flags & NDR_IN) {
24183 if (r->in.handle == NULL) {
24184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24186 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24187 if (r->in.devmode_ctr == NULL) {
24188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24190 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24192 if (flags & NDR_OUT) {
24193 if (r->out.gdi_handle == NULL) {
24194 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24196 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24197 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24199 return NDR_ERR_SUCCESS;
24202 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24204 TALLOC_CTX *_mem_save_handle_0;
24205 TALLOC_CTX *_mem_save_gdi_handle_0;
24206 TALLOC_CTX *_mem_save_devmode_ctr_0;
24207 if (flags & NDR_IN) {
24208 ZERO_STRUCT(r->out);
24210 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24211 NDR_PULL_ALLOC(ndr, r->in.handle);
24213 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24214 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24215 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24218 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24220 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24221 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24222 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24224 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24225 ZERO_STRUCTP(r->out.gdi_handle);
24227 if (flags & NDR_OUT) {
24228 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24229 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24231 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24232 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24233 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24235 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24237 return NDR_ERR_SUCCESS;
24240 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24242 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24244 if (flags & NDR_SET_VALUES) {
24245 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24247 if (flags & NDR_IN) {
24248 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24250 ndr_print_ptr(ndr, "handle", r->in.handle);
24252 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24254 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24256 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24260 if (flags & NDR_OUT) {
24261 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24263 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24265 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24267 ndr_print_WERROR(ndr, "result", r->out.result);
24273 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24275 if (flags & NDR_IN) {
24277 if (flags & NDR_OUT) {
24278 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24280 return NDR_ERR_SUCCESS;
24283 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24285 if (flags & NDR_IN) {
24287 if (flags & NDR_OUT) {
24288 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24290 return NDR_ERR_SUCCESS;
24293 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24295 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24297 if (flags & NDR_SET_VALUES) {
24298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24300 if (flags & NDR_IN) {
24301 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24305 if (flags & NDR_OUT) {
24306 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24308 ndr_print_WERROR(ndr, "result", r->out.result);
24314 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24316 if (flags & NDR_IN) {
24317 if (r->in.gdi_handle == NULL) {
24318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24320 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24322 if (flags & NDR_OUT) {
24323 if (r->out.gdi_handle == NULL) {
24324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24326 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24327 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24329 return NDR_ERR_SUCCESS;
24332 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24334 TALLOC_CTX *_mem_save_gdi_handle_0;
24335 if (flags & NDR_IN) {
24336 ZERO_STRUCT(r->out);
24338 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24339 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
24341 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24342 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24343 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24345 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24346 *r->out.gdi_handle = *r->in.gdi_handle;
24348 if (flags & NDR_OUT) {
24349 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24350 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24352 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24353 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24354 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24356 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24358 return NDR_ERR_SUCCESS;
24361 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
24363 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
24365 if (flags & NDR_SET_VALUES) {
24366 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24368 if (flags & NDR_IN) {
24369 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
24371 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
24373 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
24377 if (flags & NDR_OUT) {
24378 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
24380 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24382 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24384 ndr_print_WERROR(ndr, "result", r->out.result);
24390 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
24392 if (flags & NDR_IN) {
24394 if (flags & NDR_OUT) {
24395 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24397 return NDR_ERR_SUCCESS;
24400 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
24402 if (flags & NDR_IN) {
24404 if (flags & NDR_OUT) {
24405 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24407 return NDR_ERR_SUCCESS;
24410 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
24412 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
24414 if (flags & NDR_SET_VALUES) {
24415 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24417 if (flags & NDR_IN) {
24418 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
24422 if (flags & NDR_OUT) {
24423 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
24425 ndr_print_WERROR(ndr, "result", r->out.result);
24431 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
24433 if (flags & NDR_IN) {
24435 if (flags & NDR_OUT) {
24436 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24438 return NDR_ERR_SUCCESS;
24441 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
24443 if (flags & NDR_IN) {
24445 if (flags & NDR_OUT) {
24446 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24448 return NDR_ERR_SUCCESS;
24451 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
24453 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
24455 if (flags & NDR_SET_VALUES) {
24456 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24458 if (flags & NDR_IN) {
24459 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
24463 if (flags & NDR_OUT) {
24464 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
24466 ndr_print_WERROR(ndr, "result", r->out.result);
24472 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
24474 if (flags & NDR_IN) {
24476 if (flags & NDR_OUT) {
24477 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24479 return NDR_ERR_SUCCESS;
24482 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
24484 if (flags & NDR_IN) {
24486 if (flags & NDR_OUT) {
24487 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24489 return NDR_ERR_SUCCESS;
24492 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
24494 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
24496 if (flags & NDR_SET_VALUES) {
24497 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24499 if (flags & NDR_IN) {
24500 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
24504 if (flags & NDR_OUT) {
24505 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
24507 ndr_print_WERROR(ndr, "result", r->out.result);
24513 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
24515 if (flags & NDR_IN) {
24517 if (flags & NDR_OUT) {
24518 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24520 return NDR_ERR_SUCCESS;
24523 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
24525 if (flags & NDR_IN) {
24527 if (flags & NDR_OUT) {
24528 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24530 return NDR_ERR_SUCCESS;
24533 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
24535 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
24537 if (flags & NDR_SET_VALUES) {
24538 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24540 if (flags & NDR_IN) {
24541 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
24545 if (flags & NDR_OUT) {
24546 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
24548 ndr_print_WERROR(ndr, "result", r->out.result);
24554 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
24556 if (flags & NDR_IN) {
24558 if (flags & NDR_OUT) {
24559 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24561 return NDR_ERR_SUCCESS;
24564 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
24566 if (flags & NDR_IN) {
24568 if (flags & NDR_OUT) {
24569 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24571 return NDR_ERR_SUCCESS;
24574 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
24576 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
24578 if (flags & NDR_SET_VALUES) {
24579 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24581 if (flags & NDR_IN) {
24582 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
24586 if (flags & NDR_OUT) {
24587 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
24589 ndr_print_WERROR(ndr, "result", r->out.result);
24595 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
24597 if (flags & NDR_IN) {
24599 if (flags & NDR_OUT) {
24600 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24602 return NDR_ERR_SUCCESS;
24605 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
24607 if (flags & NDR_IN) {
24609 if (flags & NDR_OUT) {
24610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24612 return NDR_ERR_SUCCESS;
24615 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
24617 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
24619 if (flags & NDR_SET_VALUES) {
24620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24622 if (flags & NDR_IN) {
24623 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
24627 if (flags & NDR_OUT) {
24628 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
24630 ndr_print_WERROR(ndr, "result", r->out.result);
24636 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
24638 if (flags & NDR_IN) {
24640 if (flags & NDR_OUT) {
24641 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24643 return NDR_ERR_SUCCESS;
24646 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
24648 if (flags & NDR_IN) {
24650 if (flags & NDR_OUT) {
24651 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24653 return NDR_ERR_SUCCESS;
24656 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
24658 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
24660 if (flags & NDR_SET_VALUES) {
24661 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24663 if (flags & NDR_IN) {
24664 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
24668 if (flags & NDR_OUT) {
24669 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
24671 ndr_print_WERROR(ndr, "result", r->out.result);
24677 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
24679 if (flags & NDR_IN) {
24681 if (flags & NDR_OUT) {
24682 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24684 return NDR_ERR_SUCCESS;
24687 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
24689 if (flags & NDR_IN) {
24691 if (flags & NDR_OUT) {
24692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24694 return NDR_ERR_SUCCESS;
24697 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
24699 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
24701 if (flags & NDR_SET_VALUES) {
24702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24704 if (flags & NDR_IN) {
24705 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
24709 if (flags & NDR_OUT) {
24710 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
24712 ndr_print_WERROR(ndr, "result", r->out.result);
24718 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
24720 if (flags & NDR_IN) {
24721 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24722 if (r->in.servername) {
24723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24726 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24728 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
24729 if (r->in.print_processor_name) {
24730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24733 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));
24735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24737 if (r->in.buffer) {
24738 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24742 if (flags & NDR_OUT) {
24743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24745 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24747 if (r->out.needed == NULL) {
24748 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24751 if (r->out.count == NULL) {
24752 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24757 return NDR_ERR_SUCCESS;
24760 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
24762 uint32_t _ptr_servername;
24763 uint32_t _ptr_print_processor_name;
24764 uint32_t _ptr_buffer;
24765 uint32_t _ptr_info;
24766 TALLOC_CTX *_mem_save_servername_0;
24767 TALLOC_CTX *_mem_save_print_processor_name_0;
24768 TALLOC_CTX *_mem_save_buffer_0;
24769 TALLOC_CTX *_mem_save_info_0;
24770 TALLOC_CTX *_mem_save_needed_0;
24771 TALLOC_CTX *_mem_save_count_0;
24772 if (flags & NDR_IN) {
24773 ZERO_STRUCT(r->out);
24775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24776 if (_ptr_servername) {
24777 NDR_PULL_ALLOC(ndr, r->in.servername);
24779 r->in.servername = NULL;
24781 if (r->in.servername) {
24782 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24783 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24784 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24785 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24786 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24787 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));
24789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
24794 if (_ptr_print_processor_name) {
24795 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
24797 r->in.print_processor_name = NULL;
24799 if (r->in.print_processor_name) {
24800 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24801 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
24802 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
24803 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
24804 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
24805 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));
24807 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
24808 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));
24809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
24811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24814 NDR_PULL_ALLOC(ndr, r->in.buffer);
24816 r->in.buffer = NULL;
24818 if (r->in.buffer) {
24819 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24820 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24821 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24825 NDR_PULL_ALLOC(ndr, r->out.needed);
24826 ZERO_STRUCTP(r->out.needed);
24827 NDR_PULL_ALLOC(ndr, r->out.count);
24828 ZERO_STRUCTP(r->out.count);
24830 if (flags & NDR_OUT) {
24831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24833 NDR_PULL_ALLOC(ndr, r->out.info);
24835 r->out.info = NULL;
24838 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24839 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24840 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24843 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24844 NDR_PULL_ALLOC(ndr, r->out.needed);
24846 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24847 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24851 NDR_PULL_ALLOC(ndr, r->out.count);
24853 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24854 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24857 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24859 return NDR_ERR_SUCCESS;
24862 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
24864 uint32_t cntr_info_0;
24865 if (flags & NDR_IN) {
24866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24869 if (flags & NDR_OUT) {
24870 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24871 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24872 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24874 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24875 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24878 return NDR_ERR_SUCCESS;
24881 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
24883 uint32_t cntr_info_0;
24884 TALLOC_CTX *_mem_save_info_0;
24885 if (flags & NDR_IN) {
24886 ZERO_STRUCT(r->out);
24888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24891 if (flags & NDR_OUT) {
24892 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24893 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24894 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24895 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24896 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24897 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24899 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24900 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24904 return NDR_ERR_SUCCESS;
24907 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
24909 uint32_t cntr_info_2;
24910 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
24912 if (flags & NDR_SET_VALUES) {
24913 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24915 if (flags & NDR_IN) {
24916 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
24918 ndr_print_ptr(ndr, "servername", r->in.servername);
24920 if (r->in.servername) {
24921 ndr_print_string(ndr, "servername", r->in.servername);
24924 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
24926 if (r->in.print_processor_name) {
24927 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
24930 ndr_print_uint32(ndr, "level", r->in.level);
24931 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24933 if (r->in.buffer) {
24934 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24937 ndr_print_uint32(ndr, "offered", r->in.offered);
24940 if (flags & NDR_OUT) {
24941 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
24943 ndr_print_ptr(ndr, "count", r->out.count);
24945 ndr_print_uint32(ndr, "count", *r->out.count);
24947 ndr_print_ptr(ndr, "info", r->out.info);
24949 ndr_print_ptr(ndr, "info", *r->out.info);
24951 if (*r->out.info) {
24952 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24954 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24956 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24957 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24958 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24966 ndr_print_ptr(ndr, "needed", r->out.needed);
24968 ndr_print_uint32(ndr, "needed", *r->out.needed);
24970 ndr_print_WERROR(ndr, "result", r->out.result);
24976 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
24978 if (flags & NDR_IN) {
24979 if (r->in.handle == NULL) {
24980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24982 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
24984 if (r->in.data_type) {
24985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24988 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));
24990 if (r->in.devmode_ctr == NULL) {
24991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24993 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24995 if (flags & NDR_OUT) {
24996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24998 return NDR_ERR_SUCCESS;
25001 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25003 uint32_t _ptr_data_type;
25004 TALLOC_CTX *_mem_save_handle_0;
25005 TALLOC_CTX *_mem_save_data_type_0;
25006 TALLOC_CTX *_mem_save_devmode_ctr_0;
25007 if (flags & NDR_IN) {
25008 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25009 NDR_PULL_ALLOC(ndr, r->in.handle);
25011 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25012 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25013 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25016 if (_ptr_data_type) {
25017 NDR_PULL_ALLOC(ndr, r->in.data_type);
25019 r->in.data_type = NULL;
25021 if (r->in.data_type) {
25022 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25023 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25024 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25025 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25026 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25027 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));
25029 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25030 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));
25031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25033 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25034 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25036 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25037 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25038 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25041 if (flags & NDR_OUT) {
25042 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25044 return NDR_ERR_SUCCESS;
25047 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25049 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25051 if (flags & NDR_SET_VALUES) {
25052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25054 if (flags & NDR_IN) {
25055 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25057 ndr_print_ptr(ndr, "handle", r->in.handle);
25059 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25061 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25063 if (r->in.data_type) {
25064 ndr_print_string(ndr, "data_type", r->in.data_type);
25067 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25069 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25073 if (flags & NDR_OUT) {
25074 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25076 ndr_print_WERROR(ndr, "result", r->out.result);
25082 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25084 if (flags & NDR_IN) {
25085 if (r->in.handle == NULL) {
25086 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25088 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25089 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25090 if (r->in.architecture) {
25091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25094 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25098 if (r->in.buffer) {
25099 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25105 if (flags & NDR_OUT) {
25106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25109 struct ndr_push *_ndr_info;
25110 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25111 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25112 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25113 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25116 if (r->out.needed == NULL) {
25117 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25120 if (r->out.server_major_version == NULL) {
25121 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25124 if (r->out.server_minor_version == NULL) {
25125 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25128 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25130 return NDR_ERR_SUCCESS;
25133 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25135 uint32_t _ptr_architecture;
25136 uint32_t _ptr_buffer;
25137 uint32_t _ptr_info;
25138 TALLOC_CTX *_mem_save_handle_0;
25139 TALLOC_CTX *_mem_save_architecture_0;
25140 TALLOC_CTX *_mem_save_buffer_0;
25141 TALLOC_CTX *_mem_save_info_0;
25142 TALLOC_CTX *_mem_save_needed_0;
25143 TALLOC_CTX *_mem_save_server_major_version_0;
25144 TALLOC_CTX *_mem_save_server_minor_version_0;
25145 if (flags & NDR_IN) {
25146 ZERO_STRUCT(r->out);
25148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25149 NDR_PULL_ALLOC(ndr, r->in.handle);
25151 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25152 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25153 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25156 if (_ptr_architecture) {
25157 NDR_PULL_ALLOC(ndr, r->in.architecture);
25159 r->in.architecture = NULL;
25161 if (r->in.architecture) {
25162 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25163 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25164 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25165 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25166 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25167 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));
25169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25176 NDR_PULL_ALLOC(ndr, r->in.buffer);
25178 r->in.buffer = NULL;
25180 if (r->in.buffer) {
25181 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25182 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25183 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25189 NDR_PULL_ALLOC(ndr, r->out.needed);
25190 ZERO_STRUCTP(r->out.needed);
25191 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25192 ZERO_STRUCTP(r->out.server_major_version);
25193 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25194 ZERO_STRUCTP(r->out.server_minor_version);
25196 if (flags & NDR_OUT) {
25197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25199 NDR_PULL_ALLOC(ndr, r->out.info);
25201 r->out.info = NULL;
25204 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25205 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25207 struct ndr_pull *_ndr_info;
25208 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25209 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25210 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25211 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25215 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25216 NDR_PULL_ALLOC(ndr, r->out.needed);
25218 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25219 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25222 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25223 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25225 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25226 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25229 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25230 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25232 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25233 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25238 return NDR_ERR_SUCCESS;
25241 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25243 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25245 if (flags & NDR_SET_VALUES) {
25246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25248 if (flags & NDR_IN) {
25249 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25251 ndr_print_ptr(ndr, "handle", r->in.handle);
25253 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25255 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25257 if (r->in.architecture) {
25258 ndr_print_string(ndr, "architecture", r->in.architecture);
25261 ndr_print_uint32(ndr, "level", r->in.level);
25262 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25264 if (r->in.buffer) {
25265 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25268 ndr_print_uint32(ndr, "offered", r->in.offered);
25269 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25270 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25273 if (flags & NDR_OUT) {
25274 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25276 ndr_print_ptr(ndr, "info", r->out.info);
25279 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25280 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25283 ndr_print_ptr(ndr, "needed", r->out.needed);
25285 ndr_print_uint32(ndr, "needed", *r->out.needed);
25287 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25289 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25291 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25293 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25295 ndr_print_WERROR(ndr, "result", r->out.result);
25301 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25303 if (flags & NDR_IN) {
25305 if (flags & NDR_OUT) {
25306 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25308 return NDR_ERR_SUCCESS;
25311 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25313 if (flags & NDR_IN) {
25315 if (flags & NDR_OUT) {
25316 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25318 return NDR_ERR_SUCCESS;
25321 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25323 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25325 if (flags & NDR_SET_VALUES) {
25326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25328 if (flags & NDR_IN) {
25329 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25333 if (flags & NDR_OUT) {
25334 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25336 ndr_print_WERROR(ndr, "result", r->out.result);
25342 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25344 if (flags & NDR_IN) {
25346 if (flags & NDR_OUT) {
25347 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25349 return NDR_ERR_SUCCESS;
25352 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
25354 if (flags & NDR_IN) {
25356 if (flags & NDR_OUT) {
25357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25359 return NDR_ERR_SUCCESS;
25362 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25364 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
25366 if (flags & NDR_SET_VALUES) {
25367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25369 if (flags & NDR_IN) {
25370 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
25374 if (flags & NDR_OUT) {
25375 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
25377 ndr_print_WERROR(ndr, "result", r->out.result);
25383 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
25385 if (flags & NDR_IN) {
25386 if (r->in.handle == NULL) {
25387 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25389 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25391 if (flags & NDR_OUT) {
25392 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25394 return NDR_ERR_SUCCESS;
25397 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
25399 TALLOC_CTX *_mem_save_handle_0;
25400 if (flags & NDR_IN) {
25401 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25402 NDR_PULL_ALLOC(ndr, r->in.handle);
25404 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25405 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25406 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25409 if (flags & NDR_OUT) {
25410 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25412 return NDR_ERR_SUCCESS;
25415 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
25417 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
25419 if (flags & NDR_SET_VALUES) {
25420 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25422 if (flags & NDR_IN) {
25423 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
25425 ndr_print_ptr(ndr, "handle", r->in.handle);
25427 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25431 if (flags & NDR_OUT) {
25432 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
25434 ndr_print_WERROR(ndr, "result", r->out.result);
25440 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25442 if (flags & NDR_IN) {
25444 if (flags & NDR_OUT) {
25445 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25447 return NDR_ERR_SUCCESS;
25450 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25452 if (flags & NDR_IN) {
25454 if (flags & NDR_OUT) {
25455 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25457 return NDR_ERR_SUCCESS;
25460 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25462 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25464 if (flags & NDR_SET_VALUES) {
25465 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25467 if (flags & NDR_IN) {
25468 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25472 if (flags & NDR_OUT) {
25473 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25475 ndr_print_WERROR(ndr, "result", r->out.result);
25481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
25483 if (flags & NDR_IN) {
25484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25486 NDR_CHECK(ndr_push_uint32(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));
25488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25489 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25492 if (r->in.buffer) {
25493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25494 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25497 if (flags & NDR_OUT) {
25498 if (r->out.handle == NULL) {
25499 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25501 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25502 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25504 return NDR_ERR_SUCCESS;
25507 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25509 uint32_t _ptr_buffer;
25510 TALLOC_CTX *_mem_save_buffer_0;
25511 TALLOC_CTX *_mem_save_handle_0;
25512 if (flags & NDR_IN) {
25513 ZERO_STRUCT(r->out);
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_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25523 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25525 if (r->in.bufsize > 512) {
25526 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25530 NDR_PULL_ALLOC(ndr, r->in.buffer);
25532 r->in.buffer = NULL;
25534 if (r->in.buffer) {
25535 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25536 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25537 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25538 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25539 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25542 NDR_PULL_ALLOC(ndr, r->out.handle);
25543 ZERO_STRUCTP(r->out.handle);
25544 if (r->in.buffer) {
25545 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25548 if (flags & NDR_OUT) {
25549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25550 NDR_PULL_ALLOC(ndr, r->out.handle);
25552 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25553 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25554 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25558 return NDR_ERR_SUCCESS;
25561 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
25563 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
25565 if (flags & NDR_SET_VALUES) {
25566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25568 if (flags & NDR_IN) {
25569 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
25571 ndr_print_string(ndr, "server_name", r->in.server_name);
25572 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25573 ndr_print_winreg_Type(ndr, "type", r->in.type);
25574 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25575 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25577 if (r->in.buffer) {
25578 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25583 if (flags & NDR_OUT) {
25584 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
25586 ndr_print_ptr(ndr, "handle", r->out.handle);
25588 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25590 ndr_print_WERROR(ndr, "result", r->out.result);
25596 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
25598 if (flags & NDR_IN) {
25599 if (r->in.handle == NULL) {
25600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25602 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25603 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25606 if (r->in.buffer) {
25607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25608 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25611 if (flags & NDR_OUT) {
25612 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25614 return NDR_ERR_SUCCESS;
25617 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25619 uint32_t _ptr_buffer;
25620 TALLOC_CTX *_mem_save_handle_0;
25621 TALLOC_CTX *_mem_save_buffer_0;
25622 if (flags & NDR_IN) {
25623 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25624 NDR_PULL_ALLOC(ndr, r->in.handle);
25626 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25627 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25628 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25630 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25632 if (r->in.bufsize > 512) {
25633 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25637 NDR_PULL_ALLOC(ndr, r->in.buffer);
25639 r->in.buffer = NULL;
25641 if (r->in.buffer) {
25642 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25643 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25644 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25645 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25646 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25649 if (r->in.buffer) {
25650 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25653 if (flags & NDR_OUT) {
25654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25656 return NDR_ERR_SUCCESS;
25659 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
25661 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
25663 if (flags & NDR_SET_VALUES) {
25664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25666 if (flags & NDR_IN) {
25667 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
25669 ndr_print_ptr(ndr, "handle", r->in.handle);
25671 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25673 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25674 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25675 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25677 if (r->in.buffer) {
25678 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25683 if (flags & NDR_OUT) {
25684 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
25686 ndr_print_WERROR(ndr, "result", r->out.result);
25692 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
25694 if (flags & NDR_IN) {
25695 if (r->in.handle == NULL) {
25696 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25698 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25700 if (flags & NDR_OUT) {
25701 if (r->out.handle == NULL) {
25702 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25704 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25705 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25707 return NDR_ERR_SUCCESS;
25710 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
25712 TALLOC_CTX *_mem_save_handle_0;
25713 if (flags & NDR_IN) {
25714 ZERO_STRUCT(r->out);
25716 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25717 NDR_PULL_ALLOC(ndr, r->in.handle);
25719 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25720 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25721 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25723 NDR_PULL_ALLOC(ndr, r->out.handle);
25724 *r->out.handle = *r->in.handle;
25726 if (flags & NDR_OUT) {
25727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25728 NDR_PULL_ALLOC(ndr, r->out.handle);
25730 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25731 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25732 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25736 return NDR_ERR_SUCCESS;
25739 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
25741 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
25743 if (flags & NDR_SET_VALUES) {
25744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25746 if (flags & NDR_IN) {
25747 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
25749 ndr_print_ptr(ndr, "handle", r->in.handle);
25751 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25755 if (flags & NDR_OUT) {
25756 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
25758 ndr_print_ptr(ndr, "handle", r->out.handle);
25760 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25762 ndr_print_WERROR(ndr, "result", r->out.result);
25768 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
25770 if (flags & NDR_IN) {
25772 if (flags & NDR_OUT) {
25773 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25775 return NDR_ERR_SUCCESS;
25778 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
25780 if (flags & NDR_IN) {
25782 if (flags & NDR_OUT) {
25783 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25785 return NDR_ERR_SUCCESS;
25788 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
25790 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
25792 if (flags & NDR_SET_VALUES) {
25793 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25795 if (flags & NDR_IN) {
25796 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
25800 if (flags & NDR_OUT) {
25801 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
25803 ndr_print_WERROR(ndr, "result", r->out.result);
25809 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25811 if (flags & NDR_IN) {
25813 if (flags & NDR_OUT) {
25814 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25816 return NDR_ERR_SUCCESS;
25819 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25821 if (flags & NDR_IN) {
25823 if (flags & NDR_OUT) {
25824 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25826 return NDR_ERR_SUCCESS;
25829 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25831 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
25833 if (flags & NDR_SET_VALUES) {
25834 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25836 if (flags & NDR_IN) {
25837 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
25841 if (flags & NDR_OUT) {
25842 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25844 ndr_print_WERROR(ndr, "result", r->out.result);
25850 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
25852 if (flags & NDR_IN) {
25854 if (flags & NDR_OUT) {
25855 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25857 return NDR_ERR_SUCCESS;
25860 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
25862 if (flags & NDR_IN) {
25864 if (flags & NDR_OUT) {
25865 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25867 return NDR_ERR_SUCCESS;
25870 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
25872 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
25874 if (flags & NDR_SET_VALUES) {
25875 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25877 if (flags & NDR_IN) {
25878 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
25882 if (flags & NDR_OUT) {
25883 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
25885 ndr_print_WERROR(ndr, "result", r->out.result);
25891 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
25893 if (flags & NDR_IN) {
25895 if (flags & NDR_OUT) {
25896 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25898 return NDR_ERR_SUCCESS;
25901 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
25903 if (flags & NDR_IN) {
25905 if (flags & NDR_OUT) {
25906 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25908 return NDR_ERR_SUCCESS;
25911 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
25913 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
25915 if (flags & NDR_SET_VALUES) {
25916 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25918 if (flags & NDR_IN) {
25919 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
25923 if (flags & NDR_OUT) {
25924 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
25926 ndr_print_WERROR(ndr, "result", r->out.result);
25932 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25934 if (flags & NDR_IN) {
25935 if (r->in.handle == NULL) {
25936 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25938 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25939 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
25941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
25942 if (r->in.local_machine) {
25943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25946 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));
25948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25949 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
25950 if (r->in.notify_options) {
25951 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25954 if (flags & NDR_OUT) {
25955 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25957 return NDR_ERR_SUCCESS;
25960 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25962 uint32_t _ptr_local_machine;
25963 uint32_t _ptr_notify_options;
25964 TALLOC_CTX *_mem_save_handle_0;
25965 TALLOC_CTX *_mem_save_local_machine_0;
25966 TALLOC_CTX *_mem_save_notify_options_0;
25967 if (flags & NDR_IN) {
25968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25969 NDR_PULL_ALLOC(ndr, r->in.handle);
25971 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25972 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25973 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25975 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
25977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
25978 if (_ptr_local_machine) {
25979 NDR_PULL_ALLOC(ndr, r->in.local_machine);
25981 r->in.local_machine = NULL;
25983 if (r->in.local_machine) {
25984 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
25985 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
25986 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
25987 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
25988 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
25989 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));
25991 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
25992 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));
25993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
25995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
25997 if (_ptr_notify_options) {
25998 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26000 r->in.notify_options = NULL;
26002 if (r->in.notify_options) {
26003 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26004 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26005 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26009 if (flags & NDR_OUT) {
26010 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26012 return NDR_ERR_SUCCESS;
26015 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26017 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26019 if (flags & NDR_SET_VALUES) {
26020 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26022 if (flags & NDR_IN) {
26023 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26025 ndr_print_ptr(ndr, "handle", r->in.handle);
26027 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26029 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26030 ndr_print_uint32(ndr, "options", r->in.options);
26031 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26033 if (r->in.local_machine) {
26034 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26037 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26038 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26040 if (r->in.notify_options) {
26041 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26046 if (flags & NDR_OUT) {
26047 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26049 ndr_print_WERROR(ndr, "result", r->out.result);
26055 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26057 if (flags & NDR_IN) {
26058 if (r->in.handle == NULL) {
26059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26063 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26065 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26066 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26068 if (flags & NDR_OUT) {
26069 if (r->out.reply_result == NULL) {
26070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26072 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26073 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26075 return NDR_ERR_SUCCESS;
26078 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26080 TALLOC_CTX *_mem_save_handle_0;
26081 TALLOC_CTX *_mem_save_reply_result_0;
26082 if (flags & NDR_IN) {
26083 ZERO_STRUCT(r->out);
26085 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26086 NDR_PULL_ALLOC(ndr, r->in.handle);
26088 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26089 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26090 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26093 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26095 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26096 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26097 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26098 ZERO_STRUCTP(r->out.reply_result);
26100 if (flags & NDR_OUT) {
26101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26102 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26104 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26105 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26106 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26108 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26110 return NDR_ERR_SUCCESS;
26113 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26115 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26117 if (flags & NDR_SET_VALUES) {
26118 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26120 if (flags & NDR_IN) {
26121 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26123 ndr_print_ptr(ndr, "handle", r->in.handle);
26125 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26127 ndr_print_uint32(ndr, "color", r->in.color);
26128 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26129 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26130 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26131 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26134 if (flags & NDR_OUT) {
26135 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26137 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26139 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26141 ndr_print_WERROR(ndr, "result", r->out.result);
26147 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26149 if (flags & NDR_IN) {
26150 if (r->in.handle == NULL) {
26151 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26153 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26155 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26156 if (r->in.options) {
26157 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26160 if (flags & NDR_OUT) {
26161 if (r->out.info == NULL) {
26162 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26164 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26165 if (*r->out.info) {
26166 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26170 return NDR_ERR_SUCCESS;
26173 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26175 uint32_t _ptr_options;
26176 uint32_t _ptr_info;
26177 TALLOC_CTX *_mem_save_handle_0;
26178 TALLOC_CTX *_mem_save_options_0;
26179 TALLOC_CTX *_mem_save_info_0;
26180 TALLOC_CTX *_mem_save_info_1;
26181 if (flags & NDR_IN) {
26182 ZERO_STRUCT(r->out);
26184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26185 NDR_PULL_ALLOC(ndr, r->in.handle);
26187 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26188 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26189 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26193 if (_ptr_options) {
26194 NDR_PULL_ALLOC(ndr, r->in.options);
26196 r->in.options = NULL;
26198 if (r->in.options) {
26199 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26200 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26201 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26204 NDR_PULL_ALLOC(ndr, r->out.info);
26205 ZERO_STRUCTP(r->out.info);
26207 if (flags & NDR_OUT) {
26208 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26209 NDR_PULL_ALLOC(ndr, r->out.info);
26211 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26212 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26215 NDR_PULL_ALLOC(ndr, *r->out.info);
26217 *r->out.info = NULL;
26219 if (*r->out.info) {
26220 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26221 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26222 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26226 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26228 return NDR_ERR_SUCCESS;
26231 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26233 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26235 if (flags & NDR_SET_VALUES) {
26236 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26238 if (flags & NDR_IN) {
26239 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26241 ndr_print_ptr(ndr, "handle", r->in.handle);
26243 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26245 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26246 ndr_print_ptr(ndr, "options", r->in.options);
26248 if (r->in.options) {
26249 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26254 if (flags & NDR_OUT) {
26255 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26257 ndr_print_ptr(ndr, "info", r->out.info);
26259 ndr_print_ptr(ndr, "info", *r->out.info);
26261 if (*r->out.info) {
26262 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26266 ndr_print_WERROR(ndr, "result", r->out.result);
26272 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26274 if (flags & NDR_IN) {
26276 if (flags & NDR_OUT) {
26277 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26279 return NDR_ERR_SUCCESS;
26282 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26284 if (flags & NDR_IN) {
26286 if (flags & NDR_OUT) {
26287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26289 return NDR_ERR_SUCCESS;
26292 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26294 ndr_print_struct(ndr, name, "spoolss_44");
26296 if (flags & NDR_SET_VALUES) {
26297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26299 if (flags & NDR_IN) {
26300 ndr_print_struct(ndr, "in", "spoolss_44");
26304 if (flags & NDR_OUT) {
26305 ndr_print_struct(ndr, "out", "spoolss_44");
26307 ndr_print_WERROR(ndr, "result", r->out.result);
26313 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26315 if (flags & NDR_IN) {
26316 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26317 if (r->in.printername) {
26318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26321 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26324 if (r->in.datatype) {
26325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26330 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26331 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26333 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26334 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26336 if (flags & NDR_OUT) {
26337 if (r->out.handle == NULL) {
26338 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26340 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26343 return NDR_ERR_SUCCESS;
26346 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26348 uint32_t _ptr_printername;
26349 uint32_t _ptr_datatype;
26350 TALLOC_CTX *_mem_save_printername_0;
26351 TALLOC_CTX *_mem_save_datatype_0;
26352 TALLOC_CTX *_mem_save_handle_0;
26353 if (flags & NDR_IN) {
26354 ZERO_STRUCT(r->out);
26356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26357 if (_ptr_printername) {
26358 NDR_PULL_ALLOC(ndr, r->in.printername);
26360 r->in.printername = NULL;
26362 if (r->in.printername) {
26363 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26364 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26365 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26366 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26367 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
26368 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));
26370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
26371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
26372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26375 if (_ptr_datatype) {
26376 NDR_PULL_ALLOC(ndr, r->in.datatype);
26378 r->in.datatype = NULL;
26380 if (r->in.datatype) {
26381 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26382 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26383 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26384 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26385 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
26386 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));
26388 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
26389 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
26390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26392 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26393 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26395 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26396 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26397 NDR_PULL_ALLOC(ndr, r->out.handle);
26398 ZERO_STRUCTP(r->out.handle);
26400 if (flags & NDR_OUT) {
26401 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26402 NDR_PULL_ALLOC(ndr, r->out.handle);
26404 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26405 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26406 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26408 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26410 return NDR_ERR_SUCCESS;
26413 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
26415 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
26417 if (flags & NDR_SET_VALUES) {
26418 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26420 if (flags & NDR_IN) {
26421 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
26423 ndr_print_ptr(ndr, "printername", r->in.printername);
26425 if (r->in.printername) {
26426 ndr_print_string(ndr, "printername", r->in.printername);
26429 ndr_print_ptr(ndr, "datatype", r->in.datatype);
26431 if (r->in.datatype) {
26432 ndr_print_string(ndr, "datatype", r->in.datatype);
26435 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26436 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26437 ndr_print_uint32(ndr, "level", r->in.level);
26438 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
26439 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
26442 if (flags & NDR_OUT) {
26443 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
26445 ndr_print_ptr(ndr, "handle", r->out.handle);
26447 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26449 ndr_print_WERROR(ndr, "result", r->out.result);
26455 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
26457 if (flags & NDR_IN) {
26458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26459 if (r->in.server) {
26460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26465 if (r->in.info_ctr == NULL) {
26466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26468 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26469 if (r->in.devmode_ctr == NULL) {
26470 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26472 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26473 if (r->in.secdesc_ctr == NULL) {
26474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26476 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26477 if (r->in.userlevel_ctr == NULL) {
26478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26480 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26482 if (flags & NDR_OUT) {
26483 if (r->out.handle == NULL) {
26484 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26486 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26487 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26489 return NDR_ERR_SUCCESS;
26492 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26494 uint32_t _ptr_server;
26495 TALLOC_CTX *_mem_save_server_0;
26496 TALLOC_CTX *_mem_save_info_ctr_0;
26497 TALLOC_CTX *_mem_save_devmode_ctr_0;
26498 TALLOC_CTX *_mem_save_secdesc_ctr_0;
26499 TALLOC_CTX *_mem_save_userlevel_ctr_0;
26500 TALLOC_CTX *_mem_save_handle_0;
26501 if (flags & NDR_IN) {
26502 ZERO_STRUCT(r->out);
26504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26506 NDR_PULL_ALLOC(ndr, r->in.server);
26508 r->in.server = NULL;
26510 if (r->in.server) {
26511 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26512 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26513 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26514 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26515 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26516 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));
26518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26523 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26525 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26526 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26527 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26529 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26530 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26532 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26533 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26534 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26536 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26537 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26539 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26540 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26541 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26543 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26544 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
26546 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26547 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
26548 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26550 NDR_PULL_ALLOC(ndr, r->out.handle);
26551 ZERO_STRUCTP(r->out.handle);
26553 if (flags & NDR_OUT) {
26554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26555 NDR_PULL_ALLOC(ndr, r->out.handle);
26557 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26558 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26559 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26561 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26563 return NDR_ERR_SUCCESS;
26566 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
26568 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
26570 if (flags & NDR_SET_VALUES) {
26571 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26573 if (flags & NDR_IN) {
26574 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
26576 ndr_print_ptr(ndr, "server", r->in.server);
26578 if (r->in.server) {
26579 ndr_print_string(ndr, "server", r->in.server);
26582 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26584 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26586 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26588 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26590 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26592 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26594 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26596 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26600 if (flags & NDR_OUT) {
26601 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
26603 ndr_print_ptr(ndr, "handle", r->out.handle);
26605 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26607 ndr_print_WERROR(ndr, "result", r->out.result);
26613 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
26615 if (flags & NDR_IN) {
26617 if (flags & NDR_OUT) {
26618 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26620 return NDR_ERR_SUCCESS;
26623 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
26625 if (flags & NDR_IN) {
26627 if (flags & NDR_OUT) {
26628 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26630 return NDR_ERR_SUCCESS;
26633 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
26635 ndr_print_struct(ndr, name, "spoolss_47");
26637 if (flags & NDR_SET_VALUES) {
26638 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26640 if (flags & NDR_IN) {
26641 ndr_print_struct(ndr, "in", "spoolss_47");
26645 if (flags & NDR_OUT) {
26646 ndr_print_struct(ndr, "out", "spoolss_47");
26648 ndr_print_WERROR(ndr, "result", r->out.result);
26654 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
26656 if (flags & NDR_IN) {
26657 if (r->in.handle == NULL) {
26658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26660 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
26662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
26663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26665 if (flags & NDR_OUT) {
26666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
26667 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
26668 if (r->out.value_needed == NULL) {
26669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
26672 if (r->out.type == NULL) {
26673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26675 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26677 uint32_t _flags_save_uint8 = ndr->flags;
26678 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26679 if (r->out.data == NULL) {
26680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26683 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
26684 ndr->flags = _flags_save_uint8;
26686 if (r->out.data_needed == NULL) {
26687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
26690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26692 return NDR_ERR_SUCCESS;
26695 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
26697 TALLOC_CTX *_mem_save_handle_0;
26698 TALLOC_CTX *_mem_save_value_needed_0;
26699 TALLOC_CTX *_mem_save_type_0;
26700 TALLOC_CTX *_mem_save_data_needed_0;
26701 if (flags & NDR_IN) {
26702 ZERO_STRUCT(r->out);
26704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26705 NDR_PULL_ALLOC(ndr, r->in.handle);
26707 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26708 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26709 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
26712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
26713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
26714 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26715 ZERO_STRUCTP(r->out.value_needed);
26716 NDR_PULL_ALLOC(ndr, r->out.type);
26717 ZERO_STRUCTP(r->out.type);
26718 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
26719 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
26720 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26721 ZERO_STRUCTP(r->out.data_needed);
26723 if (flags & NDR_OUT) {
26724 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
26725 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));
26726 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26727 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26729 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26730 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
26731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
26732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
26733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26734 NDR_PULL_ALLOC(ndr, r->out.type);
26736 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26737 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26738 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26741 uint32_t _flags_save_uint8 = ndr->flags;
26742 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26743 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
26744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26745 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
26747 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
26748 ndr->flags = _flags_save_uint8;
26750 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26751 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26753 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26754 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
26755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
26756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
26757 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26758 if (r->out.value_name) {
26759 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
26762 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
26765 return NDR_ERR_SUCCESS;
26768 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
26770 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
26772 if (flags & NDR_SET_VALUES) {
26773 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26775 if (flags & NDR_IN) {
26776 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
26778 ndr_print_ptr(ndr, "handle", r->in.handle);
26780 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26782 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
26783 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
26784 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
26787 if (flags & NDR_OUT) {
26788 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
26790 ndr_print_string(ndr, "value_name", r->out.value_name);
26791 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
26793 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
26795 ndr_print_ptr(ndr, "type", r->out.type);
26797 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26799 ndr_print_ptr(ndr, "data", r->out.data);
26801 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
26803 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
26805 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
26807 ndr_print_WERROR(ndr, "result", r->out.result);
26813 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
26815 if (flags & NDR_IN) {
26816 if (r->in.handle == NULL) {
26817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26819 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26823 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));
26825 if (flags & NDR_OUT) {
26826 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26828 return NDR_ERR_SUCCESS;
26831 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
26833 TALLOC_CTX *_mem_save_handle_0;
26834 if (flags & NDR_IN) {
26835 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26836 NDR_PULL_ALLOC(ndr, r->in.handle);
26838 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26839 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26840 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26842 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26843 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26844 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26845 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));
26847 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26848 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));
26850 if (flags & NDR_OUT) {
26851 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26853 return NDR_ERR_SUCCESS;
26856 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
26858 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
26860 if (flags & NDR_SET_VALUES) {
26861 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26863 if (flags & NDR_IN) {
26864 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
26866 ndr_print_ptr(ndr, "handle", r->in.handle);
26868 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26870 ndr_print_string(ndr, "value_name", r->in.value_name);
26873 if (flags & NDR_OUT) {
26874 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
26876 ndr_print_WERROR(ndr, "result", r->out.result);
26882 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
26884 if (flags & NDR_IN) {
26886 if (flags & NDR_OUT) {
26887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26889 return NDR_ERR_SUCCESS;
26892 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
26894 if (flags & NDR_IN) {
26896 if (flags & NDR_OUT) {
26897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26899 return NDR_ERR_SUCCESS;
26902 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
26904 ndr_print_struct(ndr, name, "spoolss_4a");
26906 if (flags & NDR_SET_VALUES) {
26907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26909 if (flags & NDR_IN) {
26910 ndr_print_struct(ndr, "in", "spoolss_4a");
26914 if (flags & NDR_OUT) {
26915 ndr_print_struct(ndr, "out", "spoolss_4a");
26917 ndr_print_WERROR(ndr, "result", r->out.result);
26923 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
26925 if (flags & NDR_IN) {
26927 if (flags & NDR_OUT) {
26928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26930 return NDR_ERR_SUCCESS;
26933 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
26935 if (flags & NDR_IN) {
26937 if (flags & NDR_OUT) {
26938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26940 return NDR_ERR_SUCCESS;
26943 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
26945 ndr_print_struct(ndr, name, "spoolss_4b");
26947 if (flags & NDR_SET_VALUES) {
26948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26950 if (flags & NDR_IN) {
26951 ndr_print_struct(ndr, "in", "spoolss_4b");
26955 if (flags & NDR_OUT) {
26956 ndr_print_struct(ndr, "out", "spoolss_4b");
26958 ndr_print_WERROR(ndr, "result", r->out.result);
26964 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
26966 if (flags & NDR_IN) {
26968 if (flags & NDR_OUT) {
26969 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26971 return NDR_ERR_SUCCESS;
26974 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
26976 if (flags & NDR_IN) {
26978 if (flags & NDR_OUT) {
26979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26981 return NDR_ERR_SUCCESS;
26984 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
26986 ndr_print_struct(ndr, name, "spoolss_4c");
26988 if (flags & NDR_SET_VALUES) {
26989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26991 if (flags & NDR_IN) {
26992 ndr_print_struct(ndr, "in", "spoolss_4c");
26996 if (flags & NDR_OUT) {
26997 ndr_print_struct(ndr, "out", "spoolss_4c");
26999 ndr_print_WERROR(ndr, "result", r->out.result);
27005 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
27007 if (flags & NDR_IN) {
27008 if (r->in.handle == NULL) {
27009 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27011 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27015 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));
27016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27019 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));
27020 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27021 if (r->in.buffer == NULL) {
27022 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27025 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
27026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27028 if (flags & NDR_OUT) {
27029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27031 return NDR_ERR_SUCCESS;
27034 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27036 TALLOC_CTX *_mem_save_handle_0;
27037 if (flags & NDR_IN) {
27038 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27039 NDR_PULL_ALLOC(ndr, r->in.handle);
27041 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27042 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27043 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27047 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27048 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));
27050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27051 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));
27052 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27053 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27054 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27055 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));
27057 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27058 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));
27059 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27060 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27062 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27064 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27066 if (r->in.buffer) {
27067 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
27070 if (flags & NDR_OUT) {
27071 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27073 return NDR_ERR_SUCCESS;
27076 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27078 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27080 if (flags & NDR_SET_VALUES) {
27081 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27083 if (flags & NDR_IN) {
27084 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27086 ndr_print_ptr(ndr, "handle", r->in.handle);
27088 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27090 ndr_print_string(ndr, "key_name", r->in.key_name);
27091 ndr_print_string(ndr, "value_name", r->in.value_name);
27092 ndr_print_winreg_Type(ndr, "type", r->in.type);
27093 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27095 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
27097 ndr_print_uint32(ndr, "offered", r->in.offered);
27100 if (flags & NDR_OUT) {
27101 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27103 ndr_print_WERROR(ndr, "result", r->out.result);
27109 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
27111 if (flags & NDR_IN) {
27112 if (r->in.handle == NULL) {
27113 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27115 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27119 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));
27120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27123 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));
27124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27126 if (flags & NDR_OUT) {
27127 if (r->out.type == NULL) {
27128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27130 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27131 if (r->out.buffer == NULL) {
27132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27135 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
27136 if (r->out.needed == NULL) {
27137 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27140 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27142 return NDR_ERR_SUCCESS;
27145 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
27147 TALLOC_CTX *_mem_save_handle_0;
27148 TALLOC_CTX *_mem_save_type_0;
27149 TALLOC_CTX *_mem_save_needed_0;
27150 if (flags & NDR_IN) {
27151 ZERO_STRUCT(r->out);
27153 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27154 NDR_PULL_ALLOC(ndr, r->in.handle);
27156 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27157 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27158 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27160 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27161 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27162 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27163 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));
27165 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27166 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));
27167 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27168 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27169 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27170 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));
27172 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27173 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));
27174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27175 NDR_PULL_ALLOC(ndr, r->out.type);
27176 ZERO_STRUCTP(r->out.type);
27177 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
27178 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
27179 NDR_PULL_ALLOC(ndr, r->out.needed);
27180 ZERO_STRUCTP(r->out.needed);
27182 if (flags & NDR_OUT) {
27183 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27184 NDR_PULL_ALLOC(ndr, r->out.type);
27186 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27187 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27188 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27190 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
27191 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27192 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
27194 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
27195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27196 NDR_PULL_ALLOC(ndr, r->out.needed);
27198 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27199 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27200 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27202 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27203 if (r->out.buffer) {
27204 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
27207 return NDR_ERR_SUCCESS;
27210 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27212 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27214 if (flags & NDR_SET_VALUES) {
27215 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27217 if (flags & NDR_IN) {
27218 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27220 ndr_print_ptr(ndr, "handle", r->in.handle);
27222 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27224 ndr_print_string(ndr, "key_name", r->in.key_name);
27225 ndr_print_string(ndr, "value_name", r->in.value_name);
27226 ndr_print_uint32(ndr, "offered", r->in.offered);
27229 if (flags & NDR_OUT) {
27230 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27232 ndr_print_ptr(ndr, "type", r->out.type);
27234 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27236 ndr_print_ptr(ndr, "buffer", r->out.buffer);
27238 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
27240 ndr_print_ptr(ndr, "needed", r->out.needed);
27242 ndr_print_uint32(ndr, "needed", *r->out.needed);
27244 ndr_print_WERROR(ndr, "result", r->out.result);
27250 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27252 if (flags & NDR_IN) {
27253 if (r->in.handle == NULL) {
27254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27256 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27260 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));
27261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27263 if (flags & NDR_OUT) {
27264 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27265 if (r->out.needed == NULL) {
27266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27269 if (r->out.count == NULL) {
27270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27273 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27275 return NDR_ERR_SUCCESS;
27278 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27280 TALLOC_CTX *_mem_save_handle_0;
27281 TALLOC_CTX *_mem_save_needed_0;
27282 TALLOC_CTX *_mem_save_count_0;
27283 if (flags & NDR_IN) {
27284 ZERO_STRUCT(r->out);
27286 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27287 NDR_PULL_ALLOC(ndr, r->in.handle);
27289 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27290 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27291 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27293 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27294 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27295 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27296 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));
27298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27299 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));
27300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27301 NDR_PULL_ALLOC(ndr, r->out.needed);
27302 ZERO_STRUCTP(r->out.needed);
27303 NDR_PULL_ALLOC(ndr, r->out.count);
27304 ZERO_STRUCTP(r->out.count);
27306 if (flags & NDR_OUT) {
27307 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27309 NDR_PULL_ALLOC(ndr, r->out.needed);
27311 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27312 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27315 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27316 NDR_PULL_ALLOC(ndr, r->out.count);
27318 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27319 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27322 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27324 return NDR_ERR_SUCCESS;
27327 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27329 uint32_t cntr_info_0;
27330 if (flags & NDR_IN) {
27331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27333 if (flags & NDR_OUT) {
27334 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27335 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27337 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27338 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27341 return NDR_ERR_SUCCESS;
27344 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27346 uint32_t cntr_info_0;
27347 TALLOC_CTX *_mem_save_info_0;
27348 if (flags & NDR_IN) {
27349 ZERO_STRUCT(r->out);
27351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27353 if (flags & NDR_OUT) {
27354 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
27355 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27356 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27357 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27358 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27360 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27361 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27365 return NDR_ERR_SUCCESS;
27368 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
27370 uint32_t cntr_info_2;
27371 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
27373 if (flags & NDR_SET_VALUES) {
27374 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27376 if (flags & NDR_IN) {
27377 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
27379 ndr_print_ptr(ndr, "handle", r->in.handle);
27381 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27383 ndr_print_string(ndr, "key_name", r->in.key_name);
27384 ndr_print_uint32(ndr, "offered", r->in.offered);
27387 if (flags & NDR_OUT) {
27388 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
27390 ndr_print_ptr(ndr, "count", r->out.count);
27392 ndr_print_uint32(ndr, "count", *r->out.count);
27394 ndr_print_ptr(ndr, "info", r->out.info);
27396 ndr_print_ptr(ndr, "info", *r->out.info);
27398 if (*r->out.info) {
27399 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27401 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
27403 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
27404 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
27412 ndr_print_ptr(ndr, "needed", r->out.needed);
27414 ndr_print_uint32(ndr, "needed", *r->out.needed);
27416 ndr_print_WERROR(ndr, "result", r->out.result);
27422 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
27424 if (flags & NDR_IN) {
27425 if (r->in.handle == NULL) {
27426 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27428 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27432 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));
27433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27435 if (flags & NDR_OUT) {
27437 uint32_t _flags_save_string_array = ndr->flags;
27438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
27439 if (r->out.key_buffer == NULL) {
27440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27442 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.key_buffer));
27443 if (*r->out.key_buffer) {
27445 struct ndr_push *_ndr_key_buffer;
27446 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
27447 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer, NDR_SCALARS, *r->out.key_buffer));
27448 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
27451 ndr->flags = _flags_save_string_array;
27453 if (r->out.needed == NULL) {
27454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27457 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27459 return NDR_ERR_SUCCESS;
27462 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27464 uint32_t _ptr_key_buffer;
27465 TALLOC_CTX *_mem_save_handle_0;
27466 TALLOC_CTX *_mem_save_key_buffer_0;
27467 TALLOC_CTX *_mem_save_key_buffer_1;
27468 TALLOC_CTX *_mem_save_needed_0;
27469 if (flags & NDR_IN) {
27470 ZERO_STRUCT(r->out);
27472 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27473 NDR_PULL_ALLOC(ndr, r->in.handle);
27475 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27476 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27477 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27479 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27480 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27481 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27482 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));
27484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27485 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));
27486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27487 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27488 ZERO_STRUCTP(r->out.key_buffer);
27489 NDR_PULL_ALLOC(ndr, r->out.needed);
27490 ZERO_STRUCTP(r->out.needed);
27492 if (flags & NDR_OUT) {
27494 uint32_t _flags_save_string_array = ndr->flags;
27495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
27496 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27497 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27499 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27500 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
27501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_key_buffer));
27502 if (_ptr_key_buffer) {
27503 NDR_PULL_ALLOC(ndr, *r->out.key_buffer);
27505 *r->out.key_buffer = NULL;
27507 if (*r->out.key_buffer) {
27508 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
27509 NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_buffer, 0);
27511 struct ndr_pull *_ndr_key_buffer;
27512 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
27513 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer, NDR_SCALARS, r->out.key_buffer));
27514 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
27516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
27518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
27519 ndr->flags = _flags_save_string_array;
27521 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27522 NDR_PULL_ALLOC(ndr, r->out.needed);
27524 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27525 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27528 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27530 return NDR_ERR_SUCCESS;
27533 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
27535 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
27537 if (flags & NDR_SET_VALUES) {
27538 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27540 if (flags & NDR_IN) {
27541 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
27543 ndr_print_ptr(ndr, "handle", r->in.handle);
27545 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27547 ndr_print_string(ndr, "key_name", r->in.key_name);
27548 ndr_print_uint32(ndr, "offered", r->in.offered);
27551 if (flags & NDR_OUT) {
27552 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
27554 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
27556 ndr_print_ptr(ndr, "key_buffer", *r->out.key_buffer);
27558 if (*r->out.key_buffer) {
27559 ndr_print_string_array(ndr, "key_buffer", *r->out.key_buffer);
27563 ndr_print_ptr(ndr, "needed", r->out.needed);
27565 ndr_print_uint32(ndr, "needed", *r->out.needed);
27567 ndr_print_WERROR(ndr, "result", r->out.result);
27573 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
27575 if (flags & NDR_IN) {
27576 if (r->in.handle == NULL) {
27577 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27579 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27583 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));
27584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27587 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));
27589 if (flags & NDR_OUT) {
27590 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27592 return NDR_ERR_SUCCESS;
27595 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27597 TALLOC_CTX *_mem_save_handle_0;
27598 if (flags & NDR_IN) {
27599 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27600 NDR_PULL_ALLOC(ndr, r->in.handle);
27602 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27603 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27604 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27606 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27607 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27608 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27609 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));
27611 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27612 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));
27613 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27614 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27615 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27616 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));
27618 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27619 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));
27621 if (flags & NDR_OUT) {
27622 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27624 return NDR_ERR_SUCCESS;
27627 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
27629 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
27631 if (flags & NDR_SET_VALUES) {
27632 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27634 if (flags & NDR_IN) {
27635 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
27637 ndr_print_ptr(ndr, "handle", r->in.handle);
27639 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27641 ndr_print_string(ndr, "key_name", r->in.key_name);
27642 ndr_print_string(ndr, "value_name", r->in.value_name);
27645 if (flags & NDR_OUT) {
27646 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
27648 ndr_print_WERROR(ndr, "result", r->out.result);
27654 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
27656 if (flags & NDR_IN) {
27657 if (r->in.handle == NULL) {
27658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27660 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27664 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));
27666 if (flags & NDR_OUT) {
27667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27669 return NDR_ERR_SUCCESS;
27672 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
27674 TALLOC_CTX *_mem_save_handle_0;
27675 if (flags & NDR_IN) {
27676 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27677 NDR_PULL_ALLOC(ndr, r->in.handle);
27679 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27680 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27681 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27683 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27684 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27685 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27686 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));
27688 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27689 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));
27691 if (flags & NDR_OUT) {
27692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27694 return NDR_ERR_SUCCESS;
27697 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
27699 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
27701 if (flags & NDR_SET_VALUES) {
27702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27704 if (flags & NDR_IN) {
27705 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
27707 ndr_print_ptr(ndr, "handle", r->in.handle);
27709 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27711 ndr_print_string(ndr, "key_name", r->in.key_name);
27714 if (flags & NDR_OUT) {
27715 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
27717 ndr_print_WERROR(ndr, "result", r->out.result);
27723 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
27725 if (flags & NDR_IN) {
27727 if (flags & NDR_OUT) {
27728 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27730 return NDR_ERR_SUCCESS;
27733 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
27735 if (flags & NDR_IN) {
27737 if (flags & NDR_OUT) {
27738 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27740 return NDR_ERR_SUCCESS;
27743 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
27745 ndr_print_struct(ndr, name, "spoolss_53");
27747 if (flags & NDR_SET_VALUES) {
27748 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27750 if (flags & NDR_IN) {
27751 ndr_print_struct(ndr, "in", "spoolss_53");
27755 if (flags & NDR_OUT) {
27756 ndr_print_struct(ndr, "out", "spoolss_53");
27758 ndr_print_WERROR(ndr, "result", r->out.result);
27764 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27766 if (flags & NDR_IN) {
27767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27768 if (r->in.server) {
27769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27772 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27777 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27781 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27782 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
27783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
27785 if (flags & NDR_OUT) {
27786 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27788 return NDR_ERR_SUCCESS;
27791 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
27793 uint32_t _ptr_server;
27794 TALLOC_CTX *_mem_save_server_0;
27795 if (flags & NDR_IN) {
27796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27798 NDR_PULL_ALLOC(ndr, r->in.server);
27800 r->in.server = NULL;
27802 if (r->in.server) {
27803 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27804 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27805 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27806 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27807 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27808 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));
27810 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27811 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27814 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
27815 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
27816 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
27817 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));
27819 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
27820 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
27821 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
27822 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
27823 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
27824 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));
27826 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
27827 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
27828 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
27829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
27831 if (flags & NDR_OUT) {
27832 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27834 return NDR_ERR_SUCCESS;
27837 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27839 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
27841 if (flags & NDR_SET_VALUES) {
27842 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27844 if (flags & NDR_IN) {
27845 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
27847 ndr_print_ptr(ndr, "server", r->in.server);
27849 if (r->in.server) {
27850 ndr_print_string(ndr, "server", r->in.server);
27853 ndr_print_string(ndr, "architecture", r->in.architecture);
27854 ndr_print_string(ndr, "driver", r->in.driver);
27855 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
27856 ndr_print_uint32(ndr, "version", r->in.version);
27859 if (flags & NDR_OUT) {
27860 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
27862 ndr_print_WERROR(ndr, "result", r->out.result);
27868 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
27870 if (flags & NDR_IN) {
27872 if (flags & NDR_OUT) {
27873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27875 return NDR_ERR_SUCCESS;
27878 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
27880 if (flags & NDR_IN) {
27882 if (flags & NDR_OUT) {
27883 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27885 return NDR_ERR_SUCCESS;
27888 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
27890 ndr_print_struct(ndr, name, "spoolss_55");
27892 if (flags & NDR_SET_VALUES) {
27893 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27895 if (flags & NDR_IN) {
27896 ndr_print_struct(ndr, "in", "spoolss_55");
27900 if (flags & NDR_OUT) {
27901 ndr_print_struct(ndr, "out", "spoolss_55");
27903 ndr_print_WERROR(ndr, "result", r->out.result);
27909 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
27911 if (flags & NDR_IN) {
27913 if (flags & NDR_OUT) {
27914 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27916 return NDR_ERR_SUCCESS;
27919 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
27921 if (flags & NDR_IN) {
27923 if (flags & NDR_OUT) {
27924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27926 return NDR_ERR_SUCCESS;
27929 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
27931 ndr_print_struct(ndr, name, "spoolss_56");
27933 if (flags & NDR_SET_VALUES) {
27934 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27936 if (flags & NDR_IN) {
27937 ndr_print_struct(ndr, "in", "spoolss_56");
27941 if (flags & NDR_OUT) {
27942 ndr_print_struct(ndr, "out", "spoolss_56");
27944 ndr_print_WERROR(ndr, "result", r->out.result);
27950 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
27952 if (flags & NDR_IN) {
27954 if (flags & NDR_OUT) {
27955 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27957 return NDR_ERR_SUCCESS;
27960 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
27962 if (flags & NDR_IN) {
27964 if (flags & NDR_OUT) {
27965 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27967 return NDR_ERR_SUCCESS;
27970 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
27972 ndr_print_struct(ndr, name, "spoolss_57");
27974 if (flags & NDR_SET_VALUES) {
27975 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27977 if (flags & NDR_IN) {
27978 ndr_print_struct(ndr, "in", "spoolss_57");
27982 if (flags & NDR_OUT) {
27983 ndr_print_struct(ndr, "out", "spoolss_57");
27985 ndr_print_WERROR(ndr, "result", r->out.result);
27991 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
27993 if (flags & NDR_IN) {
27994 if (r->in.handle == NULL) {
27995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27997 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
28000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28001 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));
28002 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28005 if (r->in.status_code == NULL) {
28006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28010 if (flags & NDR_OUT) {
28011 if (r->out.out_data == NULL) {
28012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28015 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28016 if (r->out.needed == NULL) {
28017 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28020 if (r->out.status_code == NULL) {
28021 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28024 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28026 return NDR_ERR_SUCCESS;
28029 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28031 TALLOC_CTX *_mem_save_handle_0;
28032 TALLOC_CTX *_mem_save_needed_0;
28033 TALLOC_CTX *_mem_save_status_code_0;
28034 if (flags & NDR_IN) {
28035 ZERO_STRUCT(r->out);
28037 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28038 NDR_PULL_ALLOC(ndr, r->in.handle);
28040 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28041 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28042 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28044 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28045 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28046 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28047 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));
28049 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28050 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));
28051 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28053 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28054 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28055 NDR_PULL_ALLOC(ndr, r->in.status_code);
28057 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28058 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28061 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28062 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28063 NDR_PULL_ALLOC(ndr, r->out.needed);
28064 ZERO_STRUCTP(r->out.needed);
28065 NDR_PULL_ALLOC(ndr, r->out.status_code);
28066 *r->out.status_code = *r->in.status_code;
28068 if (flags & NDR_OUT) {
28069 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28070 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28071 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28073 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28075 NDR_PULL_ALLOC(ndr, r->out.needed);
28077 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28078 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28081 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28082 NDR_PULL_ALLOC(ndr, r->out.status_code);
28084 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28085 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28089 if (r->out.out_data) {
28090 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28093 return NDR_ERR_SUCCESS;
28096 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28098 ndr_print_struct(ndr, name, "spoolss_XcvData");
28100 if (flags & NDR_SET_VALUES) {
28101 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28103 if (flags & NDR_IN) {
28104 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28106 ndr_print_ptr(ndr, "handle", r->in.handle);
28108 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28110 ndr_print_string(ndr, "function_name", r->in.function_name);
28111 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28112 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28113 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28114 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28116 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28120 if (flags & NDR_OUT) {
28121 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28123 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28125 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28127 ndr_print_ptr(ndr, "needed", r->out.needed);
28129 ndr_print_uint32(ndr, "needed", *r->out.needed);
28131 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28133 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28135 ndr_print_WERROR(ndr, "result", r->out.result);
28141 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28143 if (flags & NDR_IN) {
28144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28145 if (r->in.servername) {
28146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
28148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28149 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28151 if (r->in.info_ctr == NULL) {
28152 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28154 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28155 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28157 if (flags & NDR_OUT) {
28158 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28160 return NDR_ERR_SUCCESS;
28163 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28165 uint32_t _ptr_servername;
28166 TALLOC_CTX *_mem_save_servername_0;
28167 TALLOC_CTX *_mem_save_info_ctr_0;
28168 if (flags & NDR_IN) {
28169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28170 if (_ptr_servername) {
28171 NDR_PULL_ALLOC(ndr, r->in.servername);
28173 r->in.servername = NULL;
28175 if (r->in.servername) {
28176 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28177 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28178 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28179 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28180 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28181 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));
28183 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28184 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28188 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28190 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28191 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28192 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28194 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28196 if (flags & NDR_OUT) {
28197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28199 return NDR_ERR_SUCCESS;
28202 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28204 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28206 if (flags & NDR_SET_VALUES) {
28207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28209 if (flags & NDR_IN) {
28210 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28212 ndr_print_ptr(ndr, "servername", r->in.servername);
28214 if (r->in.servername) {
28215 ndr_print_string(ndr, "servername", r->in.servername);
28218 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28220 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28222 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28225 if (flags & NDR_OUT) {
28226 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28228 ndr_print_WERROR(ndr, "result", r->out.result);
28234 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28236 if (flags & NDR_IN) {
28238 if (flags & NDR_OUT) {
28239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28241 return NDR_ERR_SUCCESS;
28244 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28246 if (flags & NDR_IN) {
28248 if (flags & NDR_OUT) {
28249 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28251 return NDR_ERR_SUCCESS;
28254 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28256 ndr_print_struct(ndr, name, "spoolss_5a");
28258 if (flags & NDR_SET_VALUES) {
28259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28261 if (flags & NDR_IN) {
28262 ndr_print_struct(ndr, "in", "spoolss_5a");
28266 if (flags & NDR_OUT) {
28267 ndr_print_struct(ndr, "out", "spoolss_5a");
28269 ndr_print_WERROR(ndr, "result", r->out.result);
28275 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28277 if (flags & NDR_IN) {
28279 if (flags & NDR_OUT) {
28280 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28282 return NDR_ERR_SUCCESS;
28285 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28287 if (flags & NDR_IN) {
28289 if (flags & NDR_OUT) {
28290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28292 return NDR_ERR_SUCCESS;
28295 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28297 ndr_print_struct(ndr, name, "spoolss_5b");
28299 if (flags & NDR_SET_VALUES) {
28300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28302 if (flags & NDR_IN) {
28303 ndr_print_struct(ndr, "in", "spoolss_5b");
28307 if (flags & NDR_OUT) {
28308 ndr_print_struct(ndr, "out", "spoolss_5b");
28310 ndr_print_WERROR(ndr, "result", r->out.result);
28316 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28318 if (flags & NDR_IN) {
28320 if (flags & NDR_OUT) {
28321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28323 return NDR_ERR_SUCCESS;
28326 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28328 if (flags & NDR_IN) {
28330 if (flags & NDR_OUT) {
28331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28333 return NDR_ERR_SUCCESS;
28336 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28338 ndr_print_struct(ndr, name, "spoolss_5c");
28340 if (flags & NDR_SET_VALUES) {
28341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28343 if (flags & NDR_IN) {
28344 ndr_print_struct(ndr, "in", "spoolss_5c");
28348 if (flags & NDR_OUT) {
28349 ndr_print_struct(ndr, "out", "spoolss_5c");
28351 ndr_print_WERROR(ndr, "result", r->out.result);
28357 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28359 if (flags & NDR_IN) {
28361 if (flags & NDR_OUT) {
28362 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28364 return NDR_ERR_SUCCESS;
28367 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
28369 if (flags & NDR_IN) {
28371 if (flags & NDR_OUT) {
28372 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28374 return NDR_ERR_SUCCESS;
28377 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
28379 ndr_print_struct(ndr, name, "spoolss_5d");
28381 if (flags & NDR_SET_VALUES) {
28382 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28384 if (flags & NDR_IN) {
28385 ndr_print_struct(ndr, "in", "spoolss_5d");
28389 if (flags & NDR_OUT) {
28390 ndr_print_struct(ndr, "out", "spoolss_5d");
28392 ndr_print_WERROR(ndr, "result", r->out.result);
28398 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
28400 if (flags & NDR_IN) {
28402 if (flags & NDR_OUT) {
28403 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28405 return NDR_ERR_SUCCESS;
28408 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
28410 if (flags & NDR_IN) {
28412 if (flags & NDR_OUT) {
28413 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28415 return NDR_ERR_SUCCESS;
28418 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
28420 ndr_print_struct(ndr, name, "spoolss_5e");
28422 if (flags & NDR_SET_VALUES) {
28423 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28425 if (flags & NDR_IN) {
28426 ndr_print_struct(ndr, "in", "spoolss_5e");
28430 if (flags & NDR_OUT) {
28431 ndr_print_struct(ndr, "out", "spoolss_5e");
28433 ndr_print_WERROR(ndr, "result", r->out.result);
28439 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
28441 if (flags & NDR_IN) {
28443 if (flags & NDR_OUT) {
28444 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28446 return NDR_ERR_SUCCESS;
28449 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
28451 if (flags & NDR_IN) {
28453 if (flags & NDR_OUT) {
28454 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28456 return NDR_ERR_SUCCESS;
28459 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
28461 ndr_print_struct(ndr, name, "spoolss_5f");
28463 if (flags & NDR_SET_VALUES) {
28464 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28466 if (flags & NDR_IN) {
28467 ndr_print_struct(ndr, "in", "spoolss_5f");
28471 if (flags & NDR_OUT) {
28472 ndr_print_struct(ndr, "out", "spoolss_5f");
28474 ndr_print_WERROR(ndr, "result", r->out.result);
28480 static const struct ndr_interface_call spoolss_calls[] = {
28482 "spoolss_EnumPrinters",
28483 sizeof(struct spoolss_EnumPrinters),
28484 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
28485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
28486 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
28490 "spoolss_OpenPrinter",
28491 sizeof(struct spoolss_OpenPrinter),
28492 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
28493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
28494 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
28499 sizeof(struct spoolss_SetJob),
28500 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
28501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
28502 (ndr_print_function_t) ndr_print_spoolss_SetJob,
28507 sizeof(struct spoolss_GetJob),
28508 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
28509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
28510 (ndr_print_function_t) ndr_print_spoolss_GetJob,
28514 "spoolss_EnumJobs",
28515 sizeof(struct spoolss_EnumJobs),
28516 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
28517 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
28518 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
28522 "spoolss_AddPrinter",
28523 sizeof(struct spoolss_AddPrinter),
28524 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
28525 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
28526 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
28530 "spoolss_DeletePrinter",
28531 sizeof(struct spoolss_DeletePrinter),
28532 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
28533 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
28534 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
28538 "spoolss_SetPrinter",
28539 sizeof(struct spoolss_SetPrinter),
28540 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
28541 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
28542 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
28546 "spoolss_GetPrinter",
28547 sizeof(struct spoolss_GetPrinter),
28548 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
28549 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
28550 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
28554 "spoolss_AddPrinterDriver",
28555 sizeof(struct spoolss_AddPrinterDriver),
28556 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
28557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
28558 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
28562 "spoolss_EnumPrinterDrivers",
28563 sizeof(struct spoolss_EnumPrinterDrivers),
28564 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
28565 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
28566 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
28570 "spoolss_GetPrinterDriver",
28571 sizeof(struct spoolss_GetPrinterDriver),
28572 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
28573 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
28574 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
28578 "spoolss_GetPrinterDriverDirectory",
28579 sizeof(struct spoolss_GetPrinterDriverDirectory),
28580 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
28581 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
28582 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
28586 "spoolss_DeletePrinterDriver",
28587 sizeof(struct spoolss_DeletePrinterDriver),
28588 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
28589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
28590 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
28594 "spoolss_AddPrintProcessor",
28595 sizeof(struct spoolss_AddPrintProcessor),
28596 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
28597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
28598 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
28602 "spoolss_EnumPrintProcessors",
28603 sizeof(struct spoolss_EnumPrintProcessors),
28604 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
28605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
28606 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
28610 "spoolss_GetPrintProcessorDirectory",
28611 sizeof(struct spoolss_GetPrintProcessorDirectory),
28612 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
28613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
28614 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
28618 "spoolss_StartDocPrinter",
28619 sizeof(struct spoolss_StartDocPrinter),
28620 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
28621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
28622 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
28626 "spoolss_StartPagePrinter",
28627 sizeof(struct spoolss_StartPagePrinter),
28628 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
28629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
28630 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
28634 "spoolss_WritePrinter",
28635 sizeof(struct spoolss_WritePrinter),
28636 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
28637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
28638 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
28642 "spoolss_EndPagePrinter",
28643 sizeof(struct spoolss_EndPagePrinter),
28644 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
28645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
28646 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
28650 "spoolss_AbortPrinter",
28651 sizeof(struct spoolss_AbortPrinter),
28652 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
28653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
28654 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
28658 "spoolss_ReadPrinter",
28659 sizeof(struct spoolss_ReadPrinter),
28660 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
28661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
28662 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
28666 "spoolss_EndDocPrinter",
28667 sizeof(struct spoolss_EndDocPrinter),
28668 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
28669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
28670 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
28675 sizeof(struct spoolss_AddJob),
28676 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
28677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
28678 (ndr_print_function_t) ndr_print_spoolss_AddJob,
28682 "spoolss_ScheduleJob",
28683 sizeof(struct spoolss_ScheduleJob),
28684 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
28685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
28686 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
28690 "spoolss_GetPrinterData",
28691 sizeof(struct spoolss_GetPrinterData),
28692 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
28693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
28694 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
28698 "spoolss_SetPrinterData",
28699 sizeof(struct spoolss_SetPrinterData),
28700 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
28701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
28702 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
28706 "spoolss_WaitForPrinterChange",
28707 sizeof(struct spoolss_WaitForPrinterChange),
28708 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
28709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
28710 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
28714 "spoolss_ClosePrinter",
28715 sizeof(struct spoolss_ClosePrinter),
28716 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
28717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
28718 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
28723 sizeof(struct spoolss_AddForm),
28724 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
28725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
28726 (ndr_print_function_t) ndr_print_spoolss_AddForm,
28730 "spoolss_DeleteForm",
28731 sizeof(struct spoolss_DeleteForm),
28732 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
28733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
28734 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
28739 sizeof(struct spoolss_GetForm),
28740 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
28741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
28742 (ndr_print_function_t) ndr_print_spoolss_GetForm,
28747 sizeof(struct spoolss_SetForm),
28748 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
28749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
28750 (ndr_print_function_t) ndr_print_spoolss_SetForm,
28754 "spoolss_EnumForms",
28755 sizeof(struct spoolss_EnumForms),
28756 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
28757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
28758 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
28762 "spoolss_EnumPorts",
28763 sizeof(struct spoolss_EnumPorts),
28764 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
28765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
28766 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
28770 "spoolss_EnumMonitors",
28771 sizeof(struct spoolss_EnumMonitors),
28772 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
28773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
28774 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
28779 sizeof(struct spoolss_AddPort),
28780 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
28781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
28782 (ndr_print_function_t) ndr_print_spoolss_AddPort,
28786 "spoolss_ConfigurePort",
28787 sizeof(struct spoolss_ConfigurePort),
28788 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
28789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
28790 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
28794 "spoolss_DeletePort",
28795 sizeof(struct spoolss_DeletePort),
28796 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
28797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
28798 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
28802 "spoolss_CreatePrinterIC",
28803 sizeof(struct spoolss_CreatePrinterIC),
28804 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
28805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
28806 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
28810 "spoolss_PlayGDIScriptOnPrinterIC",
28811 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
28812 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
28813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
28814 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
28818 "spoolss_DeletePrinterIC",
28819 sizeof(struct spoolss_DeletePrinterIC),
28820 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
28821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
28822 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
28826 "spoolss_AddPrinterConnection",
28827 sizeof(struct spoolss_AddPrinterConnection),
28828 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
28829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
28830 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
28834 "spoolss_DeletePrinterConnection",
28835 sizeof(struct spoolss_DeletePrinterConnection),
28836 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
28837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
28838 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
28842 "spoolss_PrinterMessageBox",
28843 sizeof(struct spoolss_PrinterMessageBox),
28844 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
28845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
28846 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
28850 "spoolss_AddMonitor",
28851 sizeof(struct spoolss_AddMonitor),
28852 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
28853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
28854 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
28858 "spoolss_DeleteMonitor",
28859 sizeof(struct spoolss_DeleteMonitor),
28860 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
28861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
28862 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
28866 "spoolss_DeletePrintProcessor",
28867 sizeof(struct spoolss_DeletePrintProcessor),
28868 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
28869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
28870 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
28874 "spoolss_AddPrintProvidor",
28875 sizeof(struct spoolss_AddPrintProvidor),
28876 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
28877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
28878 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
28882 "spoolss_DeletePrintProvidor",
28883 sizeof(struct spoolss_DeletePrintProvidor),
28884 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
28885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
28886 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
28890 "spoolss_EnumPrintProcDataTypes",
28891 sizeof(struct spoolss_EnumPrintProcDataTypes),
28892 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
28893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
28894 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
28898 "spoolss_ResetPrinter",
28899 sizeof(struct spoolss_ResetPrinter),
28900 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
28901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
28902 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
28906 "spoolss_GetPrinterDriver2",
28907 sizeof(struct spoolss_GetPrinterDriver2),
28908 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
28909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
28910 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
28914 "spoolss_FindFirstPrinterChangeNotification",
28915 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
28916 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
28917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
28918 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
28922 "spoolss_FindNextPrinterChangeNotification",
28923 sizeof(struct spoolss_FindNextPrinterChangeNotification),
28924 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
28925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
28926 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
28930 "spoolss_FindClosePrinterNotify",
28931 sizeof(struct spoolss_FindClosePrinterNotify),
28932 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
28933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
28934 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
28938 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
28939 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
28940 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28942 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28946 "spoolss_ReplyOpenPrinter",
28947 sizeof(struct spoolss_ReplyOpenPrinter),
28948 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
28949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
28950 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
28954 "spoolss_RouterReplyPrinter",
28955 sizeof(struct spoolss_RouterReplyPrinter),
28956 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
28957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
28958 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
28962 "spoolss_ReplyClosePrinter",
28963 sizeof(struct spoolss_ReplyClosePrinter),
28964 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
28965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
28966 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
28970 "spoolss_AddPortEx",
28971 sizeof(struct spoolss_AddPortEx),
28972 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
28973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
28974 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
28978 "spoolss_RouterFindFirstPrinterChangeNotification",
28979 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
28980 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
28981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
28982 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
28986 "spoolss_SpoolerInit",
28987 sizeof(struct spoolss_SpoolerInit),
28988 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
28989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
28990 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
28994 "spoolss_ResetPrinterEx",
28995 sizeof(struct spoolss_ResetPrinterEx),
28996 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
28997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
28998 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
29002 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
29003 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
29004 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
29005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
29006 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
29010 "spoolss_RouterReplyPrinterEx",
29011 sizeof(struct spoolss_RouterReplyPrinterEx),
29012 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
29013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
29014 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
29018 "spoolss_RouterRefreshPrinterChangeNotify",
29019 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
29020 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
29021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
29022 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
29027 sizeof(struct spoolss_44),
29028 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
29029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
29030 (ndr_print_function_t) ndr_print_spoolss_44,
29034 "spoolss_OpenPrinterEx",
29035 sizeof(struct spoolss_OpenPrinterEx),
29036 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
29037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
29038 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
29042 "spoolss_AddPrinterEx",
29043 sizeof(struct spoolss_AddPrinterEx),
29044 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
29045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
29046 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
29051 sizeof(struct spoolss_47),
29052 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
29053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
29054 (ndr_print_function_t) ndr_print_spoolss_47,
29058 "spoolss_EnumPrinterData",
29059 sizeof(struct spoolss_EnumPrinterData),
29060 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
29061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
29062 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
29066 "spoolss_DeletePrinterData",
29067 sizeof(struct spoolss_DeletePrinterData),
29068 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
29069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
29070 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
29075 sizeof(struct spoolss_4a),
29076 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
29077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
29078 (ndr_print_function_t) ndr_print_spoolss_4a,
29083 sizeof(struct spoolss_4b),
29084 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
29085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
29086 (ndr_print_function_t) ndr_print_spoolss_4b,
29091 sizeof(struct spoolss_4c),
29092 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
29093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
29094 (ndr_print_function_t) ndr_print_spoolss_4c,
29098 "spoolss_SetPrinterDataEx",
29099 sizeof(struct spoolss_SetPrinterDataEx),
29100 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
29101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
29102 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
29106 "spoolss_GetPrinterDataEx",
29107 sizeof(struct spoolss_GetPrinterDataEx),
29108 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
29109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
29110 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
29114 "spoolss_EnumPrinterDataEx",
29115 sizeof(struct spoolss_EnumPrinterDataEx),
29116 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
29117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
29118 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
29122 "spoolss_EnumPrinterKey",
29123 sizeof(struct spoolss_EnumPrinterKey),
29124 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
29125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
29126 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
29130 "spoolss_DeletePrinterDataEx",
29131 sizeof(struct spoolss_DeletePrinterDataEx),
29132 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
29133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
29134 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
29138 "spoolss_DeletePrinterKey",
29139 sizeof(struct spoolss_DeletePrinterKey),
29140 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
29141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
29142 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
29147 sizeof(struct spoolss_53),
29148 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
29149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
29150 (ndr_print_function_t) ndr_print_spoolss_53,
29154 "spoolss_DeletePrinterDriverEx",
29155 sizeof(struct spoolss_DeletePrinterDriverEx),
29156 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
29157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
29158 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
29163 sizeof(struct spoolss_55),
29164 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
29165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
29166 (ndr_print_function_t) ndr_print_spoolss_55,
29171 sizeof(struct spoolss_56),
29172 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
29173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
29174 (ndr_print_function_t) ndr_print_spoolss_56,
29179 sizeof(struct spoolss_57),
29180 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
29181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
29182 (ndr_print_function_t) ndr_print_spoolss_57,
29187 sizeof(struct spoolss_XcvData),
29188 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
29189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
29190 (ndr_print_function_t) ndr_print_spoolss_XcvData,
29194 "spoolss_AddPrinterDriverEx",
29195 sizeof(struct spoolss_AddPrinterDriverEx),
29196 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
29197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
29198 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
29203 sizeof(struct spoolss_5a),
29204 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
29205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
29206 (ndr_print_function_t) ndr_print_spoolss_5a,
29211 sizeof(struct spoolss_5b),
29212 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
29213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
29214 (ndr_print_function_t) ndr_print_spoolss_5b,
29219 sizeof(struct spoolss_5c),
29220 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
29221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
29222 (ndr_print_function_t) ndr_print_spoolss_5c,
29227 sizeof(struct spoolss_5d),
29228 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
29229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
29230 (ndr_print_function_t) ndr_print_spoolss_5d,
29235 sizeof(struct spoolss_5e),
29236 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
29237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
29238 (ndr_print_function_t) ndr_print_spoolss_5e,
29243 sizeof(struct spoolss_5f),
29244 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
29245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
29246 (ndr_print_function_t) ndr_print_spoolss_5f,
29249 { NULL, 0, NULL, NULL, NULL, false }
29252 static const char * const spoolss_endpoint_strings[] = {
29253 "ncacn_np:[\\pipe\\spoolss]",
29256 static const struct ndr_interface_string_array spoolss_endpoints = {
29258 .names = spoolss_endpoint_strings
29261 static const char * const spoolss_authservice_strings[] = {
29265 static const struct ndr_interface_string_array spoolss_authservices = {
29267 .names = spoolss_authservice_strings
29271 const struct ndr_interface_table ndr_table_spoolss = {
29274 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
29275 NDR_SPOOLSS_VERSION
29277 .helpstring = NDR_SPOOLSS_HELPSTRING,
29279 .calls = spoolss_calls,
29280 .endpoints = &spoolss_endpoints,
29281 .authservices = &spoolss_authservices