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 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
571 if (ndr_flags & NDR_SCALARS) {
572 NDR_CHECK(ndr_push_align(ndr, 4));
573 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
574 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
575 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
578 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
580 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
587 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
589 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
590 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
591 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
592 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
593 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
608 uint32_t _flags_save_DATA_BLOB = ndr->flags;
609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
611 struct ndr_push *_ndr_driverextra_data;
612 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
613 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
614 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
616 ndr->flags = _flags_save_DATA_BLOB;
619 if (ndr_flags & NDR_BUFFERS) {
621 return NDR_ERR_SUCCESS;
624 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
626 if (ndr_flags & NDR_SCALARS) {
627 NDR_CHECK(ndr_pull_align(ndr, 4));
628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
629 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
630 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
633 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
635 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
644 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
663 uint32_t _flags_save_DATA_BLOB = ndr->flags;
664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
666 struct ndr_pull *_ndr_driverextra_data;
667 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
668 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
669 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
671 ndr->flags = _flags_save_DATA_BLOB;
674 if (ndr_flags & NDR_BUFFERS) {
676 return NDR_ERR_SUCCESS;
679 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
681 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
683 ndr_print_string(ndr, "devicename", r->devicename);
684 ndr_print_uint16(ndr, "specversion", r->specversion);
685 ndr_print_uint16(ndr, "driverversion", r->driverversion);
686 ndr_print_uint16(ndr, "size", r->size);
687 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
688 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
689 ndr_print_uint16(ndr, "orientation", r->orientation);
690 ndr_print_uint16(ndr, "papersize", r->papersize);
691 ndr_print_uint16(ndr, "paperlength", r->paperlength);
692 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
693 ndr_print_uint16(ndr, "scale", r->scale);
694 ndr_print_uint16(ndr, "copies", r->copies);
695 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
696 ndr_print_uint16(ndr, "printquality", r->printquality);
697 ndr_print_uint16(ndr, "color", r->color);
698 ndr_print_uint16(ndr, "duplex", r->duplex);
699 ndr_print_uint16(ndr, "yresolution", r->yresolution);
700 ndr_print_uint16(ndr, "ttoption", r->ttoption);
701 ndr_print_uint16(ndr, "collate", r->collate);
702 ndr_print_string(ndr, "formname", r->formname);
703 ndr_print_uint16(ndr, "logpixels", r->logpixels);
704 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
705 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
706 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
707 ndr_print_uint32(ndr, "displayflags", r->displayflags);
708 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
709 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
710 ndr_print_uint32(ndr, "icmintent", r->icmintent);
711 ndr_print_uint32(ndr, "mediatype", r->mediatype);
712 ndr_print_uint32(ndr, "dithertype", r->dithertype);
713 ndr_print_uint32(ndr, "reserved1", r->reserved1);
714 ndr_print_uint32(ndr, "reserved2", r->reserved2);
715 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
716 ndr_print_uint32(ndr, "panningheight", r->panningheight);
717 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
721 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
723 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
726 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
729 return NDR_ERR_SUCCESS;
732 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
737 return NDR_ERR_SUCCESS;
740 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
742 ndr_print_uint32(ndr, name, r);
744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
768 if (ndr_flags & NDR_SCALARS) {
769 NDR_CHECK(ndr_push_align(ndr, 4));
770 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
772 uint32_t _flags_save_string = ndr->flags;
773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
774 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
775 ndr->flags = _flags_save_string;
778 uint32_t _flags_save_string = ndr->flags;
779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
780 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
781 ndr->flags = _flags_save_string;
784 uint32_t _flags_save_string = ndr->flags;
785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
786 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
787 ndr->flags = _flags_save_string;
790 if (ndr_flags & NDR_BUFFERS) {
792 uint32_t _flags_save_string = ndr->flags;
793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
798 ndr->flags = _flags_save_string;
801 uint32_t _flags_save_string = ndr->flags;
802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
803 if (r->description) {
804 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
807 ndr->flags = _flags_save_string;
810 uint32_t _flags_save_string = ndr->flags;
811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
813 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
816 ndr->flags = _flags_save_string;
819 return NDR_ERR_SUCCESS;
822 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
825 TALLOC_CTX *_mem_save_name_0;
826 uint32_t _ptr_description;
827 TALLOC_CTX *_mem_save_description_0;
828 uint32_t _ptr_comment;
829 TALLOC_CTX *_mem_save_comment_0;
830 if (ndr_flags & NDR_SCALARS) {
831 NDR_CHECK(ndr_pull_align(ndr, 4));
832 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
834 uint32_t _flags_save_string = ndr->flags;
835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
838 NDR_PULL_ALLOC(ndr, r->name);
839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
843 ndr->flags = _flags_save_string;
846 uint32_t _flags_save_string = ndr->flags;
847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
849 if (_ptr_description) {
850 NDR_PULL_ALLOC(ndr, r->description);
851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
853 r->description = NULL;
855 ndr->flags = _flags_save_string;
858 uint32_t _flags_save_string = ndr->flags;
859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
862 NDR_PULL_ALLOC(ndr, r->comment);
863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
867 ndr->flags = _flags_save_string;
870 if (ndr_flags & NDR_BUFFERS) {
872 uint32_t _flags_save_string = ndr->flags;
873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
875 uint32_t _relative_save_offset;
876 _relative_save_offset = ndr->offset;
877 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
878 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
879 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
880 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
882 ndr->offset = _relative_save_offset;
884 ndr->flags = _flags_save_string;
887 uint32_t _flags_save_string = ndr->flags;
888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
889 if (r->description) {
890 uint32_t _relative_save_offset;
891 _relative_save_offset = ndr->offset;
892 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
893 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
894 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
895 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
897 ndr->offset = _relative_save_offset;
899 ndr->flags = _flags_save_string;
902 uint32_t _flags_save_string = ndr->flags;
903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
905 uint32_t _relative_save_offset;
906 _relative_save_offset = ndr->offset;
907 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
908 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
909 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
910 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
912 ndr->offset = _relative_save_offset;
914 ndr->flags = _flags_save_string;
917 return NDR_ERR_SUCCESS;
920 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
922 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
924 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
925 ndr_print_ptr(ndr, "name", r->name);
928 ndr_print_string(ndr, "name", r->name);
931 ndr_print_ptr(ndr, "description", r->description);
933 if (r->description) {
934 ndr_print_string(ndr, "description", r->description);
937 ndr_print_ptr(ndr, "comment", r->comment);
940 ndr_print_string(ndr, "comment", r->comment);
946 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
948 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
951 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
954 return NDR_ERR_SUCCESS;
957 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
962 return NDR_ERR_SUCCESS;
965 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
967 ndr_print_uint32(ndr, name, r);
969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
977 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
988 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
990 if (ndr_flags & NDR_SCALARS) {
991 NDR_CHECK(ndr_push_align(ndr, 4));
993 uint32_t _flags_save_string = ndr->flags;
994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
995 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
996 ndr->flags = _flags_save_string;
999 uint32_t _flags_save_string = ndr->flags;
1000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1001 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1002 ndr->flags = _flags_save_string;
1005 uint32_t _flags_save_string = ndr->flags;
1006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1007 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1008 ndr->flags = _flags_save_string;
1011 uint32_t _flags_save_string = ndr->flags;
1012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1013 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1014 ndr->flags = _flags_save_string;
1017 uint32_t _flags_save_string = ndr->flags;
1018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1019 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1020 ndr->flags = _flags_save_string;
1023 uint32_t _flags_save_string = ndr->flags;
1024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1025 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1026 ndr->flags = _flags_save_string;
1029 uint32_t _flags_save_string = ndr->flags;
1030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1031 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1032 ndr->flags = _flags_save_string;
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1039 ndr->flags = _flags_save_string;
1042 uint32_t _flags_save_string = ndr->flags;
1043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1045 ndr->flags = _flags_save_string;
1048 uint32_t _flags_save_string = ndr->flags;
1049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1057 ndr->flags = _flags_save_string;
1059 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1060 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1065 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1069 if (ndr_flags & NDR_BUFFERS) {
1071 uint32_t _flags_save_string = ndr->flags;
1072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1073 if (r->servername) {
1074 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1075 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1077 ndr->flags = _flags_save_string;
1080 uint32_t _flags_save_string = ndr->flags;
1081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1082 if (r->printername) {
1083 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1086 ndr->flags = _flags_save_string;
1089 uint32_t _flags_save_string = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1095 ndr->flags = _flags_save_string;
1098 uint32_t _flags_save_string = ndr->flags;
1099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1101 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1104 ndr->flags = _flags_save_string;
1107 uint32_t _flags_save_string = ndr->flags;
1108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1109 if (r->drivername) {
1110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1113 ndr->flags = _flags_save_string;
1116 uint32_t _flags_save_string = ndr->flags;
1117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1119 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1122 ndr->flags = _flags_save_string;
1125 uint32_t _flags_save_string = ndr->flags;
1126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1129 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1131 ndr->flags = _flags_save_string;
1134 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1136 struct ndr_push *_ndr_devmode;
1137 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1138 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1139 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1143 uint32_t _flags_save_string = ndr->flags;
1144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1146 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1149 ndr->flags = _flags_save_string;
1152 uint32_t _flags_save_string = ndr->flags;
1153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1154 if (r->printprocessor) {
1155 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1158 ndr->flags = _flags_save_string;
1161 uint32_t _flags_save_string = ndr->flags;
1162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1164 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1165 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1167 ndr->flags = _flags_save_string;
1170 uint32_t _flags_save_string = ndr->flags;
1171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1172 if (r->parameters) {
1173 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1176 ndr->flags = _flags_save_string;
1179 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1181 struct ndr_push *_ndr_secdesc;
1182 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1183 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1184 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1188 return NDR_ERR_SUCCESS;
1191 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1193 uint32_t _ptr_servername;
1194 TALLOC_CTX *_mem_save_servername_0;
1195 uint32_t _ptr_printername;
1196 TALLOC_CTX *_mem_save_printername_0;
1197 uint32_t _ptr_sharename;
1198 TALLOC_CTX *_mem_save_sharename_0;
1199 uint32_t _ptr_portname;
1200 TALLOC_CTX *_mem_save_portname_0;
1201 uint32_t _ptr_drivername;
1202 TALLOC_CTX *_mem_save_drivername_0;
1203 uint32_t _ptr_comment;
1204 TALLOC_CTX *_mem_save_comment_0;
1205 uint32_t _ptr_location;
1206 TALLOC_CTX *_mem_save_location_0;
1207 uint32_t _ptr_devmode;
1208 TALLOC_CTX *_mem_save_devmode_0;
1209 uint32_t _ptr_sepfile;
1210 TALLOC_CTX *_mem_save_sepfile_0;
1211 uint32_t _ptr_printprocessor;
1212 TALLOC_CTX *_mem_save_printprocessor_0;
1213 uint32_t _ptr_datatype;
1214 TALLOC_CTX *_mem_save_datatype_0;
1215 uint32_t _ptr_parameters;
1216 TALLOC_CTX *_mem_save_parameters_0;
1217 uint32_t _ptr_secdesc;
1218 TALLOC_CTX *_mem_save_secdesc_0;
1219 if (ndr_flags & NDR_SCALARS) {
1220 NDR_CHECK(ndr_pull_align(ndr, 4));
1222 uint32_t _flags_save_string = ndr->flags;
1223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1225 if (_ptr_servername) {
1226 NDR_PULL_ALLOC(ndr, r->servername);
1227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1229 r->servername = NULL;
1231 ndr->flags = _flags_save_string;
1234 uint32_t _flags_save_string = ndr->flags;
1235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1237 if (_ptr_printername) {
1238 NDR_PULL_ALLOC(ndr, r->printername);
1239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1241 r->printername = NULL;
1243 ndr->flags = _flags_save_string;
1246 uint32_t _flags_save_string = ndr->flags;
1247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1249 if (_ptr_sharename) {
1250 NDR_PULL_ALLOC(ndr, r->sharename);
1251 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1253 r->sharename = NULL;
1255 ndr->flags = _flags_save_string;
1258 uint32_t _flags_save_string = ndr->flags;
1259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1261 if (_ptr_portname) {
1262 NDR_PULL_ALLOC(ndr, r->portname);
1263 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1267 ndr->flags = _flags_save_string;
1270 uint32_t _flags_save_string = ndr->flags;
1271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1273 if (_ptr_drivername) {
1274 NDR_PULL_ALLOC(ndr, r->drivername);
1275 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1277 r->drivername = NULL;
1279 ndr->flags = _flags_save_string;
1282 uint32_t _flags_save_string = ndr->flags;
1283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1286 NDR_PULL_ALLOC(ndr, r->comment);
1287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1291 ndr->flags = _flags_save_string;
1294 uint32_t _flags_save_string = ndr->flags;
1295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1297 if (_ptr_location) {
1298 NDR_PULL_ALLOC(ndr, r->location);
1299 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1303 ndr->flags = _flags_save_string;
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1307 NDR_PULL_ALLOC(ndr, r->devmode);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1313 uint32_t _flags_save_string = ndr->flags;
1314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1317 NDR_PULL_ALLOC(ndr, r->sepfile);
1318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1328 if (_ptr_printprocessor) {
1329 NDR_PULL_ALLOC(ndr, r->printprocessor);
1330 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1332 r->printprocessor = NULL;
1334 ndr->flags = _flags_save_string;
1337 uint32_t _flags_save_string = ndr->flags;
1338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1340 if (_ptr_datatype) {
1341 NDR_PULL_ALLOC(ndr, r->datatype);
1342 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1346 ndr->flags = _flags_save_string;
1349 uint32_t _flags_save_string = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1352 if (_ptr_parameters) {
1353 NDR_PULL_ALLOC(ndr, r->parameters);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1356 r->parameters = NULL;
1358 ndr->flags = _flags_save_string;
1360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1362 NDR_PULL_ALLOC(ndr, r->secdesc);
1363 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1367 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1369 if (r->priority > 99) {
1370 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1375 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1376 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1379 if (ndr_flags & NDR_BUFFERS) {
1381 uint32_t _flags_save_string = ndr->flags;
1382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1383 if (r->servername) {
1384 uint32_t _relative_save_offset;
1385 _relative_save_offset = ndr->offset;
1386 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1387 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1388 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1389 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1391 ndr->offset = _relative_save_offset;
1393 ndr->flags = _flags_save_string;
1396 uint32_t _flags_save_string = ndr->flags;
1397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1398 if (r->printername) {
1399 uint32_t _relative_save_offset;
1400 _relative_save_offset = ndr->offset;
1401 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1402 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1403 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1404 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1406 ndr->offset = _relative_save_offset;
1408 ndr->flags = _flags_save_string;
1411 uint32_t _flags_save_string = ndr->flags;
1412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1414 uint32_t _relative_save_offset;
1415 _relative_save_offset = ndr->offset;
1416 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1417 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1418 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1419 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1421 ndr->offset = _relative_save_offset;
1423 ndr->flags = _flags_save_string;
1426 uint32_t _flags_save_string = ndr->flags;
1427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1429 uint32_t _relative_save_offset;
1430 _relative_save_offset = ndr->offset;
1431 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1432 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1433 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1434 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1436 ndr->offset = _relative_save_offset;
1438 ndr->flags = _flags_save_string;
1441 uint32_t _flags_save_string = ndr->flags;
1442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1443 if (r->drivername) {
1444 uint32_t _relative_save_offset;
1445 _relative_save_offset = ndr->offset;
1446 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1447 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1448 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1449 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1451 ndr->offset = _relative_save_offset;
1453 ndr->flags = _flags_save_string;
1456 uint32_t _flags_save_string = ndr->flags;
1457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1459 uint32_t _relative_save_offset;
1460 _relative_save_offset = ndr->offset;
1461 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1462 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1463 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1464 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1466 ndr->offset = _relative_save_offset;
1468 ndr->flags = _flags_save_string;
1471 uint32_t _flags_save_string = ndr->flags;
1472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1474 uint32_t _relative_save_offset;
1475 _relative_save_offset = ndr->offset;
1476 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1477 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1478 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1479 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1481 ndr->offset = _relative_save_offset;
1483 ndr->flags = _flags_save_string;
1486 uint32_t _relative_save_offset;
1487 _relative_save_offset = ndr->offset;
1488 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1489 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1490 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1492 struct ndr_pull *_ndr_devmode;
1493 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1494 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1495 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1498 ndr->offset = _relative_save_offset;
1501 uint32_t _flags_save_string = ndr->flags;
1502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1504 uint32_t _relative_save_offset;
1505 _relative_save_offset = ndr->offset;
1506 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1507 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1508 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1509 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1511 ndr->offset = _relative_save_offset;
1513 ndr->flags = _flags_save_string;
1516 uint32_t _flags_save_string = ndr->flags;
1517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1518 if (r->printprocessor) {
1519 uint32_t _relative_save_offset;
1520 _relative_save_offset = ndr->offset;
1521 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1522 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1523 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1524 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1526 ndr->offset = _relative_save_offset;
1528 ndr->flags = _flags_save_string;
1531 uint32_t _flags_save_string = ndr->flags;
1532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1534 uint32_t _relative_save_offset;
1535 _relative_save_offset = ndr->offset;
1536 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1537 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1538 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1539 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1541 ndr->offset = _relative_save_offset;
1543 ndr->flags = _flags_save_string;
1546 uint32_t _flags_save_string = ndr->flags;
1547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1548 if (r->parameters) {
1549 uint32_t _relative_save_offset;
1550 _relative_save_offset = ndr->offset;
1551 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1552 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1553 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1554 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1556 ndr->offset = _relative_save_offset;
1558 ndr->flags = _flags_save_string;
1561 uint32_t _relative_save_offset;
1562 _relative_save_offset = ndr->offset;
1563 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1564 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1565 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1567 struct ndr_pull *_ndr_secdesc;
1568 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1569 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1570 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1573 ndr->offset = _relative_save_offset;
1576 return NDR_ERR_SUCCESS;
1579 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1581 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1583 ndr_print_ptr(ndr, "servername", r->servername);
1585 if (r->servername) {
1586 ndr_print_string(ndr, "servername", r->servername);
1589 ndr_print_ptr(ndr, "printername", r->printername);
1591 if (r->printername) {
1592 ndr_print_string(ndr, "printername", r->printername);
1595 ndr_print_ptr(ndr, "sharename", r->sharename);
1598 ndr_print_string(ndr, "sharename", r->sharename);
1601 ndr_print_ptr(ndr, "portname", r->portname);
1604 ndr_print_string(ndr, "portname", r->portname);
1607 ndr_print_ptr(ndr, "drivername", r->drivername);
1609 if (r->drivername) {
1610 ndr_print_string(ndr, "drivername", r->drivername);
1613 ndr_print_ptr(ndr, "comment", r->comment);
1616 ndr_print_string(ndr, "comment", r->comment);
1619 ndr_print_ptr(ndr, "location", r->location);
1622 ndr_print_string(ndr, "location", r->location);
1625 ndr_print_ptr(ndr, "devmode", r->devmode);
1628 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1631 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1634 ndr_print_string(ndr, "sepfile", r->sepfile);
1637 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1639 if (r->printprocessor) {
1640 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1643 ndr_print_ptr(ndr, "datatype", r->datatype);
1646 ndr_print_string(ndr, "datatype", r->datatype);
1649 ndr_print_ptr(ndr, "parameters", r->parameters);
1651 if (r->parameters) {
1652 ndr_print_string(ndr, "parameters", r->parameters);
1655 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1658 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1661 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1662 ndr_print_uint32(ndr, "priority", r->priority);
1663 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1664 ndr_print_uint32(ndr, "starttime", r->starttime);
1665 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1666 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1667 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1668 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1672 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
1674 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
1677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1679 if (ndr_flags & NDR_SCALARS) {
1680 NDR_CHECK(ndr_push_align(ndr, 4));
1681 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1683 if (ndr_flags & NDR_BUFFERS) {
1685 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1687 struct ndr_push *_ndr_secdesc;
1688 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1689 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1690 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1694 return NDR_ERR_SUCCESS;
1697 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1699 uint32_t _ptr_secdesc;
1700 TALLOC_CTX *_mem_save_secdesc_0;
1701 if (ndr_flags & NDR_SCALARS) {
1702 NDR_CHECK(ndr_pull_align(ndr, 4));
1703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1705 NDR_PULL_ALLOC(ndr, r->secdesc);
1706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1711 if (ndr_flags & NDR_BUFFERS) {
1713 uint32_t _relative_save_offset;
1714 _relative_save_offset = ndr->offset;
1715 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1716 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1717 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1719 struct ndr_pull *_ndr_secdesc;
1720 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1721 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1722 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1725 ndr->offset = _relative_save_offset;
1728 return NDR_ERR_SUCCESS;
1731 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1733 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1735 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1738 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1744 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
1746 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
1749 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1751 if (ndr_flags & NDR_SCALARS) {
1752 NDR_CHECK(ndr_push_align(ndr, 4));
1754 uint32_t _flags_save_string = ndr->flags;
1755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1756 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1757 ndr->flags = _flags_save_string;
1760 uint32_t _flags_save_string = ndr->flags;
1761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1762 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1763 ndr->flags = _flags_save_string;
1765 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1767 if (ndr_flags & NDR_BUFFERS) {
1769 uint32_t _flags_save_string = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1771 if (r->printername) {
1772 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1775 ndr->flags = _flags_save_string;
1778 uint32_t _flags_save_string = ndr->flags;
1779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1780 if (r->servername) {
1781 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1784 ndr->flags = _flags_save_string;
1787 return NDR_ERR_SUCCESS;
1790 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1792 uint32_t _ptr_printername;
1793 TALLOC_CTX *_mem_save_printername_0;
1794 uint32_t _ptr_servername;
1795 TALLOC_CTX *_mem_save_servername_0;
1796 if (ndr_flags & NDR_SCALARS) {
1797 NDR_CHECK(ndr_pull_align(ndr, 4));
1799 uint32_t _flags_save_string = ndr->flags;
1800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1802 if (_ptr_printername) {
1803 NDR_PULL_ALLOC(ndr, r->printername);
1804 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1806 r->printername = NULL;
1808 ndr->flags = _flags_save_string;
1811 uint32_t _flags_save_string = ndr->flags;
1812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1814 if (_ptr_servername) {
1815 NDR_PULL_ALLOC(ndr, r->servername);
1816 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1818 r->servername = NULL;
1820 ndr->flags = _flags_save_string;
1822 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1824 if (ndr_flags & NDR_BUFFERS) {
1826 uint32_t _flags_save_string = ndr->flags;
1827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1828 if (r->printername) {
1829 uint32_t _relative_save_offset;
1830 _relative_save_offset = ndr->offset;
1831 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1832 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1833 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1834 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1836 ndr->offset = _relative_save_offset;
1838 ndr->flags = _flags_save_string;
1841 uint32_t _flags_save_string = ndr->flags;
1842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1843 if (r->servername) {
1844 uint32_t _relative_save_offset;
1845 _relative_save_offset = ndr->offset;
1846 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1847 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1848 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1849 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1851 ndr->offset = _relative_save_offset;
1853 ndr->flags = _flags_save_string;
1856 return NDR_ERR_SUCCESS;
1859 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1861 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1863 ndr_print_ptr(ndr, "printername", r->printername);
1865 if (r->printername) {
1866 ndr_print_string(ndr, "printername", r->printername);
1869 ndr_print_ptr(ndr, "servername", r->servername);
1871 if (r->servername) {
1872 ndr_print_string(ndr, "servername", r->servername);
1875 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1879 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
1881 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
1884 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1886 if (ndr_flags & NDR_SCALARS) {
1887 NDR_CHECK(ndr_push_align(ndr, 4));
1889 uint32_t _flags_save_string = ndr->flags;
1890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1891 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1892 ndr->flags = _flags_save_string;
1895 uint32_t _flags_save_string = ndr->flags;
1896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1897 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1898 ndr->flags = _flags_save_string;
1900 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1904 if (ndr_flags & NDR_BUFFERS) {
1906 uint32_t _flags_save_string = ndr->flags;
1907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1908 if (r->printername) {
1909 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1910 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1912 ndr->flags = _flags_save_string;
1915 uint32_t _flags_save_string = ndr->flags;
1916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1918 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1919 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1921 ndr->flags = _flags_save_string;
1924 return NDR_ERR_SUCCESS;
1927 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1929 uint32_t _ptr_printername;
1930 TALLOC_CTX *_mem_save_printername_0;
1931 uint32_t _ptr_portname;
1932 TALLOC_CTX *_mem_save_portname_0;
1933 if (ndr_flags & NDR_SCALARS) {
1934 NDR_CHECK(ndr_pull_align(ndr, 4));
1936 uint32_t _flags_save_string = ndr->flags;
1937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1939 if (_ptr_printername) {
1940 NDR_PULL_ALLOC(ndr, r->printername);
1941 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1943 r->printername = NULL;
1945 ndr->flags = _flags_save_string;
1948 uint32_t _flags_save_string = ndr->flags;
1949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1951 if (_ptr_portname) {
1952 NDR_PULL_ALLOC(ndr, r->portname);
1953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1957 ndr->flags = _flags_save_string;
1959 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1963 if (ndr_flags & NDR_BUFFERS) {
1965 uint32_t _flags_save_string = ndr->flags;
1966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1967 if (r->printername) {
1968 uint32_t _relative_save_offset;
1969 _relative_save_offset = ndr->offset;
1970 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1971 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1972 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1975 ndr->offset = _relative_save_offset;
1977 ndr->flags = _flags_save_string;
1980 uint32_t _flags_save_string = ndr->flags;
1981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1983 uint32_t _relative_save_offset;
1984 _relative_save_offset = ndr->offset;
1985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1986 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1987 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1990 ndr->offset = _relative_save_offset;
1992 ndr->flags = _flags_save_string;
1995 return NDR_ERR_SUCCESS;
1998 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2000 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2002 ndr_print_ptr(ndr, "printername", r->printername);
2004 if (r->printername) {
2005 ndr_print_string(ndr, "printername", r->printername);
2008 ndr_print_ptr(ndr, "portname", r->portname);
2011 ndr_print_string(ndr, "portname", r->portname);
2014 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2015 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2016 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2020 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2022 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2025 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2027 if (ndr_flags & NDR_SCALARS) {
2028 NDR_CHECK(ndr_push_align(ndr, 4));
2029 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2031 if (ndr_flags & NDR_BUFFERS) {
2033 return NDR_ERR_SUCCESS;
2036 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2038 if (ndr_flags & NDR_SCALARS) {
2039 NDR_CHECK(ndr_pull_align(ndr, 4));
2040 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2042 if (ndr_flags & NDR_BUFFERS) {
2044 return NDR_ERR_SUCCESS;
2047 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2049 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2051 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2055 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2057 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2060 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2063 return NDR_ERR_SUCCESS;
2066 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2071 return NDR_ERR_SUCCESS;
2074 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2076 ndr_print_uint32(ndr, name, r);
2078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2080 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2081 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2082 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2086 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2088 if (ndr_flags & NDR_SCALARS) {
2089 NDR_CHECK(ndr_push_align(ndr, 4));
2091 uint32_t _flags_save_string = ndr->flags;
2092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2093 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2094 ndr->flags = _flags_save_string;
2096 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2098 if (ndr_flags & NDR_BUFFERS) {
2100 uint32_t _flags_save_string = ndr->flags;
2101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2103 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2104 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2106 ndr->flags = _flags_save_string;
2109 return NDR_ERR_SUCCESS;
2112 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2115 TALLOC_CTX *_mem_save_guid_0;
2116 if (ndr_flags & NDR_SCALARS) {
2117 NDR_CHECK(ndr_pull_align(ndr, 4));
2119 uint32_t _flags_save_string = ndr->flags;
2120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2123 NDR_PULL_ALLOC(ndr, r->guid);
2124 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2128 ndr->flags = _flags_save_string;
2130 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2132 if (ndr_flags & NDR_BUFFERS) {
2134 uint32_t _flags_save_string = ndr->flags;
2135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2137 uint32_t _relative_save_offset;
2138 _relative_save_offset = ndr->offset;
2139 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2140 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2141 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2142 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2144 ndr->offset = _relative_save_offset;
2146 ndr->flags = _flags_save_string;
2149 return NDR_ERR_SUCCESS;
2152 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2154 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2156 ndr_print_ptr(ndr, "guid", r->guid);
2159 ndr_print_string(ndr, "guid", r->guid);
2162 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2166 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2168 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2171 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2173 if (ndr_flags & NDR_SCALARS) {
2174 NDR_CHECK(ndr_push_align(ndr, 4));
2175 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2177 if (ndr_flags & NDR_BUFFERS) {
2179 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2181 struct ndr_push *_ndr_devmode;
2182 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2183 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2184 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2188 return NDR_ERR_SUCCESS;
2191 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2193 uint32_t _ptr_devmode;
2194 TALLOC_CTX *_mem_save_devmode_0;
2195 if (ndr_flags & NDR_SCALARS) {
2196 NDR_CHECK(ndr_pull_align(ndr, 4));
2197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2199 NDR_PULL_ALLOC(ndr, r->devmode);
2200 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2205 if (ndr_flags & NDR_BUFFERS) {
2207 uint32_t _relative_save_offset;
2208 _relative_save_offset = ndr->offset;
2209 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2210 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2211 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2213 struct ndr_pull *_ndr_devmode;
2214 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2215 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2216 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2219 ndr->offset = _relative_save_offset;
2222 return NDR_ERR_SUCCESS;
2225 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2227 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2229 ndr_print_ptr(ndr, "devmode", r->devmode);
2232 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2238 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2240 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2241 if (ndr_flags & NDR_SCALARS) {
2242 int level = ndr_push_get_switch_value(ndr, r);
2245 NDR_CHECK(ndr_push_align(ndr, 4));
2246 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2247 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2251 NDR_CHECK(ndr_push_align(ndr, 4));
2252 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2257 NDR_CHECK(ndr_push_align(ndr, 4));
2258 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2259 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2263 NDR_CHECK(ndr_push_align(ndr, 4));
2264 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2265 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2269 NDR_CHECK(ndr_push_align(ndr, 4));
2270 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2271 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2275 NDR_CHECK(ndr_push_align(ndr, 4));
2276 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2277 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2281 NDR_CHECK(ndr_push_align(ndr, 4));
2282 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2283 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2287 NDR_CHECK(ndr_push_align(ndr, 4));
2288 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2289 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2293 NDR_CHECK(ndr_push_align(ndr, 4));
2294 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2295 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2299 NDR_CHECK(ndr_push_align(ndr, 4));
2300 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2301 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2309 if (ndr_flags & NDR_BUFFERS) {
2310 int level = ndr_push_get_switch_value(ndr, r);
2311 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2314 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2318 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2322 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2326 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2330 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2334 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2341 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2345 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2349 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2357 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2358 return NDR_ERR_SUCCESS;
2361 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2363 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2365 level = ndr_pull_get_switch_value(ndr, r);
2366 if (ndr_flags & NDR_SCALARS) {
2369 NDR_CHECK(ndr_pull_align(ndr, 4));
2370 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2371 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2375 NDR_CHECK(ndr_pull_align(ndr, 4));
2376 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2377 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2381 NDR_CHECK(ndr_pull_align(ndr, 4));
2382 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2383 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2387 NDR_CHECK(ndr_pull_align(ndr, 4));
2388 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2389 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2393 NDR_CHECK(ndr_pull_align(ndr, 4));
2394 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2395 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2399 NDR_CHECK(ndr_pull_align(ndr, 4));
2400 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2401 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2405 NDR_CHECK(ndr_pull_align(ndr, 4));
2406 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2407 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2411 NDR_CHECK(ndr_pull_align(ndr, 4));
2412 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2413 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2417 NDR_CHECK(ndr_pull_align(ndr, 4));
2418 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2419 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2423 NDR_CHECK(ndr_pull_align(ndr, 4));
2424 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2425 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2433 if (ndr_flags & NDR_BUFFERS) {
2434 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2437 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2441 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2445 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2449 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2453 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2457 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2464 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2468 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2472 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2480 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2481 return NDR_ERR_SUCCESS;
2484 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2487 level = ndr_print_get_switch_value(ndr, r);
2488 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2491 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2495 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2499 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2503 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2507 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2511 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2515 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2519 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2523 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2527 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2536 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2538 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2541 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2543 if (ndr_flags & NDR_SCALARS) {
2544 NDR_CHECK(ndr_push_align(ndr, 4));
2545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2546 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2548 if (ndr_flags & NDR_BUFFERS) {
2551 struct ndr_push *_ndr_devmode;
2552 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2553 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2554 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2558 return NDR_ERR_SUCCESS;
2561 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2563 uint32_t _ptr_devmode;
2564 TALLOC_CTX *_mem_save_devmode_0;
2565 if (ndr_flags & NDR_SCALARS) {
2566 NDR_CHECK(ndr_pull_align(ndr, 4));
2567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2570 NDR_PULL_ALLOC(ndr, r->devmode);
2575 if (ndr_flags & NDR_BUFFERS) {
2577 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2578 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2580 struct ndr_pull *_ndr_devmode;
2581 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2582 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2583 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2588 return NDR_ERR_SUCCESS;
2591 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2593 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2595 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);
2596 ndr_print_ptr(ndr, "devmode", r->devmode);
2599 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2605 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2607 if (ndr_flags & NDR_SCALARS) {
2608 NDR_CHECK(ndr_push_align(ndr, 4));
2609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2611 uint32_t _flags_save_string = ndr->flags;
2612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2614 ndr->flags = _flags_save_string;
2617 uint32_t _flags_save_string = ndr->flags;
2618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2620 ndr->flags = _flags_save_string;
2623 uint32_t _flags_save_string = ndr->flags;
2624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2626 ndr->flags = _flags_save_string;
2629 uint32_t _flags_save_string = ndr->flags;
2630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2632 ndr->flags = _flags_save_string;
2635 uint32_t _flags_save_string = ndr->flags;
2636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2638 ndr->flags = _flags_save_string;
2641 uint32_t _flags_save_string = ndr->flags;
2642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2644 ndr->flags = _flags_save_string;
2646 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2651 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2653 if (ndr_flags & NDR_BUFFERS) {
2655 uint32_t _flags_save_string = ndr->flags;
2656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2657 if (r->printer_name) {
2658 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2659 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2661 ndr->flags = _flags_save_string;
2664 uint32_t _flags_save_string = ndr->flags;
2665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2666 if (r->server_name) {
2667 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2668 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2670 ndr->flags = _flags_save_string;
2673 uint32_t _flags_save_string = ndr->flags;
2674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2676 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2679 ndr->flags = _flags_save_string;
2682 uint32_t _flags_save_string = ndr->flags;
2683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2684 if (r->document_name) {
2685 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2686 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2688 ndr->flags = _flags_save_string;
2691 uint32_t _flags_save_string = ndr->flags;
2692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2694 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2695 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2697 ndr->flags = _flags_save_string;
2700 uint32_t _flags_save_string = ndr->flags;
2701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2702 if (r->text_status) {
2703 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2704 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2706 ndr->flags = _flags_save_string;
2709 return NDR_ERR_SUCCESS;
2712 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2714 uint32_t _ptr_printer_name;
2715 TALLOC_CTX *_mem_save_printer_name_0;
2716 uint32_t _ptr_server_name;
2717 TALLOC_CTX *_mem_save_server_name_0;
2718 uint32_t _ptr_user_name;
2719 TALLOC_CTX *_mem_save_user_name_0;
2720 uint32_t _ptr_document_name;
2721 TALLOC_CTX *_mem_save_document_name_0;
2722 uint32_t _ptr_data_type;
2723 TALLOC_CTX *_mem_save_data_type_0;
2724 uint32_t _ptr_text_status;
2725 TALLOC_CTX *_mem_save_text_status_0;
2726 if (ndr_flags & NDR_SCALARS) {
2727 NDR_CHECK(ndr_pull_align(ndr, 4));
2728 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2730 uint32_t _flags_save_string = ndr->flags;
2731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2733 if (_ptr_printer_name) {
2734 NDR_PULL_ALLOC(ndr, r->printer_name);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2737 r->printer_name = NULL;
2739 ndr->flags = _flags_save_string;
2742 uint32_t _flags_save_string = ndr->flags;
2743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2745 if (_ptr_server_name) {
2746 NDR_PULL_ALLOC(ndr, r->server_name);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2749 r->server_name = NULL;
2751 ndr->flags = _flags_save_string;
2754 uint32_t _flags_save_string = ndr->flags;
2755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2757 if (_ptr_user_name) {
2758 NDR_PULL_ALLOC(ndr, r->user_name);
2759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2761 r->user_name = NULL;
2763 ndr->flags = _flags_save_string;
2766 uint32_t _flags_save_string = ndr->flags;
2767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2769 if (_ptr_document_name) {
2770 NDR_PULL_ALLOC(ndr, r->document_name);
2771 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2773 r->document_name = NULL;
2775 ndr->flags = _flags_save_string;
2778 uint32_t _flags_save_string = ndr->flags;
2779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2780 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2781 if (_ptr_data_type) {
2782 NDR_PULL_ALLOC(ndr, r->data_type);
2783 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2785 r->data_type = NULL;
2787 ndr->flags = _flags_save_string;
2790 uint32_t _flags_save_string = ndr->flags;
2791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2792 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2793 if (_ptr_text_status) {
2794 NDR_PULL_ALLOC(ndr, r->text_status);
2795 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2797 r->text_status = NULL;
2799 ndr->flags = _flags_save_string;
2801 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2803 if (r->priority > 99) {
2804 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2809 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2811 if (ndr_flags & NDR_BUFFERS) {
2813 uint32_t _flags_save_string = ndr->flags;
2814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2815 if (r->printer_name) {
2816 uint32_t _relative_save_offset;
2817 _relative_save_offset = ndr->offset;
2818 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2819 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2820 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2821 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2823 ndr->offset = _relative_save_offset;
2825 ndr->flags = _flags_save_string;
2828 uint32_t _flags_save_string = ndr->flags;
2829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2830 if (r->server_name) {
2831 uint32_t _relative_save_offset;
2832 _relative_save_offset = ndr->offset;
2833 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2834 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2835 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2836 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2838 ndr->offset = _relative_save_offset;
2840 ndr->flags = _flags_save_string;
2843 uint32_t _flags_save_string = ndr->flags;
2844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2846 uint32_t _relative_save_offset;
2847 _relative_save_offset = ndr->offset;
2848 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2849 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2850 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2851 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2853 ndr->offset = _relative_save_offset;
2855 ndr->flags = _flags_save_string;
2858 uint32_t _flags_save_string = ndr->flags;
2859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2860 if (r->document_name) {
2861 uint32_t _relative_save_offset;
2862 _relative_save_offset = ndr->offset;
2863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2864 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2865 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2868 ndr->offset = _relative_save_offset;
2870 ndr->flags = _flags_save_string;
2873 uint32_t _flags_save_string = ndr->flags;
2874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2876 uint32_t _relative_save_offset;
2877 _relative_save_offset = ndr->offset;
2878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2879 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2880 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2883 ndr->offset = _relative_save_offset;
2885 ndr->flags = _flags_save_string;
2888 uint32_t _flags_save_string = ndr->flags;
2889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2890 if (r->text_status) {
2891 uint32_t _relative_save_offset;
2892 _relative_save_offset = ndr->offset;
2893 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2894 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2895 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2896 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2898 ndr->offset = _relative_save_offset;
2900 ndr->flags = _flags_save_string;
2903 return NDR_ERR_SUCCESS;
2906 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2908 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2910 ndr_print_uint32(ndr, "job_id", r->job_id);
2911 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2913 if (r->printer_name) {
2914 ndr_print_string(ndr, "printer_name", r->printer_name);
2917 ndr_print_ptr(ndr, "server_name", r->server_name);
2919 if (r->server_name) {
2920 ndr_print_string(ndr, "server_name", r->server_name);
2923 ndr_print_ptr(ndr, "user_name", r->user_name);
2926 ndr_print_string(ndr, "user_name", r->user_name);
2929 ndr_print_ptr(ndr, "document_name", r->document_name);
2931 if (r->document_name) {
2932 ndr_print_string(ndr, "document_name", r->document_name);
2935 ndr_print_ptr(ndr, "data_type", r->data_type);
2938 ndr_print_string(ndr, "data_type", r->data_type);
2941 ndr_print_ptr(ndr, "text_status", r->text_status);
2943 if (r->text_status) {
2944 ndr_print_string(ndr, "text_status", r->text_status);
2947 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2948 ndr_print_uint32(ndr, "priority", r->priority);
2949 ndr_print_uint32(ndr, "position", r->position);
2950 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2951 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2952 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2956 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
2958 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
2961 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2963 if (ndr_flags & NDR_SCALARS) {
2964 NDR_CHECK(ndr_push_align(ndr, 4));
2965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2967 uint32_t _flags_save_string = ndr->flags;
2968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2970 ndr->flags = _flags_save_string;
2973 uint32_t _flags_save_string = ndr->flags;
2974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2976 ndr->flags = _flags_save_string;
2979 uint32_t _flags_save_string = ndr->flags;
2980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2982 ndr->flags = _flags_save_string;
2985 uint32_t _flags_save_string = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2988 ndr->flags = _flags_save_string;
2991 uint32_t _flags_save_string = ndr->flags;
2992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2994 ndr->flags = _flags_save_string;
2997 uint32_t _flags_save_string = ndr->flags;
2998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2999 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3000 ndr->flags = _flags_save_string;
3003 uint32_t _flags_save_string = ndr->flags;
3004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3005 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3006 ndr->flags = _flags_save_string;
3009 uint32_t _flags_save_string = ndr->flags;
3010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3011 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3012 ndr->flags = _flags_save_string;
3015 uint32_t _flags_save_string = ndr->flags;
3016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3017 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3018 ndr->flags = _flags_save_string;
3020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3022 uint32_t _flags_save_string = ndr->flags;
3023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3024 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3025 ndr->flags = _flags_save_string;
3027 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3028 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3035 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3039 if (ndr_flags & NDR_BUFFERS) {
3041 uint32_t _flags_save_string = ndr->flags;
3042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3043 if (r->printer_name) {
3044 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3045 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3047 ndr->flags = _flags_save_string;
3050 uint32_t _flags_save_string = ndr->flags;
3051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3052 if (r->server_name) {
3053 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3054 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3056 ndr->flags = _flags_save_string;
3059 uint32_t _flags_save_string = ndr->flags;
3060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3062 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3063 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3065 ndr->flags = _flags_save_string;
3068 uint32_t _flags_save_string = ndr->flags;
3069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3070 if (r->document_name) {
3071 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3072 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3074 ndr->flags = _flags_save_string;
3077 uint32_t _flags_save_string = ndr->flags;
3078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3079 if (r->notify_name) {
3080 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3081 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_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);
3089 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3090 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3092 ndr->flags = _flags_save_string;
3095 uint32_t _flags_save_string = ndr->flags;
3096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3097 if (r->print_processor) {
3098 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3099 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
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 if (r->parameters) {
3107 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3108 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3110 ndr->flags = _flags_save_string;
3113 uint32_t _flags_save_string = ndr->flags;
3114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3115 if (r->driver_name) {
3116 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3117 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3119 ndr->flags = _flags_save_string;
3122 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3123 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3126 uint32_t _flags_save_string = ndr->flags;
3127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3128 if (r->text_status) {
3129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3132 ndr->flags = _flags_save_string;
3135 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3136 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3139 return NDR_ERR_SUCCESS;
3142 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3144 uint32_t _ptr_printer_name;
3145 TALLOC_CTX *_mem_save_printer_name_0;
3146 uint32_t _ptr_server_name;
3147 TALLOC_CTX *_mem_save_server_name_0;
3148 uint32_t _ptr_user_name;
3149 TALLOC_CTX *_mem_save_user_name_0;
3150 uint32_t _ptr_document_name;
3151 TALLOC_CTX *_mem_save_document_name_0;
3152 uint32_t _ptr_notify_name;
3153 TALLOC_CTX *_mem_save_notify_name_0;
3154 uint32_t _ptr_data_type;
3155 TALLOC_CTX *_mem_save_data_type_0;
3156 uint32_t _ptr_print_processor;
3157 TALLOC_CTX *_mem_save_print_processor_0;
3158 uint32_t _ptr_parameters;
3159 TALLOC_CTX *_mem_save_parameters_0;
3160 uint32_t _ptr_driver_name;
3161 TALLOC_CTX *_mem_save_driver_name_0;
3162 uint32_t _ptr_devmode;
3163 TALLOC_CTX *_mem_save_devmode_0;
3164 uint32_t _ptr_text_status;
3165 TALLOC_CTX *_mem_save_text_status_0;
3166 uint32_t _ptr_secdesc;
3167 TALLOC_CTX *_mem_save_secdesc_0;
3168 if (ndr_flags & NDR_SCALARS) {
3169 NDR_CHECK(ndr_pull_align(ndr, 4));
3170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3172 uint32_t _flags_save_string = ndr->flags;
3173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3175 if (_ptr_printer_name) {
3176 NDR_PULL_ALLOC(ndr, r->printer_name);
3177 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3179 r->printer_name = NULL;
3181 ndr->flags = _flags_save_string;
3184 uint32_t _flags_save_string = ndr->flags;
3185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3187 if (_ptr_server_name) {
3188 NDR_PULL_ALLOC(ndr, r->server_name);
3189 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3191 r->server_name = NULL;
3193 ndr->flags = _flags_save_string;
3196 uint32_t _flags_save_string = ndr->flags;
3197 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3198 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3199 if (_ptr_user_name) {
3200 NDR_PULL_ALLOC(ndr, r->user_name);
3201 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3203 r->user_name = NULL;
3205 ndr->flags = _flags_save_string;
3208 uint32_t _flags_save_string = ndr->flags;
3209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3210 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3211 if (_ptr_document_name) {
3212 NDR_PULL_ALLOC(ndr, r->document_name);
3213 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3215 r->document_name = NULL;
3217 ndr->flags = _flags_save_string;
3220 uint32_t _flags_save_string = ndr->flags;
3221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3223 if (_ptr_notify_name) {
3224 NDR_PULL_ALLOC(ndr, r->notify_name);
3225 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3227 r->notify_name = NULL;
3229 ndr->flags = _flags_save_string;
3232 uint32_t _flags_save_string = ndr->flags;
3233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3234 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3235 if (_ptr_data_type) {
3236 NDR_PULL_ALLOC(ndr, r->data_type);
3237 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3239 r->data_type = NULL;
3241 ndr->flags = _flags_save_string;
3244 uint32_t _flags_save_string = ndr->flags;
3245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3247 if (_ptr_print_processor) {
3248 NDR_PULL_ALLOC(ndr, r->print_processor);
3249 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3251 r->print_processor = NULL;
3253 ndr->flags = _flags_save_string;
3256 uint32_t _flags_save_string = ndr->flags;
3257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3258 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3259 if (_ptr_parameters) {
3260 NDR_PULL_ALLOC(ndr, r->parameters);
3261 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3263 r->parameters = NULL;
3265 ndr->flags = _flags_save_string;
3268 uint32_t _flags_save_string = ndr->flags;
3269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3271 if (_ptr_driver_name) {
3272 NDR_PULL_ALLOC(ndr, r->driver_name);
3273 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3275 r->driver_name = NULL;
3277 ndr->flags = _flags_save_string;
3279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3281 NDR_PULL_ALLOC(ndr, r->devmode);
3282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3287 uint32_t _flags_save_string = ndr->flags;
3288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3290 if (_ptr_text_status) {
3291 NDR_PULL_ALLOC(ndr, r->text_status);
3292 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3294 r->text_status = NULL;
3296 ndr->flags = _flags_save_string;
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3300 NDR_PULL_ALLOC(ndr, r->secdesc);
3301 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3305 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3307 if (r->priority > 99) {
3308 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3310 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3315 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3319 if (ndr_flags & NDR_BUFFERS) {
3321 uint32_t _flags_save_string = ndr->flags;
3322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3323 if (r->printer_name) {
3324 uint32_t _relative_save_offset;
3325 _relative_save_offset = ndr->offset;
3326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3327 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3328 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3331 ndr->offset = _relative_save_offset;
3333 ndr->flags = _flags_save_string;
3336 uint32_t _flags_save_string = ndr->flags;
3337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3338 if (r->server_name) {
3339 uint32_t _relative_save_offset;
3340 _relative_save_offset = ndr->offset;
3341 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3342 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3343 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3344 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3346 ndr->offset = _relative_save_offset;
3348 ndr->flags = _flags_save_string;
3351 uint32_t _flags_save_string = ndr->flags;
3352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3354 uint32_t _relative_save_offset;
3355 _relative_save_offset = ndr->offset;
3356 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3357 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3358 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3359 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3361 ndr->offset = _relative_save_offset;
3363 ndr->flags = _flags_save_string;
3366 uint32_t _flags_save_string = ndr->flags;
3367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3368 if (r->document_name) {
3369 uint32_t _relative_save_offset;
3370 _relative_save_offset = ndr->offset;
3371 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3372 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3373 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3374 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3376 ndr->offset = _relative_save_offset;
3378 ndr->flags = _flags_save_string;
3381 uint32_t _flags_save_string = ndr->flags;
3382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3383 if (r->notify_name) {
3384 uint32_t _relative_save_offset;
3385 _relative_save_offset = ndr->offset;
3386 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3387 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3388 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3389 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3391 ndr->offset = _relative_save_offset;
3393 ndr->flags = _flags_save_string;
3396 uint32_t _flags_save_string = ndr->flags;
3397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3399 uint32_t _relative_save_offset;
3400 _relative_save_offset = ndr->offset;
3401 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3402 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3403 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3404 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3406 ndr->offset = _relative_save_offset;
3408 ndr->flags = _flags_save_string;
3411 uint32_t _flags_save_string = ndr->flags;
3412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3413 if (r->print_processor) {
3414 uint32_t _relative_save_offset;
3415 _relative_save_offset = ndr->offset;
3416 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3417 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3418 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3419 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3421 ndr->offset = _relative_save_offset;
3423 ndr->flags = _flags_save_string;
3426 uint32_t _flags_save_string = ndr->flags;
3427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3428 if (r->parameters) {
3429 uint32_t _relative_save_offset;
3430 _relative_save_offset = ndr->offset;
3431 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3432 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3433 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3434 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3436 ndr->offset = _relative_save_offset;
3438 ndr->flags = _flags_save_string;
3441 uint32_t _flags_save_string = ndr->flags;
3442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3443 if (r->driver_name) {
3444 uint32_t _relative_save_offset;
3445 _relative_save_offset = ndr->offset;
3446 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3447 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3448 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3449 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3451 ndr->offset = _relative_save_offset;
3453 ndr->flags = _flags_save_string;
3456 uint32_t _relative_save_offset;
3457 _relative_save_offset = ndr->offset;
3458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3459 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3460 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3461 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3463 ndr->offset = _relative_save_offset;
3466 uint32_t _flags_save_string = ndr->flags;
3467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3468 if (r->text_status) {
3469 uint32_t _relative_save_offset;
3470 _relative_save_offset = ndr->offset;
3471 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3472 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3473 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3474 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3476 ndr->offset = _relative_save_offset;
3478 ndr->flags = _flags_save_string;
3481 uint32_t _relative_save_offset;
3482 _relative_save_offset = ndr->offset;
3483 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3484 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3485 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3486 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3488 ndr->offset = _relative_save_offset;
3491 return NDR_ERR_SUCCESS;
3494 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3496 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3498 ndr_print_uint32(ndr, "job_id", r->job_id);
3499 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3501 if (r->printer_name) {
3502 ndr_print_string(ndr, "printer_name", r->printer_name);
3505 ndr_print_ptr(ndr, "server_name", r->server_name);
3507 if (r->server_name) {
3508 ndr_print_string(ndr, "server_name", r->server_name);
3511 ndr_print_ptr(ndr, "user_name", r->user_name);
3514 ndr_print_string(ndr, "user_name", r->user_name);
3517 ndr_print_ptr(ndr, "document_name", r->document_name);
3519 if (r->document_name) {
3520 ndr_print_string(ndr, "document_name", r->document_name);
3523 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3525 if (r->notify_name) {
3526 ndr_print_string(ndr, "notify_name", r->notify_name);
3529 ndr_print_ptr(ndr, "data_type", r->data_type);
3532 ndr_print_string(ndr, "data_type", r->data_type);
3535 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3537 if (r->print_processor) {
3538 ndr_print_string(ndr, "print_processor", r->print_processor);
3541 ndr_print_ptr(ndr, "parameters", r->parameters);
3543 if (r->parameters) {
3544 ndr_print_string(ndr, "parameters", r->parameters);
3547 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3549 if (r->driver_name) {
3550 ndr_print_string(ndr, "driver_name", r->driver_name);
3553 ndr_print_ptr(ndr, "devmode", r->devmode);
3556 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3559 ndr_print_ptr(ndr, "text_status", r->text_status);
3561 if (r->text_status) {
3562 ndr_print_string(ndr, "text_status", r->text_status);
3565 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3568 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3571 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3572 ndr_print_uint32(ndr, "priority", r->priority);
3573 ndr_print_uint32(ndr, "position", r->position);
3574 ndr_print_uint32(ndr, "start_time", r->start_time);
3575 ndr_print_uint32(ndr, "until_time", r->until_time);
3576 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3577 ndr_print_uint32(ndr, "size", r->size);
3578 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3579 ndr_print_uint32(ndr, "time", r->time);
3580 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3584 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
3586 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
3589 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3591 if (ndr_flags & NDR_SCALARS) {
3592 NDR_CHECK(ndr_push_align(ndr, 4));
3593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3597 if (ndr_flags & NDR_BUFFERS) {
3599 return NDR_ERR_SUCCESS;
3602 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3604 if (ndr_flags & NDR_SCALARS) {
3605 NDR_CHECK(ndr_pull_align(ndr, 4));
3606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3610 if (ndr_flags & NDR_BUFFERS) {
3612 return NDR_ERR_SUCCESS;
3615 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3617 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3619 ndr_print_uint32(ndr, "job_id", r->job_id);
3620 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3621 ndr_print_uint32(ndr, "reserved", r->reserved);
3625 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
3627 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
3630 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3632 if (ndr_flags & NDR_SCALARS) {
3633 NDR_CHECK(ndr_push_align(ndr, 4));
3634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3636 uint32_t _flags_save_string = ndr->flags;
3637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3638 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3639 ndr->flags = _flags_save_string;
3642 uint32_t _flags_save_string = ndr->flags;
3643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3644 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3645 ndr->flags = _flags_save_string;
3648 uint32_t _flags_save_string = ndr->flags;
3649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3650 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3651 ndr->flags = _flags_save_string;
3654 uint32_t _flags_save_string = ndr->flags;
3655 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3656 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3657 ndr->flags = _flags_save_string;
3660 uint32_t _flags_save_string = ndr->flags;
3661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3662 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3663 ndr->flags = _flags_save_string;
3666 uint32_t _flags_save_string = ndr->flags;
3667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3668 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3669 ndr->flags = _flags_save_string;
3672 uint32_t _flags_save_string = ndr->flags;
3673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3674 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3675 ndr->flags = _flags_save_string;
3678 uint32_t _flags_save_string = ndr->flags;
3679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3680 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3681 ndr->flags = _flags_save_string;
3684 uint32_t _flags_save_string = ndr->flags;
3685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3686 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3687 ndr->flags = _flags_save_string;
3689 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3691 uint32_t _flags_save_string = ndr->flags;
3692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3693 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3694 ndr->flags = _flags_save_string;
3696 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3697 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3704 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3709 if (ndr_flags & NDR_BUFFERS) {
3711 uint32_t _flags_save_string = ndr->flags;
3712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3713 if (r->printer_name) {
3714 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3715 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3717 ndr->flags = _flags_save_string;
3720 uint32_t _flags_save_string = ndr->flags;
3721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3722 if (r->server_name) {
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3726 ndr->flags = _flags_save_string;
3729 uint32_t _flags_save_string = ndr->flags;
3730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3732 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3735 ndr->flags = _flags_save_string;
3738 uint32_t _flags_save_string = ndr->flags;
3739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3740 if (r->document_name) {
3741 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3744 ndr->flags = _flags_save_string;
3747 uint32_t _flags_save_string = ndr->flags;
3748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3749 if (r->notify_name) {
3750 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3751 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3753 ndr->flags = _flags_save_string;
3756 uint32_t _flags_save_string = ndr->flags;
3757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3759 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3760 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3762 ndr->flags = _flags_save_string;
3765 uint32_t _flags_save_string = ndr->flags;
3766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3767 if (r->print_processor) {
3768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3771 ndr->flags = _flags_save_string;
3774 uint32_t _flags_save_string = ndr->flags;
3775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3776 if (r->parameters) {
3777 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3780 ndr->flags = _flags_save_string;
3783 uint32_t _flags_save_string = ndr->flags;
3784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3785 if (r->driver_name) {
3786 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3787 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3789 ndr->flags = _flags_save_string;
3792 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3793 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3796 uint32_t _flags_save_string = ndr->flags;
3797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3798 if (r->text_status) {
3799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3802 ndr->flags = _flags_save_string;
3805 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3806 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3809 return NDR_ERR_SUCCESS;
3812 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3814 uint32_t _ptr_printer_name;
3815 TALLOC_CTX *_mem_save_printer_name_0;
3816 uint32_t _ptr_server_name;
3817 TALLOC_CTX *_mem_save_server_name_0;
3818 uint32_t _ptr_user_name;
3819 TALLOC_CTX *_mem_save_user_name_0;
3820 uint32_t _ptr_document_name;
3821 TALLOC_CTX *_mem_save_document_name_0;
3822 uint32_t _ptr_notify_name;
3823 TALLOC_CTX *_mem_save_notify_name_0;
3824 uint32_t _ptr_data_type;
3825 TALLOC_CTX *_mem_save_data_type_0;
3826 uint32_t _ptr_print_processor;
3827 TALLOC_CTX *_mem_save_print_processor_0;
3828 uint32_t _ptr_parameters;
3829 TALLOC_CTX *_mem_save_parameters_0;
3830 uint32_t _ptr_driver_name;
3831 TALLOC_CTX *_mem_save_driver_name_0;
3832 uint32_t _ptr_devmode;
3833 TALLOC_CTX *_mem_save_devmode_0;
3834 uint32_t _ptr_text_status;
3835 TALLOC_CTX *_mem_save_text_status_0;
3836 uint32_t _ptr_secdesc;
3837 TALLOC_CTX *_mem_save_secdesc_0;
3838 if (ndr_flags & NDR_SCALARS) {
3839 NDR_CHECK(ndr_pull_align(ndr, 4));
3840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3842 uint32_t _flags_save_string = ndr->flags;
3843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3845 if (_ptr_printer_name) {
3846 NDR_PULL_ALLOC(ndr, r->printer_name);
3847 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3849 r->printer_name = NULL;
3851 ndr->flags = _flags_save_string;
3854 uint32_t _flags_save_string = ndr->flags;
3855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3856 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3857 if (_ptr_server_name) {
3858 NDR_PULL_ALLOC(ndr, r->server_name);
3859 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3861 r->server_name = NULL;
3863 ndr->flags = _flags_save_string;
3866 uint32_t _flags_save_string = ndr->flags;
3867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3869 if (_ptr_user_name) {
3870 NDR_PULL_ALLOC(ndr, r->user_name);
3871 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3873 r->user_name = NULL;
3875 ndr->flags = _flags_save_string;
3878 uint32_t _flags_save_string = ndr->flags;
3879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3881 if (_ptr_document_name) {
3882 NDR_PULL_ALLOC(ndr, r->document_name);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3885 r->document_name = NULL;
3887 ndr->flags = _flags_save_string;
3890 uint32_t _flags_save_string = ndr->flags;
3891 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3893 if (_ptr_notify_name) {
3894 NDR_PULL_ALLOC(ndr, r->notify_name);
3895 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3897 r->notify_name = NULL;
3899 ndr->flags = _flags_save_string;
3902 uint32_t _flags_save_string = ndr->flags;
3903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3905 if (_ptr_data_type) {
3906 NDR_PULL_ALLOC(ndr, r->data_type);
3907 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3909 r->data_type = NULL;
3911 ndr->flags = _flags_save_string;
3914 uint32_t _flags_save_string = ndr->flags;
3915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3917 if (_ptr_print_processor) {
3918 NDR_PULL_ALLOC(ndr, r->print_processor);
3919 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3921 r->print_processor = NULL;
3923 ndr->flags = _flags_save_string;
3926 uint32_t _flags_save_string = ndr->flags;
3927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3929 if (_ptr_parameters) {
3930 NDR_PULL_ALLOC(ndr, r->parameters);
3931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3933 r->parameters = NULL;
3935 ndr->flags = _flags_save_string;
3938 uint32_t _flags_save_string = ndr->flags;
3939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3941 if (_ptr_driver_name) {
3942 NDR_PULL_ALLOC(ndr, r->driver_name);
3943 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3945 r->driver_name = NULL;
3947 ndr->flags = _flags_save_string;
3949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3951 NDR_PULL_ALLOC(ndr, r->devmode);
3952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3957 uint32_t _flags_save_string = ndr->flags;
3958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3960 if (_ptr_text_status) {
3961 NDR_PULL_ALLOC(ndr, r->text_status);
3962 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3964 r->text_status = NULL;
3966 ndr->flags = _flags_save_string;
3968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3970 NDR_PULL_ALLOC(ndr, r->secdesc);
3971 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3975 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3977 if (r->priority > 99) {
3978 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3985 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
3990 if (ndr_flags & NDR_BUFFERS) {
3992 uint32_t _flags_save_string = ndr->flags;
3993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3994 if (r->printer_name) {
3995 uint32_t _relative_save_offset;
3996 _relative_save_offset = ndr->offset;
3997 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3998 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3999 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4000 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4002 ndr->offset = _relative_save_offset;
4004 ndr->flags = _flags_save_string;
4007 uint32_t _flags_save_string = ndr->flags;
4008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4009 if (r->server_name) {
4010 uint32_t _relative_save_offset;
4011 _relative_save_offset = ndr->offset;
4012 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4013 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4014 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4015 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4017 ndr->offset = _relative_save_offset;
4019 ndr->flags = _flags_save_string;
4022 uint32_t _flags_save_string = ndr->flags;
4023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4025 uint32_t _relative_save_offset;
4026 _relative_save_offset = ndr->offset;
4027 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4028 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4029 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4030 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4032 ndr->offset = _relative_save_offset;
4034 ndr->flags = _flags_save_string;
4037 uint32_t _flags_save_string = ndr->flags;
4038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4039 if (r->document_name) {
4040 uint32_t _relative_save_offset;
4041 _relative_save_offset = ndr->offset;
4042 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4043 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4044 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4045 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4047 ndr->offset = _relative_save_offset;
4049 ndr->flags = _flags_save_string;
4052 uint32_t _flags_save_string = ndr->flags;
4053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4054 if (r->notify_name) {
4055 uint32_t _relative_save_offset;
4056 _relative_save_offset = ndr->offset;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4058 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4059 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4060 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4062 ndr->offset = _relative_save_offset;
4064 ndr->flags = _flags_save_string;
4067 uint32_t _flags_save_string = ndr->flags;
4068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4070 uint32_t _relative_save_offset;
4071 _relative_save_offset = ndr->offset;
4072 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4073 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4074 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4075 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4077 ndr->offset = _relative_save_offset;
4079 ndr->flags = _flags_save_string;
4082 uint32_t _flags_save_string = ndr->flags;
4083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4084 if (r->print_processor) {
4085 uint32_t _relative_save_offset;
4086 _relative_save_offset = ndr->offset;
4087 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4088 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4089 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4090 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4092 ndr->offset = _relative_save_offset;
4094 ndr->flags = _flags_save_string;
4097 uint32_t _flags_save_string = ndr->flags;
4098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4099 if (r->parameters) {
4100 uint32_t _relative_save_offset;
4101 _relative_save_offset = ndr->offset;
4102 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4103 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4104 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4105 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4107 ndr->offset = _relative_save_offset;
4109 ndr->flags = _flags_save_string;
4112 uint32_t _flags_save_string = ndr->flags;
4113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4114 if (r->driver_name) {
4115 uint32_t _relative_save_offset;
4116 _relative_save_offset = ndr->offset;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4118 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4119 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4122 ndr->offset = _relative_save_offset;
4124 ndr->flags = _flags_save_string;
4127 uint32_t _relative_save_offset;
4128 _relative_save_offset = ndr->offset;
4129 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4130 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4131 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4132 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4134 ndr->offset = _relative_save_offset;
4137 uint32_t _flags_save_string = ndr->flags;
4138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4139 if (r->text_status) {
4140 uint32_t _relative_save_offset;
4141 _relative_save_offset = ndr->offset;
4142 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4143 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4144 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4145 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4147 ndr->offset = _relative_save_offset;
4149 ndr->flags = _flags_save_string;
4152 uint32_t _relative_save_offset;
4153 _relative_save_offset = ndr->offset;
4154 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4155 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4156 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4157 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4159 ndr->offset = _relative_save_offset;
4162 return NDR_ERR_SUCCESS;
4165 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4167 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4169 ndr_print_uint32(ndr, "job_id", r->job_id);
4170 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4172 if (r->printer_name) {
4173 ndr_print_string(ndr, "printer_name", r->printer_name);
4176 ndr_print_ptr(ndr, "server_name", r->server_name);
4178 if (r->server_name) {
4179 ndr_print_string(ndr, "server_name", r->server_name);
4182 ndr_print_ptr(ndr, "user_name", r->user_name);
4185 ndr_print_string(ndr, "user_name", r->user_name);
4188 ndr_print_ptr(ndr, "document_name", r->document_name);
4190 if (r->document_name) {
4191 ndr_print_string(ndr, "document_name", r->document_name);
4194 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4196 if (r->notify_name) {
4197 ndr_print_string(ndr, "notify_name", r->notify_name);
4200 ndr_print_ptr(ndr, "data_type", r->data_type);
4203 ndr_print_string(ndr, "data_type", r->data_type);
4206 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4208 if (r->print_processor) {
4209 ndr_print_string(ndr, "print_processor", r->print_processor);
4212 ndr_print_ptr(ndr, "parameters", r->parameters);
4214 if (r->parameters) {
4215 ndr_print_string(ndr, "parameters", r->parameters);
4218 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4220 if (r->driver_name) {
4221 ndr_print_string(ndr, "driver_name", r->driver_name);
4224 ndr_print_ptr(ndr, "devmode", r->devmode);
4227 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4230 ndr_print_ptr(ndr, "text_status", r->text_status);
4232 if (r->text_status) {
4233 ndr_print_string(ndr, "text_status", r->text_status);
4236 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4239 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4242 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4243 ndr_print_uint32(ndr, "priority", r->priority);
4244 ndr_print_uint32(ndr, "position", r->position);
4245 ndr_print_uint32(ndr, "start_time", r->start_time);
4246 ndr_print_uint32(ndr, "until_time", r->until_time);
4247 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4248 ndr_print_uint32(ndr, "size", r->size);
4249 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4250 ndr_print_uint32(ndr, "time", r->time);
4251 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4252 ndr_print_uint32(ndr, "size_high", r->size_high);
4256 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4258 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4261 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4263 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4264 if (ndr_flags & NDR_SCALARS) {
4265 int level = ndr_push_get_switch_value(ndr, r);
4268 NDR_CHECK(ndr_push_align(ndr, 4));
4269 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4270 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4274 NDR_CHECK(ndr_push_align(ndr, 4));
4275 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4276 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4280 NDR_CHECK(ndr_push_align(ndr, 4));
4281 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4282 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4286 NDR_CHECK(ndr_push_align(ndr, 4));
4287 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4288 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4296 if (ndr_flags & NDR_BUFFERS) {
4297 int level = ndr_push_get_switch_value(ndr, r);
4298 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4301 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4305 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4312 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4320 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4321 return NDR_ERR_SUCCESS;
4324 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4326 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4328 level = ndr_pull_get_switch_value(ndr, r);
4329 if (ndr_flags & NDR_SCALARS) {
4332 NDR_CHECK(ndr_pull_align(ndr, 4));
4333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4334 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4338 NDR_CHECK(ndr_pull_align(ndr, 4));
4339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4340 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4344 NDR_CHECK(ndr_pull_align(ndr, 4));
4345 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4346 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4350 NDR_CHECK(ndr_pull_align(ndr, 4));
4351 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4352 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4360 if (ndr_flags & NDR_BUFFERS) {
4361 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4364 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4368 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4375 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4383 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4384 return NDR_ERR_SUCCESS;
4387 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4390 level = ndr_print_get_switch_value(ndr, r);
4391 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4394 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4398 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4402 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4406 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4415 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4417 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4420 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4422 if (ndr_flags & NDR_SCALARS) {
4423 NDR_CHECK(ndr_push_align(ndr, 4));
4424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4427 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4429 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4431 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4436 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4438 if (ndr_flags & NDR_BUFFERS) {
4439 if (r->printer_name) {
4440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4445 if (r->server_name) {
4446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4449 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4457 if (r->document_name) {
4458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4469 if (r->text_status) {
4470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4473 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4476 return NDR_ERR_SUCCESS;
4479 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4481 uint32_t _ptr_printer_name;
4482 TALLOC_CTX *_mem_save_printer_name_0;
4483 uint32_t _ptr_server_name;
4484 TALLOC_CTX *_mem_save_server_name_0;
4485 uint32_t _ptr_user_name;
4486 TALLOC_CTX *_mem_save_user_name_0;
4487 uint32_t _ptr_document_name;
4488 TALLOC_CTX *_mem_save_document_name_0;
4489 uint32_t _ptr_data_type;
4490 TALLOC_CTX *_mem_save_data_type_0;
4491 uint32_t _ptr_text_status;
4492 TALLOC_CTX *_mem_save_text_status_0;
4493 if (ndr_flags & NDR_SCALARS) {
4494 NDR_CHECK(ndr_pull_align(ndr, 4));
4495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4497 if (_ptr_printer_name) {
4498 NDR_PULL_ALLOC(ndr, r->printer_name);
4500 r->printer_name = NULL;
4502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4503 if (_ptr_server_name) {
4504 NDR_PULL_ALLOC(ndr, r->server_name);
4506 r->server_name = NULL;
4508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4509 if (_ptr_user_name) {
4510 NDR_PULL_ALLOC(ndr, r->user_name);
4512 r->user_name = NULL;
4514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4515 if (_ptr_document_name) {
4516 NDR_PULL_ALLOC(ndr, r->document_name);
4518 r->document_name = NULL;
4520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4521 if (_ptr_data_type) {
4522 NDR_PULL_ALLOC(ndr, r->data_type);
4524 r->data_type = NULL;
4526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4527 if (_ptr_text_status) {
4528 NDR_PULL_ALLOC(ndr, r->text_status);
4530 r->text_status = NULL;
4532 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4534 if (r->priority > 99) {
4535 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4540 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4542 if (ndr_flags & NDR_BUFFERS) {
4543 if (r->printer_name) {
4544 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4545 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4546 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4547 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4548 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4549 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));
4551 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4552 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4555 if (r->server_name) {
4556 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4557 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4558 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4559 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4560 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4561 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));
4563 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4564 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4568 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4569 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4570 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4571 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4572 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4573 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));
4575 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4576 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4579 if (r->document_name) {
4580 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4581 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4582 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4583 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4584 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4585 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));
4587 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4588 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4592 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4593 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4594 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4595 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4596 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4597 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));
4599 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4600 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4603 if (r->text_status) {
4604 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4605 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4606 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4607 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4608 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4609 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));
4611 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4612 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4616 return NDR_ERR_SUCCESS;
4619 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4621 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4623 ndr_print_uint32(ndr, "job_id", r->job_id);
4624 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4626 if (r->printer_name) {
4627 ndr_print_string(ndr, "printer_name", r->printer_name);
4630 ndr_print_ptr(ndr, "server_name", r->server_name);
4632 if (r->server_name) {
4633 ndr_print_string(ndr, "server_name", r->server_name);
4636 ndr_print_ptr(ndr, "user_name", r->user_name);
4639 ndr_print_string(ndr, "user_name", r->user_name);
4642 ndr_print_ptr(ndr, "document_name", r->document_name);
4644 if (r->document_name) {
4645 ndr_print_string(ndr, "document_name", r->document_name);
4648 ndr_print_ptr(ndr, "data_type", r->data_type);
4651 ndr_print_string(ndr, "data_type", r->data_type);
4654 ndr_print_ptr(ndr, "text_status", r->text_status);
4656 if (r->text_status) {
4657 ndr_print_string(ndr, "text_status", r->text_status);
4660 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4661 ndr_print_uint32(ndr, "priority", r->priority);
4662 ndr_print_uint32(ndr, "position", r->position);
4663 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4664 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4665 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4669 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4671 if (ndr_flags & NDR_SCALARS) {
4672 NDR_CHECK(ndr_push_align(ndr, 4));
4673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4677 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4682 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4684 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4686 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4693 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4697 if (ndr_flags & NDR_BUFFERS) {
4698 if (r->printer_name) {
4699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4702 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4704 if (r->server_name) {
4705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4708 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4714 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4716 if (r->document_name) {
4717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4720 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4722 if (r->notify_name) {
4723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4726 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4732 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4734 if (r->print_processor) {
4735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4738 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4740 if (r->parameters) {
4741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4744 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4746 if (r->driver_name) {
4747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4752 if (r->text_status) {
4753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4756 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4759 return NDR_ERR_SUCCESS;
4762 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4764 uint32_t _ptr_printer_name;
4765 TALLOC_CTX *_mem_save_printer_name_0;
4766 uint32_t _ptr_server_name;
4767 TALLOC_CTX *_mem_save_server_name_0;
4768 uint32_t _ptr_user_name;
4769 TALLOC_CTX *_mem_save_user_name_0;
4770 uint32_t _ptr_document_name;
4771 TALLOC_CTX *_mem_save_document_name_0;
4772 uint32_t _ptr_notify_name;
4773 TALLOC_CTX *_mem_save_notify_name_0;
4774 uint32_t _ptr_data_type;
4775 TALLOC_CTX *_mem_save_data_type_0;
4776 uint32_t _ptr_print_processor;
4777 TALLOC_CTX *_mem_save_print_processor_0;
4778 uint32_t _ptr_parameters;
4779 TALLOC_CTX *_mem_save_parameters_0;
4780 uint32_t _ptr_driver_name;
4781 TALLOC_CTX *_mem_save_driver_name_0;
4782 uint32_t _ptr_text_status;
4783 TALLOC_CTX *_mem_save_text_status_0;
4784 if (ndr_flags & NDR_SCALARS) {
4785 NDR_CHECK(ndr_pull_align(ndr, 4));
4786 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4788 if (_ptr_printer_name) {
4789 NDR_PULL_ALLOC(ndr, r->printer_name);
4791 r->printer_name = NULL;
4793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4794 if (_ptr_server_name) {
4795 NDR_PULL_ALLOC(ndr, r->server_name);
4797 r->server_name = NULL;
4799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4800 if (_ptr_user_name) {
4801 NDR_PULL_ALLOC(ndr, r->user_name);
4803 r->user_name = NULL;
4805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4806 if (_ptr_document_name) {
4807 NDR_PULL_ALLOC(ndr, r->document_name);
4809 r->document_name = NULL;
4811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4812 if (_ptr_notify_name) {
4813 NDR_PULL_ALLOC(ndr, r->notify_name);
4815 r->notify_name = NULL;
4817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4818 if (_ptr_data_type) {
4819 NDR_PULL_ALLOC(ndr, r->data_type);
4821 r->data_type = NULL;
4823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4824 if (_ptr_print_processor) {
4825 NDR_PULL_ALLOC(ndr, r->print_processor);
4827 r->print_processor = NULL;
4829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4830 if (_ptr_parameters) {
4831 NDR_PULL_ALLOC(ndr, r->parameters);
4833 r->parameters = NULL;
4835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4836 if (_ptr_driver_name) {
4837 NDR_PULL_ALLOC(ndr, r->driver_name);
4839 r->driver_name = NULL;
4841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4843 if (_ptr_text_status) {
4844 NDR_PULL_ALLOC(ndr, r->text_status);
4846 r->text_status = NULL;
4848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4849 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4851 if (r->priority > 99) {
4852 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4859 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4863 if (ndr_flags & NDR_BUFFERS) {
4864 if (r->printer_name) {
4865 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4866 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4867 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4868 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4869 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4870 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));
4872 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4873 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4876 if (r->server_name) {
4877 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4878 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4879 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4880 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4881 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4882 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));
4884 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4885 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4889 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4890 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4891 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4892 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4893 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4894 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));
4896 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4897 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4900 if (r->document_name) {
4901 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4902 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4903 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4904 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4905 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4906 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));
4908 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4909 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4912 if (r->notify_name) {
4913 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4914 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4915 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4916 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4917 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4918 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));
4920 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4921 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4925 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4926 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4927 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4928 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4929 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4930 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));
4932 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4936 if (r->print_processor) {
4937 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4938 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4939 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4940 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4941 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4942 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));
4944 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4945 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4948 if (r->parameters) {
4949 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4950 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4951 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
4952 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
4953 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
4954 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));
4956 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
4957 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
4958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4960 if (r->driver_name) {
4961 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4962 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4963 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4964 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4965 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4966 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));
4968 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4969 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4972 if (r->text_status) {
4973 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4974 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4975 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4976 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4977 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4978 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));
4980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4981 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4985 return NDR_ERR_SUCCESS;
4988 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
4990 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
4992 ndr_print_uint32(ndr, "job_id", r->job_id);
4993 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4995 if (r->printer_name) {
4996 ndr_print_string(ndr, "printer_name", r->printer_name);
4999 ndr_print_ptr(ndr, "server_name", r->server_name);
5001 if (r->server_name) {
5002 ndr_print_string(ndr, "server_name", r->server_name);
5005 ndr_print_ptr(ndr, "user_name", r->user_name);
5008 ndr_print_string(ndr, "user_name", r->user_name);
5011 ndr_print_ptr(ndr, "document_name", r->document_name);
5013 if (r->document_name) {
5014 ndr_print_string(ndr, "document_name", r->document_name);
5017 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5019 if (r->notify_name) {
5020 ndr_print_string(ndr, "notify_name", r->notify_name);
5023 ndr_print_ptr(ndr, "data_type", r->data_type);
5026 ndr_print_string(ndr, "data_type", r->data_type);
5029 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5031 if (r->print_processor) {
5032 ndr_print_string(ndr, "print_processor", r->print_processor);
5035 ndr_print_ptr(ndr, "parameters", r->parameters);
5037 if (r->parameters) {
5038 ndr_print_string(ndr, "parameters", r->parameters);
5041 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5043 if (r->driver_name) {
5044 ndr_print_string(ndr, "driver_name", r->driver_name);
5047 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5048 ndr_print_ptr(ndr, "text_status", r->text_status);
5050 if (r->text_status) {
5051 ndr_print_string(ndr, "text_status", r->text_status);
5054 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5055 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5056 ndr_print_uint32(ndr, "priority", r->priority);
5057 ndr_print_uint32(ndr, "position", r->position);
5058 ndr_print_uint32(ndr, "start_time", r->start_time);
5059 ndr_print_uint32(ndr, "until_time", r->until_time);
5060 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5061 ndr_print_uint32(ndr, "size", r->size);
5062 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5063 ndr_print_uint32(ndr, "time", r->time);
5064 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5068 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5070 if (ndr_flags & NDR_SCALARS) {
5071 NDR_CHECK(ndr_push_align(ndr, 4));
5072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5077 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5078 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5079 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5081 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5083 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5085 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5092 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5097 if (ndr_flags & NDR_BUFFERS) {
5098 if (r->printer_name) {
5099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5102 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5104 if (r->server_name) {
5105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5116 if (r->document_name) {
5117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5122 if (r->notify_name) {
5123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5134 if (r->print_processor) {
5135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5140 if (r->parameters) {
5141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5144 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5146 if (r->driver_name) {
5147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5150 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5152 if (r->text_status) {
5153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5159 return NDR_ERR_SUCCESS;
5162 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5164 uint32_t _ptr_printer_name;
5165 TALLOC_CTX *_mem_save_printer_name_0;
5166 uint32_t _ptr_server_name;
5167 TALLOC_CTX *_mem_save_server_name_0;
5168 uint32_t _ptr_user_name;
5169 TALLOC_CTX *_mem_save_user_name_0;
5170 uint32_t _ptr_document_name;
5171 TALLOC_CTX *_mem_save_document_name_0;
5172 uint32_t _ptr_notify_name;
5173 TALLOC_CTX *_mem_save_notify_name_0;
5174 uint32_t _ptr_data_type;
5175 TALLOC_CTX *_mem_save_data_type_0;
5176 uint32_t _ptr_print_processor;
5177 TALLOC_CTX *_mem_save_print_processor_0;
5178 uint32_t _ptr_parameters;
5179 TALLOC_CTX *_mem_save_parameters_0;
5180 uint32_t _ptr_driver_name;
5181 TALLOC_CTX *_mem_save_driver_name_0;
5182 uint32_t _ptr_text_status;
5183 TALLOC_CTX *_mem_save_text_status_0;
5184 if (ndr_flags & NDR_SCALARS) {
5185 NDR_CHECK(ndr_pull_align(ndr, 4));
5186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5188 if (_ptr_printer_name) {
5189 NDR_PULL_ALLOC(ndr, r->printer_name);
5191 r->printer_name = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5194 if (_ptr_server_name) {
5195 NDR_PULL_ALLOC(ndr, r->server_name);
5197 r->server_name = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5200 if (_ptr_user_name) {
5201 NDR_PULL_ALLOC(ndr, r->user_name);
5203 r->user_name = NULL;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5206 if (_ptr_document_name) {
5207 NDR_PULL_ALLOC(ndr, r->document_name);
5209 r->document_name = NULL;
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5212 if (_ptr_notify_name) {
5213 NDR_PULL_ALLOC(ndr, r->notify_name);
5215 r->notify_name = NULL;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5218 if (_ptr_data_type) {
5219 NDR_PULL_ALLOC(ndr, r->data_type);
5221 r->data_type = NULL;
5223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5224 if (_ptr_print_processor) {
5225 NDR_PULL_ALLOC(ndr, r->print_processor);
5227 r->print_processor = NULL;
5229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5230 if (_ptr_parameters) {
5231 NDR_PULL_ALLOC(ndr, r->parameters);
5233 r->parameters = NULL;
5235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5236 if (_ptr_driver_name) {
5237 NDR_PULL_ALLOC(ndr, r->driver_name);
5239 r->driver_name = NULL;
5241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5243 if (_ptr_text_status) {
5244 NDR_PULL_ALLOC(ndr, r->text_status);
5246 r->text_status = NULL;
5248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5251 if (r->priority > 99) {
5252 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5256 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5259 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5264 if (ndr_flags & NDR_BUFFERS) {
5265 if (r->printer_name) {
5266 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5267 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5268 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5269 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5270 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5271 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));
5273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5277 if (r->server_name) {
5278 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5279 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5280 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5281 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5282 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5283 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));
5285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5290 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5291 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5292 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5293 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5294 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5295 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));
5297 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5298 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5301 if (r->document_name) {
5302 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5303 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5304 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5305 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5306 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5307 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));
5309 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5310 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5313 if (r->notify_name) {
5314 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5315 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5316 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5317 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5318 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5319 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));
5321 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5322 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5326 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5327 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5328 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5329 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5330 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5331 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));
5333 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5334 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5337 if (r->print_processor) {
5338 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5339 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5340 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5341 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5342 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5343 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));
5345 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5346 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5349 if (r->parameters) {
5350 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5351 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5352 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5353 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5354 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5355 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));
5357 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5358 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5361 if (r->driver_name) {
5362 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5363 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5364 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5365 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5366 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5367 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));
5369 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5370 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5373 if (r->text_status) {
5374 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5375 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5376 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5377 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5378 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5379 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));
5381 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5382 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5386 return NDR_ERR_SUCCESS;
5389 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5391 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5393 ndr_print_uint32(ndr, "job_id", r->job_id);
5394 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5396 if (r->printer_name) {
5397 ndr_print_string(ndr, "printer_name", r->printer_name);
5400 ndr_print_ptr(ndr, "server_name", r->server_name);
5402 if (r->server_name) {
5403 ndr_print_string(ndr, "server_name", r->server_name);
5406 ndr_print_ptr(ndr, "user_name", r->user_name);
5409 ndr_print_string(ndr, "user_name", r->user_name);
5412 ndr_print_ptr(ndr, "document_name", r->document_name);
5414 if (r->document_name) {
5415 ndr_print_string(ndr, "document_name", r->document_name);
5418 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5420 if (r->notify_name) {
5421 ndr_print_string(ndr, "notify_name", r->notify_name);
5424 ndr_print_ptr(ndr, "data_type", r->data_type);
5427 ndr_print_string(ndr, "data_type", r->data_type);
5430 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5432 if (r->print_processor) {
5433 ndr_print_string(ndr, "print_processor", r->print_processor);
5436 ndr_print_ptr(ndr, "parameters", r->parameters);
5438 if (r->parameters) {
5439 ndr_print_string(ndr, "parameters", r->parameters);
5442 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5444 if (r->driver_name) {
5445 ndr_print_string(ndr, "driver_name", r->driver_name);
5448 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5449 ndr_print_ptr(ndr, "text_status", r->text_status);
5451 if (r->text_status) {
5452 ndr_print_string(ndr, "text_status", r->text_status);
5455 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5456 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5457 ndr_print_uint32(ndr, "priority", r->priority);
5458 ndr_print_uint32(ndr, "position", r->position);
5459 ndr_print_uint32(ndr, "start_time", r->start_time);
5460 ndr_print_uint32(ndr, "until_time", r->until_time);
5461 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5462 ndr_print_uint32(ndr, "size", r->size);
5463 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5464 ndr_print_uint32(ndr, "time", r->time);
5465 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5466 ndr_print_uint32(ndr, "size_high", r->size_high);
5470 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5472 if (ndr_flags & NDR_SCALARS) {
5473 int level = ndr_push_get_switch_value(ndr, r);
5474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5497 if (ndr_flags & NDR_BUFFERS) {
5498 int level = ndr_push_get_switch_value(ndr, r);
5502 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5508 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5514 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5520 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5529 return NDR_ERR_SUCCESS;
5532 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5536 TALLOC_CTX *_mem_save_info1_0;
5537 TALLOC_CTX *_mem_save_info2_0;
5538 TALLOC_CTX *_mem_save_info3_0;
5539 TALLOC_CTX *_mem_save_info4_0;
5540 level = ndr_pull_get_switch_value(ndr, r);
5541 if (ndr_flags & NDR_SCALARS) {
5542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5543 if (_level != level) {
5544 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5548 uint32_t _ptr_info1;
5549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5551 NDR_PULL_ALLOC(ndr, r->info1);
5558 uint32_t _ptr_info2;
5559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5561 NDR_PULL_ALLOC(ndr, r->info2);
5568 uint32_t _ptr_info3;
5569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5571 NDR_PULL_ALLOC(ndr, r->info3);
5578 uint32_t _ptr_info4;
5579 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5581 NDR_PULL_ALLOC(ndr, r->info4);
5592 if (ndr_flags & NDR_BUFFERS) {
5596 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5597 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5598 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5605 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5606 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5607 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5614 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5615 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5616 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5623 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5624 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5625 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5635 return NDR_ERR_SUCCESS;
5638 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5641 level = ndr_print_get_switch_value(ndr, r);
5642 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5645 ndr_print_ptr(ndr, "info1", r->info1);
5648 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5654 ndr_print_ptr(ndr, "info2", r->info2);
5657 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5663 ndr_print_ptr(ndr, "info3", r->info3);
5666 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5672 ndr_print_ptr(ndr, "info4", r->info4);
5675 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5686 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5688 if (ndr_flags & NDR_SCALARS) {
5689 NDR_CHECK(ndr_push_align(ndr, 4));
5690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5691 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5692 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5694 if (ndr_flags & NDR_BUFFERS) {
5695 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5697 return NDR_ERR_SUCCESS;
5700 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5702 if (ndr_flags & NDR_SCALARS) {
5703 NDR_CHECK(ndr_pull_align(ndr, 4));
5704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5705 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5706 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5708 if (ndr_flags & NDR_BUFFERS) {
5709 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5711 return NDR_ERR_SUCCESS;
5714 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5716 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5718 ndr_print_uint32(ndr, "level", r->level);
5719 ndr_print_set_switch_value(ndr, &r->info, r->level);
5720 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5724 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5727 return NDR_ERR_SUCCESS;
5730 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5735 return NDR_ERR_SUCCESS;
5738 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5740 const char *val = NULL;
5743 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5744 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5745 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5746 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5747 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5748 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5749 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5750 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5751 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5753 ndr_print_enum(ndr, name, "ENUM", val, r);
5756 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5759 return NDR_ERR_SUCCESS;
5762 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5767 return NDR_ERR_SUCCESS;
5770 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5772 const char *val = NULL;
5775 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5776 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5777 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5778 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5779 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5781 ndr_print_enum(ndr, name, "ENUM", val, r);
5784 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5786 if (ndr_flags & NDR_SCALARS) {
5787 NDR_CHECK(ndr_push_align(ndr, 4));
5788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5793 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5805 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5808 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5812 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5813 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5818 if (ndr_flags & NDR_BUFFERS) {
5819 if (r->servername) {
5820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5823 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5825 if (r->printername) {
5826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5832 return NDR_ERR_SUCCESS;
5835 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5837 uint32_t _ptr_servername;
5838 TALLOC_CTX *_mem_save_servername_0;
5839 uint32_t _ptr_printername;
5840 TALLOC_CTX *_mem_save_printername_0;
5841 if (ndr_flags & NDR_SCALARS) {
5842 NDR_CHECK(ndr_pull_align(ndr, 4));
5843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5844 if (_ptr_servername) {
5845 NDR_PULL_ALLOC(ndr, r->servername);
5847 r->servername = NULL;
5849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5850 if (_ptr_printername) {
5851 NDR_PULL_ALLOC(ndr, r->printername);
5853 r->printername = NULL;
5855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5858 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5870 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5873 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5877 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5878 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5883 if (ndr_flags & NDR_BUFFERS) {
5884 if (r->servername) {
5885 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5886 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5887 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5888 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5889 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5890 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));
5892 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5893 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5896 if (r->printername) {
5897 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5898 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5899 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5900 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5901 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5902 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));
5904 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5905 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5909 return NDR_ERR_SUCCESS;
5912 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5914 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5916 ndr_print_ptr(ndr, "servername", r->servername);
5918 if (r->servername) {
5919 ndr_print_string(ndr, "servername", r->servername);
5922 ndr_print_ptr(ndr, "printername", r->printername);
5924 if (r->printername) {
5925 ndr_print_string(ndr, "printername", r->printername);
5928 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5929 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5930 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5931 ndr_print_spoolss_Time(ndr, "time", &r->time);
5932 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5933 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5934 ndr_print_uint32(ndr, "version", r->version);
5935 ndr_print_uint32(ndr, "free_build", r->free_build);
5936 ndr_print_uint32(ndr, "spooling", r->spooling);
5937 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5938 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5939 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5940 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5941 ndr_print_uint32(ndr, "job_error", r->job_error);
5942 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5943 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5944 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5945 ndr_print_uint32(ndr, "change_id", r->change_id);
5946 ndr_print_WERROR(ndr, "last_error", r->last_error);
5947 ndr_print_uint32(ndr, "status", r->status);
5948 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
5949 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
5950 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
5951 ndr_print_uint16(ndr, "processor_level", r->processor_level);
5952 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
5953 ndr_print_uint32(ndr, "reserved2", r->reserved2);
5954 ndr_print_uint32(ndr, "reserved3", r->reserved3);
5958 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
5960 if (ndr_flags & NDR_SCALARS) {
5961 NDR_CHECK(ndr_push_align(ndr, 4));
5962 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
5963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
5964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
5965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
5967 if (ndr_flags & NDR_BUFFERS) {
5969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5972 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5974 if (r->description) {
5975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5978 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5984 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5987 return NDR_ERR_SUCCESS;
5990 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
5993 TALLOC_CTX *_mem_save_name_0;
5994 uint32_t _ptr_description;
5995 TALLOC_CTX *_mem_save_description_0;
5996 uint32_t _ptr_comment;
5997 TALLOC_CTX *_mem_save_comment_0;
5998 if (ndr_flags & NDR_SCALARS) {
5999 NDR_CHECK(ndr_pull_align(ndr, 4));
6000 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
6001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6003 NDR_PULL_ALLOC(ndr, r->name);
6007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6008 if (_ptr_description) {
6009 NDR_PULL_ALLOC(ndr, r->description);
6011 r->description = NULL;
6013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6015 NDR_PULL_ALLOC(ndr, r->comment);
6020 if (ndr_flags & NDR_BUFFERS) {
6022 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6023 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6024 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6025 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6026 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6027 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));
6029 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6033 if (r->description) {
6034 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6035 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6036 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6037 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6038 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6039 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));
6041 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6042 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6046 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6047 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6048 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6049 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6050 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6051 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));
6053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6058 return NDR_ERR_SUCCESS;
6061 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6063 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6065 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6066 ndr_print_ptr(ndr, "name", r->name);
6069 ndr_print_string(ndr, "name", r->name);
6072 ndr_print_ptr(ndr, "description", r->description);
6074 if (r->description) {
6075 ndr_print_string(ndr, "description", r->description);
6078 ndr_print_ptr(ndr, "comment", r->comment);
6081 ndr_print_string(ndr, "comment", r->comment);
6087 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6089 if (ndr_flags & NDR_SCALARS) {
6090 NDR_CHECK(ndr_push_align(ndr, 4));
6091 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6104 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6109 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6113 if (ndr_flags & NDR_BUFFERS) {
6114 if (r->servername) {
6115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6118 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6120 if (r->printername) {
6121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6130 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6136 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6138 if (r->drivername) {
6139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6142 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6148 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6154 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6158 struct ndr_push *_ndr_devmode;
6159 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6160 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6161 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6168 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6170 if (r->printprocessor) {
6171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6174 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6182 if (r->parameters) {
6183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6186 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6190 struct ndr_push *_ndr_secdesc;
6191 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6192 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6193 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6197 return NDR_ERR_SUCCESS;
6200 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6202 uint32_t _ptr_servername;
6203 TALLOC_CTX *_mem_save_servername_0;
6204 uint32_t _ptr_printername;
6205 TALLOC_CTX *_mem_save_printername_0;
6206 uint32_t _ptr_sharename;
6207 TALLOC_CTX *_mem_save_sharename_0;
6208 uint32_t _ptr_portname;
6209 TALLOC_CTX *_mem_save_portname_0;
6210 uint32_t _ptr_drivername;
6211 TALLOC_CTX *_mem_save_drivername_0;
6212 uint32_t _ptr_comment;
6213 TALLOC_CTX *_mem_save_comment_0;
6214 uint32_t _ptr_location;
6215 TALLOC_CTX *_mem_save_location_0;
6216 uint32_t _ptr_devmode;
6217 TALLOC_CTX *_mem_save_devmode_0;
6218 uint32_t _ptr_sepfile;
6219 TALLOC_CTX *_mem_save_sepfile_0;
6220 uint32_t _ptr_printprocessor;
6221 TALLOC_CTX *_mem_save_printprocessor_0;
6222 uint32_t _ptr_datatype;
6223 TALLOC_CTX *_mem_save_datatype_0;
6224 uint32_t _ptr_parameters;
6225 TALLOC_CTX *_mem_save_parameters_0;
6226 uint32_t _ptr_secdesc;
6227 TALLOC_CTX *_mem_save_secdesc_0;
6228 if (ndr_flags & NDR_SCALARS) {
6229 NDR_CHECK(ndr_pull_align(ndr, 4));
6230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6231 if (_ptr_servername) {
6232 NDR_PULL_ALLOC(ndr, r->servername);
6234 r->servername = NULL;
6236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6237 if (_ptr_printername) {
6238 NDR_PULL_ALLOC(ndr, r->printername);
6240 r->printername = NULL;
6242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6243 if (_ptr_sharename) {
6244 NDR_PULL_ALLOC(ndr, r->sharename);
6246 r->sharename = NULL;
6248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6249 if (_ptr_portname) {
6250 NDR_PULL_ALLOC(ndr, r->portname);
6254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6255 if (_ptr_drivername) {
6256 NDR_PULL_ALLOC(ndr, r->drivername);
6258 r->drivername = NULL;
6260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6262 NDR_PULL_ALLOC(ndr, r->comment);
6266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6267 if (_ptr_location) {
6268 NDR_PULL_ALLOC(ndr, r->location);
6272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6274 NDR_PULL_ALLOC(ndr, r->devmode);
6278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6280 NDR_PULL_ALLOC(ndr, r->sepfile);
6284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6285 if (_ptr_printprocessor) {
6286 NDR_PULL_ALLOC(ndr, r->printprocessor);
6288 r->printprocessor = NULL;
6290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6291 if (_ptr_datatype) {
6292 NDR_PULL_ALLOC(ndr, r->datatype);
6296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6297 if (_ptr_parameters) {
6298 NDR_PULL_ALLOC(ndr, r->parameters);
6300 r->parameters = NULL;
6302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6304 NDR_PULL_ALLOC(ndr, r->secdesc);
6308 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6310 if (r->priority > 99) {
6311 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6316 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6320 if (ndr_flags & NDR_BUFFERS) {
6321 if (r->servername) {
6322 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6323 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6324 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6325 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6326 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6327 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));
6329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6330 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6333 if (r->printername) {
6334 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6335 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6336 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6337 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6338 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6339 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));
6341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6346 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6347 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6349 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6350 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6351 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));
6353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6358 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6359 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6360 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6361 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6362 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6363 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));
6365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6369 if (r->drivername) {
6370 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6371 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6372 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6373 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6374 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6375 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));
6377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6382 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6383 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6384 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6385 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6386 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6387 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));
6389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6394 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6395 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6396 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6397 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6398 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6399 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));
6401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6406 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6407 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6409 struct ndr_pull *_ndr_devmode;
6410 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6411 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6412 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6417 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6418 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6419 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6420 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6421 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6422 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));
6424 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6425 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6428 if (r->printprocessor) {
6429 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6430 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6431 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6432 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6433 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6434 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));
6436 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6437 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6441 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6442 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6443 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6444 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6445 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6446 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));
6448 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6449 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6452 if (r->parameters) {
6453 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6454 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6455 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6456 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6457 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6458 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));
6460 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6461 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6465 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6466 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6468 struct ndr_pull *_ndr_secdesc;
6469 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6470 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6471 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6476 return NDR_ERR_SUCCESS;
6479 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6481 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6483 ndr_print_ptr(ndr, "servername", r->servername);
6485 if (r->servername) {
6486 ndr_print_string(ndr, "servername", r->servername);
6489 ndr_print_ptr(ndr, "printername", r->printername);
6491 if (r->printername) {
6492 ndr_print_string(ndr, "printername", r->printername);
6495 ndr_print_ptr(ndr, "sharename", r->sharename);
6498 ndr_print_string(ndr, "sharename", r->sharename);
6501 ndr_print_ptr(ndr, "portname", r->portname);
6504 ndr_print_string(ndr, "portname", r->portname);
6507 ndr_print_ptr(ndr, "drivername", r->drivername);
6509 if (r->drivername) {
6510 ndr_print_string(ndr, "drivername", r->drivername);
6513 ndr_print_ptr(ndr, "comment", r->comment);
6516 ndr_print_string(ndr, "comment", r->comment);
6519 ndr_print_ptr(ndr, "location", r->location);
6522 ndr_print_string(ndr, "location", r->location);
6525 ndr_print_ptr(ndr, "devmode", r->devmode);
6528 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6531 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6534 ndr_print_string(ndr, "sepfile", r->sepfile);
6537 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6539 if (r->printprocessor) {
6540 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6543 ndr_print_ptr(ndr, "datatype", r->datatype);
6546 ndr_print_string(ndr, "datatype", r->datatype);
6549 ndr_print_ptr(ndr, "parameters", r->parameters);
6551 if (r->parameters) {
6552 ndr_print_string(ndr, "parameters", r->parameters);
6555 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6558 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6561 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6562 ndr_print_uint32(ndr, "priority", r->priority);
6563 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6564 ndr_print_uint32(ndr, "starttime", r->starttime);
6565 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6566 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6567 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6568 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6572 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6574 if (ndr_flags & NDR_SCALARS) {
6575 NDR_CHECK(ndr_push_align(ndr, 4));
6576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6578 if (ndr_flags & NDR_BUFFERS) {
6580 return NDR_ERR_SUCCESS;
6583 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6585 if (ndr_flags & NDR_SCALARS) {
6586 NDR_CHECK(ndr_pull_align(ndr, 4));
6587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6589 if (ndr_flags & NDR_BUFFERS) {
6591 return NDR_ERR_SUCCESS;
6594 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6596 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6598 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6602 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6604 if (ndr_flags & NDR_SCALARS) {
6605 NDR_CHECK(ndr_push_align(ndr, 4));
6606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6608 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6610 if (ndr_flags & NDR_BUFFERS) {
6611 if (r->printername) {
6612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6615 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6617 if (r->servername) {
6618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6621 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6624 return NDR_ERR_SUCCESS;
6627 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6629 uint32_t _ptr_printername;
6630 TALLOC_CTX *_mem_save_printername_0;
6631 uint32_t _ptr_servername;
6632 TALLOC_CTX *_mem_save_servername_0;
6633 if (ndr_flags & NDR_SCALARS) {
6634 NDR_CHECK(ndr_pull_align(ndr, 4));
6635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6636 if (_ptr_printername) {
6637 NDR_PULL_ALLOC(ndr, r->printername);
6639 r->printername = NULL;
6641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6642 if (_ptr_servername) {
6643 NDR_PULL_ALLOC(ndr, r->servername);
6645 r->servername = NULL;
6647 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6649 if (ndr_flags & NDR_BUFFERS) {
6650 if (r->printername) {
6651 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6652 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6653 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6654 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6655 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6656 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));
6658 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6659 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6662 if (r->servername) {
6663 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6664 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6665 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6666 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6667 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6668 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));
6670 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6671 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6675 return NDR_ERR_SUCCESS;
6678 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6680 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6682 ndr_print_ptr(ndr, "printername", r->printername);
6684 if (r->printername) {
6685 ndr_print_string(ndr, "printername", r->printername);
6688 ndr_print_ptr(ndr, "servername", r->servername);
6690 if (r->servername) {
6691 ndr_print_string(ndr, "servername", r->servername);
6694 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6698 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6700 if (ndr_flags & NDR_SCALARS) {
6701 NDR_CHECK(ndr_push_align(ndr, 4));
6702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6704 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6708 if (ndr_flags & NDR_BUFFERS) {
6709 if (r->printername) {
6710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6722 return NDR_ERR_SUCCESS;
6725 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6727 uint32_t _ptr_printername;
6728 TALLOC_CTX *_mem_save_printername_0;
6729 uint32_t _ptr_portname;
6730 TALLOC_CTX *_mem_save_portname_0;
6731 if (ndr_flags & NDR_SCALARS) {
6732 NDR_CHECK(ndr_pull_align(ndr, 4));
6733 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6734 if (_ptr_printername) {
6735 NDR_PULL_ALLOC(ndr, r->printername);
6737 r->printername = NULL;
6739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6740 if (_ptr_portname) {
6741 NDR_PULL_ALLOC(ndr, r->portname);
6745 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6749 if (ndr_flags & NDR_BUFFERS) {
6750 if (r->printername) {
6751 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6752 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6753 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6754 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6755 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6756 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));
6758 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6759 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6763 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6764 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6765 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6766 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6767 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6768 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));
6770 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6771 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6775 return NDR_ERR_SUCCESS;
6778 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6780 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6782 ndr_print_ptr(ndr, "printername", r->printername);
6784 if (r->printername) {
6785 ndr_print_string(ndr, "printername", r->printername);
6788 ndr_print_ptr(ndr, "portname", r->portname);
6791 ndr_print_string(ndr, "portname", r->portname);
6794 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6795 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6796 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6800 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6802 if (ndr_flags & NDR_SCALARS) {
6803 NDR_CHECK(ndr_push_align(ndr, 4));
6804 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6806 if (ndr_flags & NDR_BUFFERS) {
6808 return NDR_ERR_SUCCESS;
6811 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6813 if (ndr_flags & NDR_SCALARS) {
6814 NDR_CHECK(ndr_pull_align(ndr, 4));
6815 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6817 if (ndr_flags & NDR_BUFFERS) {
6819 return NDR_ERR_SUCCESS;
6822 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6824 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6826 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6830 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6832 if (ndr_flags & NDR_SCALARS) {
6833 NDR_CHECK(ndr_push_align(ndr, 4));
6834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6835 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6837 if (ndr_flags & NDR_BUFFERS) {
6839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6845 return NDR_ERR_SUCCESS;
6848 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6851 TALLOC_CTX *_mem_save_guid_0;
6852 if (ndr_flags & NDR_SCALARS) {
6853 NDR_CHECK(ndr_pull_align(ndr, 4));
6854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6856 NDR_PULL_ALLOC(ndr, r->guid);
6860 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6862 if (ndr_flags & NDR_BUFFERS) {
6864 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6865 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6866 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6867 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6868 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6869 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));
6871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6876 return NDR_ERR_SUCCESS;
6879 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6881 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6883 ndr_print_ptr(ndr, "guid", r->guid);
6886 ndr_print_string(ndr, "guid", r->guid);
6889 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6893 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6895 if (ndr_flags & NDR_SCALARS) {
6896 int level = ndr_push_get_switch_value(ndr, r);
6897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6920 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6924 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6928 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6932 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6936 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6944 if (ndr_flags & NDR_BUFFERS) {
6945 int level = ndr_push_get_switch_value(ndr, r);
6949 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
6955 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6961 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6967 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
6973 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6979 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
6985 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
6991 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
6997 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7003 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7012 return NDR_ERR_SUCCESS;
7015 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7019 TALLOC_CTX *_mem_save_info0_0;
7020 TALLOC_CTX *_mem_save_info1_0;
7021 TALLOC_CTX *_mem_save_info2_0;
7022 TALLOC_CTX *_mem_save_info3_0;
7023 TALLOC_CTX *_mem_save_info4_0;
7024 TALLOC_CTX *_mem_save_info5_0;
7025 TALLOC_CTX *_mem_save_info6_0;
7026 TALLOC_CTX *_mem_save_info7_0;
7027 TALLOC_CTX *_mem_save_info8_0;
7028 TALLOC_CTX *_mem_save_info9_0;
7029 level = ndr_pull_get_switch_value(ndr, r);
7030 if (ndr_flags & NDR_SCALARS) {
7031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7032 if (_level != level) {
7033 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7037 uint32_t _ptr_info0;
7038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7040 NDR_PULL_ALLOC(ndr, r->info0);
7047 uint32_t _ptr_info1;
7048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7050 NDR_PULL_ALLOC(ndr, r->info1);
7057 uint32_t _ptr_info2;
7058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7060 NDR_PULL_ALLOC(ndr, r->info2);
7067 uint32_t _ptr_info3;
7068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7070 NDR_PULL_ALLOC(ndr, r->info3);
7077 uint32_t _ptr_info4;
7078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7080 NDR_PULL_ALLOC(ndr, r->info4);
7087 uint32_t _ptr_info5;
7088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7090 NDR_PULL_ALLOC(ndr, r->info5);
7097 uint32_t _ptr_info6;
7098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7100 NDR_PULL_ALLOC(ndr, r->info6);
7107 uint32_t _ptr_info7;
7108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7110 NDR_PULL_ALLOC(ndr, r->info7);
7117 uint32_t _ptr_info8;
7118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7120 NDR_PULL_ALLOC(ndr, r->info8);
7127 uint32_t _ptr_info9;
7128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7130 NDR_PULL_ALLOC(ndr, r->info9);
7141 if (ndr_flags & NDR_BUFFERS) {
7145 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7146 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7147 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7154 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7155 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7156 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7163 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7164 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7165 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7172 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7173 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7174 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7181 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7182 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7183 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7190 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7191 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7192 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7199 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7200 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7201 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7208 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7209 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7210 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7217 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7218 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7219 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7226 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7227 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7228 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7238 return NDR_ERR_SUCCESS;
7241 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7244 level = ndr_print_get_switch_value(ndr, r);
7245 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7248 ndr_print_ptr(ndr, "info0", r->info0);
7251 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7257 ndr_print_ptr(ndr, "info1", r->info1);
7260 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7266 ndr_print_ptr(ndr, "info2", r->info2);
7269 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7275 ndr_print_ptr(ndr, "info3", r->info3);
7278 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7284 ndr_print_ptr(ndr, "info4", r->info4);
7287 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7293 ndr_print_ptr(ndr, "info5", r->info5);
7296 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7302 ndr_print_ptr(ndr, "info6", r->info6);
7305 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7311 ndr_print_ptr(ndr, "info7", r->info7);
7314 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7320 ndr_print_ptr(ndr, "info8", r->info8);
7323 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7329 ndr_print_ptr(ndr, "info9", r->info9);
7332 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7343 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7345 if (ndr_flags & NDR_SCALARS) {
7346 NDR_CHECK(ndr_push_align(ndr, 4));
7347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7348 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7349 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7351 if (ndr_flags & NDR_BUFFERS) {
7352 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7354 return NDR_ERR_SUCCESS;
7357 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7359 if (ndr_flags & NDR_SCALARS) {
7360 NDR_CHECK(ndr_pull_align(ndr, 4));
7361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7362 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7363 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7365 if (ndr_flags & NDR_BUFFERS) {
7366 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7368 return NDR_ERR_SUCCESS;
7371 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7373 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7375 ndr_print_uint32(ndr, "level", r->level);
7376 ndr_print_set_switch_value(ndr, &r->info, r->level);
7377 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7381 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7383 if (ndr_flags & NDR_SCALARS) {
7384 NDR_CHECK(ndr_push_align(ndr, 4));
7385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7387 uint32_t _flags_save_string_array = ndr->flags;
7388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7389 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7390 ndr->flags = _flags_save_string_array;
7393 if (ndr_flags & NDR_BUFFERS) {
7395 return NDR_ERR_SUCCESS;
7398 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7400 if (ndr_flags & NDR_SCALARS) {
7401 NDR_CHECK(ndr_pull_align(ndr, 4));
7402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7404 uint32_t _flags_save_string_array = ndr->flags;
7405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7406 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7407 ndr->flags = _flags_save_string_array;
7410 if (ndr_flags & NDR_BUFFERS) {
7412 return NDR_ERR_SUCCESS;
7415 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7417 ndr_print_struct(ndr, name, "spoolss_StringArray");
7419 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);
7420 ndr_print_string_array(ndr, "string", r->string);
7424 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7426 if (ndr_flags & NDR_SCALARS) {
7427 NDR_CHECK(ndr_push_align(ndr, 4));
7428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7430 if (ndr_flags & NDR_BUFFERS) {
7431 if (r->driver_name) {
7432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7438 return NDR_ERR_SUCCESS;
7441 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7443 uint32_t _ptr_driver_name;
7444 TALLOC_CTX *_mem_save_driver_name_0;
7445 if (ndr_flags & NDR_SCALARS) {
7446 NDR_CHECK(ndr_pull_align(ndr, 4));
7447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7448 if (_ptr_driver_name) {
7449 NDR_PULL_ALLOC(ndr, r->driver_name);
7451 r->driver_name = NULL;
7454 if (ndr_flags & NDR_BUFFERS) {
7455 if (r->driver_name) {
7456 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7457 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7458 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7459 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7460 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7461 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));
7463 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7464 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7468 return NDR_ERR_SUCCESS;
7471 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7473 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7475 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7477 if (r->driver_name) {
7478 ndr_print_string(ndr, "driver_name", r->driver_name);
7484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7487 return NDR_ERR_SUCCESS;
7490 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7495 return NDR_ERR_SUCCESS;
7498 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7500 const char *val = NULL;
7503 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7504 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7505 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7506 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7508 ndr_print_enum(ndr, name, "ENUM", val, r);
7511 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7513 if (ndr_flags & NDR_SCALARS) {
7514 NDR_CHECK(ndr_push_align(ndr, 4));
7515 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7519 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7522 if (ndr_flags & NDR_BUFFERS) {
7523 if (r->driver_name) {
7524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7529 if (r->architecture) {
7530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7533 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7535 if (r->driver_path) {
7536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7539 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7545 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7547 if (r->config_file) {
7548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7551 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7554 return NDR_ERR_SUCCESS;
7557 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7559 uint32_t _ptr_driver_name;
7560 TALLOC_CTX *_mem_save_driver_name_0;
7561 uint32_t _ptr_architecture;
7562 TALLOC_CTX *_mem_save_architecture_0;
7563 uint32_t _ptr_driver_path;
7564 TALLOC_CTX *_mem_save_driver_path_0;
7565 uint32_t _ptr_data_file;
7566 TALLOC_CTX *_mem_save_data_file_0;
7567 uint32_t _ptr_config_file;
7568 TALLOC_CTX *_mem_save_config_file_0;
7569 if (ndr_flags & NDR_SCALARS) {
7570 NDR_CHECK(ndr_pull_align(ndr, 4));
7571 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7573 if (_ptr_driver_name) {
7574 NDR_PULL_ALLOC(ndr, r->driver_name);
7576 r->driver_name = NULL;
7578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7579 if (_ptr_architecture) {
7580 NDR_PULL_ALLOC(ndr, r->architecture);
7582 r->architecture = NULL;
7584 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7585 if (_ptr_driver_path) {
7586 NDR_PULL_ALLOC(ndr, r->driver_path);
7588 r->driver_path = NULL;
7590 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7591 if (_ptr_data_file) {
7592 NDR_PULL_ALLOC(ndr, r->data_file);
7594 r->data_file = NULL;
7596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7597 if (_ptr_config_file) {
7598 NDR_PULL_ALLOC(ndr, r->config_file);
7600 r->config_file = NULL;
7603 if (ndr_flags & NDR_BUFFERS) {
7604 if (r->driver_name) {
7605 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7606 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7607 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7608 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7609 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7610 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));
7612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7616 if (r->architecture) {
7617 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7618 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7619 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7620 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7621 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7622 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));
7624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7628 if (r->driver_path) {
7629 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7630 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7631 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7632 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7633 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7634 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));
7636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7637 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7641 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7642 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7643 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7644 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7645 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7646 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));
7648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7652 if (r->config_file) {
7653 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7654 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7655 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7656 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7657 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7658 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));
7660 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7665 return NDR_ERR_SUCCESS;
7668 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7670 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7672 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7673 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7675 if (r->driver_name) {
7676 ndr_print_string(ndr, "driver_name", r->driver_name);
7679 ndr_print_ptr(ndr, "architecture", r->architecture);
7681 if (r->architecture) {
7682 ndr_print_string(ndr, "architecture", r->architecture);
7685 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7687 if (r->driver_path) {
7688 ndr_print_string(ndr, "driver_path", r->driver_path);
7691 ndr_print_ptr(ndr, "data_file", r->data_file);
7694 ndr_print_string(ndr, "data_file", r->data_file);
7697 ndr_print_ptr(ndr, "config_file", r->config_file);
7699 if (r->config_file) {
7700 ndr_print_string(ndr, "config_file", r->config_file);
7706 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7708 if (ndr_flags & NDR_SCALARS) {
7709 NDR_CHECK(ndr_push_align(ndr, 4));
7710 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7716 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7720 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7722 if (ndr_flags & NDR_BUFFERS) {
7723 if (r->driver_name) {
7724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7727 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7729 if (r->architecture) {
7730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7735 if (r->driver_path) {
7736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7745 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7747 if (r->config_file) {
7748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7751 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7757 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7759 if (r->monitor_name) {
7760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7763 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7765 if (r->default_datatype) {
7766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7769 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7771 if (r->dependent_files) {
7772 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7775 return NDR_ERR_SUCCESS;
7778 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7780 uint32_t _ptr_driver_name;
7781 TALLOC_CTX *_mem_save_driver_name_0;
7782 uint32_t _ptr_architecture;
7783 TALLOC_CTX *_mem_save_architecture_0;
7784 uint32_t _ptr_driver_path;
7785 TALLOC_CTX *_mem_save_driver_path_0;
7786 uint32_t _ptr_data_file;
7787 TALLOC_CTX *_mem_save_data_file_0;
7788 uint32_t _ptr_config_file;
7789 TALLOC_CTX *_mem_save_config_file_0;
7790 uint32_t _ptr_help_file;
7791 TALLOC_CTX *_mem_save_help_file_0;
7792 uint32_t _ptr_monitor_name;
7793 TALLOC_CTX *_mem_save_monitor_name_0;
7794 uint32_t _ptr_default_datatype;
7795 TALLOC_CTX *_mem_save_default_datatype_0;
7796 uint32_t _ptr_dependent_files;
7797 TALLOC_CTX *_mem_save_dependent_files_0;
7798 if (ndr_flags & NDR_SCALARS) {
7799 NDR_CHECK(ndr_pull_align(ndr, 4));
7800 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7802 if (_ptr_driver_name) {
7803 NDR_PULL_ALLOC(ndr, r->driver_name);
7805 r->driver_name = NULL;
7807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7808 if (_ptr_architecture) {
7809 NDR_PULL_ALLOC(ndr, r->architecture);
7811 r->architecture = NULL;
7813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7814 if (_ptr_driver_path) {
7815 NDR_PULL_ALLOC(ndr, r->driver_path);
7817 r->driver_path = NULL;
7819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7820 if (_ptr_data_file) {
7821 NDR_PULL_ALLOC(ndr, r->data_file);
7823 r->data_file = NULL;
7825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7826 if (_ptr_config_file) {
7827 NDR_PULL_ALLOC(ndr, r->config_file);
7829 r->config_file = NULL;
7831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7832 if (_ptr_help_file) {
7833 NDR_PULL_ALLOC(ndr, r->help_file);
7835 r->help_file = NULL;
7837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7838 if (_ptr_monitor_name) {
7839 NDR_PULL_ALLOC(ndr, r->monitor_name);
7841 r->monitor_name = NULL;
7843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7844 if (_ptr_default_datatype) {
7845 NDR_PULL_ALLOC(ndr, r->default_datatype);
7847 r->default_datatype = NULL;
7849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7851 if (_ptr_dependent_files) {
7852 NDR_PULL_ALLOC(ndr, r->dependent_files);
7854 r->dependent_files = NULL;
7857 if (ndr_flags & NDR_BUFFERS) {
7858 if (r->driver_name) {
7859 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7860 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7861 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7862 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7863 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7864 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));
7866 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7870 if (r->architecture) {
7871 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7872 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7873 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7874 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7875 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7876 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));
7878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7879 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7882 if (r->driver_path) {
7883 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7884 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7885 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7886 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7887 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7888 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));
7890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7895 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7896 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7897 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7898 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7899 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7900 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));
7902 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7906 if (r->config_file) {
7907 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7908 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7909 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7910 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7911 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7912 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));
7914 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7919 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7920 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7921 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7922 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7923 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7924 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));
7926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7930 if (r->monitor_name) {
7931 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7932 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7933 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7934 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7935 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7936 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));
7938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7942 if (r->default_datatype) {
7943 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7944 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7945 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7946 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7947 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7948 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));
7950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
7951 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
7952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7954 if (r->dependent_files) {
7955 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7956 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7957 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7961 return NDR_ERR_SUCCESS;
7964 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
7966 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
7968 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7969 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7971 if (r->driver_name) {
7972 ndr_print_string(ndr, "driver_name", r->driver_name);
7975 ndr_print_ptr(ndr, "architecture", r->architecture);
7977 if (r->architecture) {
7978 ndr_print_string(ndr, "architecture", r->architecture);
7981 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7983 if (r->driver_path) {
7984 ndr_print_string(ndr, "driver_path", r->driver_path);
7987 ndr_print_ptr(ndr, "data_file", r->data_file);
7990 ndr_print_string(ndr, "data_file", r->data_file);
7993 ndr_print_ptr(ndr, "config_file", r->config_file);
7995 if (r->config_file) {
7996 ndr_print_string(ndr, "config_file", r->config_file);
7999 ndr_print_ptr(ndr, "help_file", r->help_file);
8002 ndr_print_string(ndr, "help_file", r->help_file);
8005 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8007 if (r->monitor_name) {
8008 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8011 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8013 if (r->default_datatype) {
8014 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8017 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);
8018 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8020 if (r->dependent_files) {
8021 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8027 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8029 if (ndr_flags & NDR_SCALARS) {
8030 NDR_CHECK(ndr_push_align(ndr, 4));
8031 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8045 if (ndr_flags & NDR_BUFFERS) {
8046 if (r->driver_name) {
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8052 if (r->architecture) {
8053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8058 if (r->driver_path) {
8059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8070 if (r->config_file) {
8071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8074 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8082 if (r->monitor_name) {
8083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8086 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8088 if (r->default_datatype) {
8089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8092 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8094 if (r->dependent_files) {
8095 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8097 if (r->previous_names) {
8098 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8101 return NDR_ERR_SUCCESS;
8104 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8106 uint32_t _ptr_driver_name;
8107 TALLOC_CTX *_mem_save_driver_name_0;
8108 uint32_t _ptr_architecture;
8109 TALLOC_CTX *_mem_save_architecture_0;
8110 uint32_t _ptr_driver_path;
8111 TALLOC_CTX *_mem_save_driver_path_0;
8112 uint32_t _ptr_data_file;
8113 TALLOC_CTX *_mem_save_data_file_0;
8114 uint32_t _ptr_config_file;
8115 TALLOC_CTX *_mem_save_config_file_0;
8116 uint32_t _ptr_help_file;
8117 TALLOC_CTX *_mem_save_help_file_0;
8118 uint32_t _ptr_monitor_name;
8119 TALLOC_CTX *_mem_save_monitor_name_0;
8120 uint32_t _ptr_default_datatype;
8121 TALLOC_CTX *_mem_save_default_datatype_0;
8122 uint32_t _ptr_dependent_files;
8123 TALLOC_CTX *_mem_save_dependent_files_0;
8124 uint32_t _ptr_previous_names;
8125 TALLOC_CTX *_mem_save_previous_names_0;
8126 if (ndr_flags & NDR_SCALARS) {
8127 NDR_CHECK(ndr_pull_align(ndr, 4));
8128 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8130 if (_ptr_driver_name) {
8131 NDR_PULL_ALLOC(ndr, r->driver_name);
8133 r->driver_name = NULL;
8135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8136 if (_ptr_architecture) {
8137 NDR_PULL_ALLOC(ndr, r->architecture);
8139 r->architecture = NULL;
8141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8142 if (_ptr_driver_path) {
8143 NDR_PULL_ALLOC(ndr, r->driver_path);
8145 r->driver_path = NULL;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8148 if (_ptr_data_file) {
8149 NDR_PULL_ALLOC(ndr, r->data_file);
8151 r->data_file = NULL;
8153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8154 if (_ptr_config_file) {
8155 NDR_PULL_ALLOC(ndr, r->config_file);
8157 r->config_file = NULL;
8159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8160 if (_ptr_help_file) {
8161 NDR_PULL_ALLOC(ndr, r->help_file);
8163 r->help_file = NULL;
8165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8166 if (_ptr_monitor_name) {
8167 NDR_PULL_ALLOC(ndr, r->monitor_name);
8169 r->monitor_name = NULL;
8171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8172 if (_ptr_default_datatype) {
8173 NDR_PULL_ALLOC(ndr, r->default_datatype);
8175 r->default_datatype = NULL;
8177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8179 if (_ptr_dependent_files) {
8180 NDR_PULL_ALLOC(ndr, r->dependent_files);
8182 r->dependent_files = NULL;
8184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8186 if (_ptr_previous_names) {
8187 NDR_PULL_ALLOC(ndr, r->previous_names);
8189 r->previous_names = NULL;
8192 if (ndr_flags & NDR_BUFFERS) {
8193 if (r->driver_name) {
8194 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8195 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8197 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8198 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8199 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));
8201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8205 if (r->architecture) {
8206 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8207 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8208 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8209 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8210 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8211 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));
8213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8217 if (r->driver_path) {
8218 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8219 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8220 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8221 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8222 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8223 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));
8225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8230 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8231 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8232 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8233 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8234 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8235 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));
8237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8241 if (r->config_file) {
8242 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8243 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8244 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8245 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8246 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8247 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));
8249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8254 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8255 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8256 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8257 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8258 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8259 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));
8261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8265 if (r->monitor_name) {
8266 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8267 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8268 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8269 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8270 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8271 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));
8273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8277 if (r->default_datatype) {
8278 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8279 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8280 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8281 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8282 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8283 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));
8285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8289 if (r->dependent_files) {
8290 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8291 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8292 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8295 if (r->previous_names) {
8296 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8297 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8298 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8302 return NDR_ERR_SUCCESS;
8305 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8307 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8309 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8310 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8312 if (r->driver_name) {
8313 ndr_print_string(ndr, "driver_name", r->driver_name);
8316 ndr_print_ptr(ndr, "architecture", r->architecture);
8318 if (r->architecture) {
8319 ndr_print_string(ndr, "architecture", r->architecture);
8322 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8324 if (r->driver_path) {
8325 ndr_print_string(ndr, "driver_path", r->driver_path);
8328 ndr_print_ptr(ndr, "data_file", r->data_file);
8331 ndr_print_string(ndr, "data_file", r->data_file);
8334 ndr_print_ptr(ndr, "config_file", r->config_file);
8336 if (r->config_file) {
8337 ndr_print_string(ndr, "config_file", r->config_file);
8340 ndr_print_ptr(ndr, "help_file", r->help_file);
8343 ndr_print_string(ndr, "help_file", r->help_file);
8346 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8348 if (r->monitor_name) {
8349 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8352 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8354 if (r->default_datatype) {
8355 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8358 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);
8359 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8361 if (r->dependent_files) {
8362 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8365 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);
8366 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8368 if (r->previous_names) {
8369 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8375 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8377 if (ndr_flags & NDR_SCALARS) {
8378 NDR_CHECK(ndr_push_align(ndr, 8));
8379 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8392 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8393 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8399 if (ndr_flags & NDR_BUFFERS) {
8400 if (r->driver_name) {
8401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8404 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8406 if (r->architecture) {
8407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8410 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8412 if (r->driver_path) {
8413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8416 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8422 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8424 if (r->config_file) {
8425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8436 if (r->monitor_name) {
8437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8442 if (r->default_datatype) {
8443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8448 if (r->dependent_files) {
8449 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8451 if (r->previous_names) {
8452 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8454 if (r->manufacturer_name) {
8455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8458 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8460 if (r->manufacturer_url) {
8461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8464 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8466 if (r->hardware_id) {
8467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8470 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8476 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8479 return NDR_ERR_SUCCESS;
8482 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8484 uint32_t _ptr_driver_name;
8485 TALLOC_CTX *_mem_save_driver_name_0;
8486 uint32_t _ptr_architecture;
8487 TALLOC_CTX *_mem_save_architecture_0;
8488 uint32_t _ptr_driver_path;
8489 TALLOC_CTX *_mem_save_driver_path_0;
8490 uint32_t _ptr_data_file;
8491 TALLOC_CTX *_mem_save_data_file_0;
8492 uint32_t _ptr_config_file;
8493 TALLOC_CTX *_mem_save_config_file_0;
8494 uint32_t _ptr_help_file;
8495 TALLOC_CTX *_mem_save_help_file_0;
8496 uint32_t _ptr_monitor_name;
8497 TALLOC_CTX *_mem_save_monitor_name_0;
8498 uint32_t _ptr_default_datatype;
8499 TALLOC_CTX *_mem_save_default_datatype_0;
8500 uint32_t _ptr_dependent_files;
8501 TALLOC_CTX *_mem_save_dependent_files_0;
8502 uint32_t _ptr_previous_names;
8503 TALLOC_CTX *_mem_save_previous_names_0;
8504 uint32_t _ptr_manufacturer_name;
8505 TALLOC_CTX *_mem_save_manufacturer_name_0;
8506 uint32_t _ptr_manufacturer_url;
8507 TALLOC_CTX *_mem_save_manufacturer_url_0;
8508 uint32_t _ptr_hardware_id;
8509 TALLOC_CTX *_mem_save_hardware_id_0;
8510 uint32_t _ptr_provider;
8511 TALLOC_CTX *_mem_save_provider_0;
8512 if (ndr_flags & NDR_SCALARS) {
8513 NDR_CHECK(ndr_pull_align(ndr, 8));
8514 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8515 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8516 if (_ptr_driver_name) {
8517 NDR_PULL_ALLOC(ndr, r->driver_name);
8519 r->driver_name = NULL;
8521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8522 if (_ptr_architecture) {
8523 NDR_PULL_ALLOC(ndr, r->architecture);
8525 r->architecture = NULL;
8527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8528 if (_ptr_driver_path) {
8529 NDR_PULL_ALLOC(ndr, r->driver_path);
8531 r->driver_path = NULL;
8533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8534 if (_ptr_data_file) {
8535 NDR_PULL_ALLOC(ndr, r->data_file);
8537 r->data_file = NULL;
8539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8540 if (_ptr_config_file) {
8541 NDR_PULL_ALLOC(ndr, r->config_file);
8543 r->config_file = NULL;
8545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8546 if (_ptr_help_file) {
8547 NDR_PULL_ALLOC(ndr, r->help_file);
8549 r->help_file = NULL;
8551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8552 if (_ptr_monitor_name) {
8553 NDR_PULL_ALLOC(ndr, r->monitor_name);
8555 r->monitor_name = NULL;
8557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8558 if (_ptr_default_datatype) {
8559 NDR_PULL_ALLOC(ndr, r->default_datatype);
8561 r->default_datatype = NULL;
8563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8565 if (_ptr_dependent_files) {
8566 NDR_PULL_ALLOC(ndr, r->dependent_files);
8568 r->dependent_files = NULL;
8570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8572 if (_ptr_previous_names) {
8573 NDR_PULL_ALLOC(ndr, r->previous_names);
8575 r->previous_names = NULL;
8577 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8578 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8579 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8580 if (_ptr_manufacturer_name) {
8581 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8583 r->manufacturer_name = NULL;
8585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8586 if (_ptr_manufacturer_url) {
8587 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8589 r->manufacturer_url = NULL;
8591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8592 if (_ptr_hardware_id) {
8593 NDR_PULL_ALLOC(ndr, r->hardware_id);
8595 r->hardware_id = NULL;
8597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8598 if (_ptr_provider) {
8599 NDR_PULL_ALLOC(ndr, r->provider);
8604 if (ndr_flags & NDR_BUFFERS) {
8605 if (r->driver_name) {
8606 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8607 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8608 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8609 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8610 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8611 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));
8613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8617 if (r->architecture) {
8618 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8619 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8620 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8621 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8622 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8623 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));
8625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8629 if (r->driver_path) {
8630 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8631 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8632 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8633 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8634 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8635 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));
8637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8642 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8643 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8644 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8645 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8646 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8647 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));
8649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8653 if (r->config_file) {
8654 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8655 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8656 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8657 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8658 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8659 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));
8661 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8662 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8666 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8667 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8668 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8669 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8670 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8671 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));
8673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8677 if (r->monitor_name) {
8678 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8679 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8680 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8681 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8682 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8683 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));
8685 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8686 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8689 if (r->default_datatype) {
8690 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8691 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8692 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8693 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8694 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8695 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));
8697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8698 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8701 if (r->dependent_files) {
8702 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8703 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8704 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8707 if (r->previous_names) {
8708 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8709 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8710 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8713 if (r->manufacturer_name) {
8714 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8715 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8716 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8717 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8718 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8719 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));
8721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8725 if (r->manufacturer_url) {
8726 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8727 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8728 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8729 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8730 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8731 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));
8733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8737 if (r->hardware_id) {
8738 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8739 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8740 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8741 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8742 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8743 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));
8745 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8746 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8750 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8751 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8752 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8753 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8754 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8755 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));
8757 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8762 return NDR_ERR_SUCCESS;
8765 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8767 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8769 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8770 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8772 if (r->driver_name) {
8773 ndr_print_string(ndr, "driver_name", r->driver_name);
8776 ndr_print_ptr(ndr, "architecture", r->architecture);
8778 if (r->architecture) {
8779 ndr_print_string(ndr, "architecture", r->architecture);
8782 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8784 if (r->driver_path) {
8785 ndr_print_string(ndr, "driver_path", r->driver_path);
8788 ndr_print_ptr(ndr, "data_file", r->data_file);
8791 ndr_print_string(ndr, "data_file", r->data_file);
8794 ndr_print_ptr(ndr, "config_file", r->config_file);
8796 if (r->config_file) {
8797 ndr_print_string(ndr, "config_file", r->config_file);
8800 ndr_print_ptr(ndr, "help_file", r->help_file);
8803 ndr_print_string(ndr, "help_file", r->help_file);
8806 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8808 if (r->monitor_name) {
8809 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8812 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8814 if (r->default_datatype) {
8815 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8818 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);
8819 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8821 if (r->dependent_files) {
8822 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8825 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);
8826 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8828 if (r->previous_names) {
8829 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8832 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8833 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8834 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8836 if (r->manufacturer_name) {
8837 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8840 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8842 if (r->manufacturer_url) {
8843 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8846 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8848 if (r->hardware_id) {
8849 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8852 ndr_print_ptr(ndr, "provider", r->provider);
8855 ndr_print_string(ndr, "provider", r->provider);
8861 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8863 if (ndr_flags & NDR_SCALARS) {
8864 NDR_CHECK(ndr_push_align(ndr, 8));
8865 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8866 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8868 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8869 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8871 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8878 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8879 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8881 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8882 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8883 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8885 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8887 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8891 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8892 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8893 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8895 if (ndr_flags & NDR_BUFFERS) {
8896 if (r->driver_name) {
8897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8902 if (r->architecture) {
8903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8908 if (r->driver_path) {
8909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8912 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8918 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8920 if (r->config_file) {
8921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8924 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8932 if (r->monitor_name) {
8933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8938 if (r->default_datatype) {
8939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8942 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8944 if (r->dependent_files) {
8945 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8947 if (r->previous_names) {
8948 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8950 if (r->manufacturer_name) {
8951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8954 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8956 if (r->manufacturer_url) {
8957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8960 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8962 if (r->hardware_id) {
8963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8966 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8972 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8974 if (r->print_processor) {
8975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8978 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8980 if (r->vendor_setup) {
8981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8984 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8986 if (r->color_profiles) {
8987 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
8990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8993 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8995 if (r->core_driver_dependencies) {
8996 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
8999 return NDR_ERR_SUCCESS;
9002 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9004 uint32_t _ptr_driver_name;
9005 TALLOC_CTX *_mem_save_driver_name_0;
9006 uint32_t _ptr_architecture;
9007 TALLOC_CTX *_mem_save_architecture_0;
9008 uint32_t _ptr_driver_path;
9009 TALLOC_CTX *_mem_save_driver_path_0;
9010 uint32_t _ptr_data_file;
9011 TALLOC_CTX *_mem_save_data_file_0;
9012 uint32_t _ptr_config_file;
9013 TALLOC_CTX *_mem_save_config_file_0;
9014 uint32_t _ptr_help_file;
9015 TALLOC_CTX *_mem_save_help_file_0;
9016 uint32_t _ptr_monitor_name;
9017 TALLOC_CTX *_mem_save_monitor_name_0;
9018 uint32_t _ptr_default_datatype;
9019 TALLOC_CTX *_mem_save_default_datatype_0;
9020 uint32_t _ptr_dependent_files;
9021 TALLOC_CTX *_mem_save_dependent_files_0;
9022 uint32_t _ptr_previous_names;
9023 TALLOC_CTX *_mem_save_previous_names_0;
9024 uint32_t _ptr_manufacturer_name;
9025 TALLOC_CTX *_mem_save_manufacturer_name_0;
9026 uint32_t _ptr_manufacturer_url;
9027 TALLOC_CTX *_mem_save_manufacturer_url_0;
9028 uint32_t _ptr_hardware_id;
9029 TALLOC_CTX *_mem_save_hardware_id_0;
9030 uint32_t _ptr_provider;
9031 TALLOC_CTX *_mem_save_provider_0;
9032 uint32_t _ptr_print_processor;
9033 TALLOC_CTX *_mem_save_print_processor_0;
9034 uint32_t _ptr_vendor_setup;
9035 TALLOC_CTX *_mem_save_vendor_setup_0;
9036 uint32_t _ptr_color_profiles;
9037 TALLOC_CTX *_mem_save_color_profiles_0;
9038 uint32_t _ptr_inf_path;
9039 TALLOC_CTX *_mem_save_inf_path_0;
9040 uint32_t _ptr_core_driver_dependencies;
9041 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9042 if (ndr_flags & NDR_SCALARS) {
9043 NDR_CHECK(ndr_pull_align(ndr, 8));
9044 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9046 if (_ptr_driver_name) {
9047 NDR_PULL_ALLOC(ndr, r->driver_name);
9049 r->driver_name = NULL;
9051 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9052 if (_ptr_architecture) {
9053 NDR_PULL_ALLOC(ndr, r->architecture);
9055 r->architecture = NULL;
9057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9058 if (_ptr_driver_path) {
9059 NDR_PULL_ALLOC(ndr, r->driver_path);
9061 r->driver_path = NULL;
9063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9064 if (_ptr_data_file) {
9065 NDR_PULL_ALLOC(ndr, r->data_file);
9067 r->data_file = NULL;
9069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9070 if (_ptr_config_file) {
9071 NDR_PULL_ALLOC(ndr, r->config_file);
9073 r->config_file = NULL;
9075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9076 if (_ptr_help_file) {
9077 NDR_PULL_ALLOC(ndr, r->help_file);
9079 r->help_file = NULL;
9081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9082 if (_ptr_monitor_name) {
9083 NDR_PULL_ALLOC(ndr, r->monitor_name);
9085 r->monitor_name = NULL;
9087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9088 if (_ptr_default_datatype) {
9089 NDR_PULL_ALLOC(ndr, r->default_datatype);
9091 r->default_datatype = NULL;
9093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9095 if (_ptr_dependent_files) {
9096 NDR_PULL_ALLOC(ndr, r->dependent_files);
9098 r->dependent_files = NULL;
9100 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9102 if (_ptr_previous_names) {
9103 NDR_PULL_ALLOC(ndr, r->previous_names);
9105 r->previous_names = NULL;
9107 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9108 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9110 if (_ptr_manufacturer_name) {
9111 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9113 r->manufacturer_name = NULL;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9116 if (_ptr_manufacturer_url) {
9117 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9119 r->manufacturer_url = NULL;
9121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9122 if (_ptr_hardware_id) {
9123 NDR_PULL_ALLOC(ndr, r->hardware_id);
9125 r->hardware_id = NULL;
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9128 if (_ptr_provider) {
9129 NDR_PULL_ALLOC(ndr, r->provider);
9133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9134 if (_ptr_print_processor) {
9135 NDR_PULL_ALLOC(ndr, r->print_processor);
9137 r->print_processor = NULL;
9139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9140 if (_ptr_vendor_setup) {
9141 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9143 r->vendor_setup = NULL;
9145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9147 if (_ptr_color_profiles) {
9148 NDR_PULL_ALLOC(ndr, r->color_profiles);
9150 r->color_profiles = NULL;
9152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9153 if (_ptr_inf_path) {
9154 NDR_PULL_ALLOC(ndr, r->inf_path);
9158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9161 if (_ptr_core_driver_dependencies) {
9162 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9164 r->core_driver_dependencies = NULL;
9166 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9167 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9169 if (ndr_flags & NDR_BUFFERS) {
9170 if (r->driver_name) {
9171 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9172 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9173 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9174 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9175 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9176 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));
9178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9182 if (r->architecture) {
9183 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9184 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9185 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9186 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9187 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9188 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));
9190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9194 if (r->driver_path) {
9195 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9196 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9197 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9198 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9199 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9200 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9202 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9203 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9207 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9208 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9209 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9210 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9211 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9212 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9218 if (r->config_file) {
9219 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9220 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9222 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9223 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9224 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9231 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9232 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9233 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9234 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9235 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9236 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9239 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9242 if (r->monitor_name) {
9243 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9244 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9245 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9246 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9247 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9248 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9250 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9254 if (r->default_datatype) {
9255 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9256 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9258 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9259 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9260 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9266 if (r->dependent_files) {
9267 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9268 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9269 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9272 if (r->previous_names) {
9273 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9274 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9275 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9278 if (r->manufacturer_name) {
9279 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9282 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9283 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9284 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9290 if (r->manufacturer_url) {
9291 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9292 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9293 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9294 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9295 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9296 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));
9298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9302 if (r->hardware_id) {
9303 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9304 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9306 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9307 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9308 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));
9310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9315 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9316 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9318 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9319 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9320 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));
9322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9326 if (r->print_processor) {
9327 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9328 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9329 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9330 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9331 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9332 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));
9334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9338 if (r->vendor_setup) {
9339 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9340 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9341 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9342 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9343 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9344 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));
9346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9350 if (r->color_profiles) {
9351 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9352 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9353 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9357 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9358 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9359 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9360 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9361 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9362 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));
9364 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9365 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9368 if (r->core_driver_dependencies) {
9369 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9370 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9371 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9375 return NDR_ERR_SUCCESS;
9378 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9380 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9382 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9383 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9385 if (r->driver_name) {
9386 ndr_print_string(ndr, "driver_name", r->driver_name);
9389 ndr_print_ptr(ndr, "architecture", r->architecture);
9391 if (r->architecture) {
9392 ndr_print_string(ndr, "architecture", r->architecture);
9395 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9397 if (r->driver_path) {
9398 ndr_print_string(ndr, "driver_path", r->driver_path);
9401 ndr_print_ptr(ndr, "data_file", r->data_file);
9404 ndr_print_string(ndr, "data_file", r->data_file);
9407 ndr_print_ptr(ndr, "config_file", r->config_file);
9409 if (r->config_file) {
9410 ndr_print_string(ndr, "config_file", r->config_file);
9413 ndr_print_ptr(ndr, "help_file", r->help_file);
9416 ndr_print_string(ndr, "help_file", r->help_file);
9419 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9421 if (r->monitor_name) {
9422 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9425 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9427 if (r->default_datatype) {
9428 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9431 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);
9432 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9434 if (r->dependent_files) {
9435 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9438 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);
9439 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9441 if (r->previous_names) {
9442 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9445 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9446 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9447 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9449 if (r->manufacturer_name) {
9450 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9453 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9455 if (r->manufacturer_url) {
9456 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9459 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9461 if (r->hardware_id) {
9462 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9465 ndr_print_ptr(ndr, "provider", r->provider);
9468 ndr_print_string(ndr, "provider", r->provider);
9471 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9473 if (r->print_processor) {
9474 ndr_print_string(ndr, "print_processor", r->print_processor);
9477 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9479 if (r->vendor_setup) {
9480 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9483 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);
9484 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9486 if (r->color_profiles) {
9487 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9490 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9493 ndr_print_string(ndr, "inf_path", r->inf_path);
9496 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9497 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);
9498 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9500 if (r->core_driver_dependencies) {
9501 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9504 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9505 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9509 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9511 if (ndr_flags & NDR_SCALARS) {
9512 int level = ndr_push_get_switch_value(ndr, r);
9513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9524 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9528 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9540 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9543 if (ndr_flags & NDR_BUFFERS) {
9544 int level = ndr_push_get_switch_value(ndr, r);
9548 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9554 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9560 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9566 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9572 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9578 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9583 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9586 return NDR_ERR_SUCCESS;
9589 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9593 TALLOC_CTX *_mem_save_info1_0;
9594 TALLOC_CTX *_mem_save_info2_0;
9595 TALLOC_CTX *_mem_save_info3_0;
9596 TALLOC_CTX *_mem_save_info4_0;
9597 TALLOC_CTX *_mem_save_info6_0;
9598 TALLOC_CTX *_mem_save_info8_0;
9599 level = ndr_pull_get_switch_value(ndr, r);
9600 if (ndr_flags & NDR_SCALARS) {
9601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9602 if (_level != level) {
9603 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9607 uint32_t _ptr_info1;
9608 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9610 NDR_PULL_ALLOC(ndr, r->info1);
9617 uint32_t _ptr_info2;
9618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9620 NDR_PULL_ALLOC(ndr, r->info2);
9627 uint32_t _ptr_info3;
9628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9630 NDR_PULL_ALLOC(ndr, r->info3);
9637 uint32_t _ptr_info4;
9638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9640 NDR_PULL_ALLOC(ndr, r->info4);
9647 uint32_t _ptr_info6;
9648 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9650 NDR_PULL_ALLOC(ndr, r->info6);
9657 uint32_t _ptr_info8;
9658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9660 NDR_PULL_ALLOC(ndr, r->info8);
9667 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9670 if (ndr_flags & NDR_BUFFERS) {
9674 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9675 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9676 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9683 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9684 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9685 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9692 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9693 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9694 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9701 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9702 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9703 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9710 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9711 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9712 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9719 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9720 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9721 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9727 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9730 return NDR_ERR_SUCCESS;
9733 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9736 level = ndr_print_get_switch_value(ndr, r);
9737 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9740 ndr_print_ptr(ndr, "info1", r->info1);
9743 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9749 ndr_print_ptr(ndr, "info2", r->info2);
9752 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9758 ndr_print_ptr(ndr, "info3", r->info3);
9761 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9767 ndr_print_ptr(ndr, "info4", r->info4);
9770 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9776 ndr_print_ptr(ndr, "info6", r->info6);
9779 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9785 ndr_print_ptr(ndr, "info8", r->info8);
9788 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9794 ndr_print_bad_level(ndr, name, level);
9798 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9800 if (ndr_flags & NDR_SCALARS) {
9801 NDR_CHECK(ndr_push_align(ndr, 4));
9802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9803 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9804 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9806 if (ndr_flags & NDR_BUFFERS) {
9807 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9809 return NDR_ERR_SUCCESS;
9812 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9814 if (ndr_flags & NDR_SCALARS) {
9815 NDR_CHECK(ndr_pull_align(ndr, 4));
9816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9817 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9818 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9820 if (ndr_flags & NDR_BUFFERS) {
9821 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9823 return NDR_ERR_SUCCESS;
9826 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9828 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9830 ndr_print_uint32(ndr, "level", r->level);
9831 ndr_print_set_switch_value(ndr, &r->info, r->level);
9832 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9836 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9838 if (ndr_flags & NDR_SCALARS) {
9839 NDR_CHECK(ndr_push_align(ndr, 4));
9841 uint32_t _flags_save_string = ndr->flags;
9842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9844 ndr->flags = _flags_save_string;
9847 if (ndr_flags & NDR_BUFFERS) {
9849 uint32_t _flags_save_string = ndr->flags;
9850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9851 if (r->driver_name) {
9852 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9853 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9855 ndr->flags = _flags_save_string;
9858 return NDR_ERR_SUCCESS;
9861 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9863 uint32_t _ptr_driver_name;
9864 TALLOC_CTX *_mem_save_driver_name_0;
9865 if (ndr_flags & NDR_SCALARS) {
9866 NDR_CHECK(ndr_pull_align(ndr, 4));
9868 uint32_t _flags_save_string = ndr->flags;
9869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9871 if (_ptr_driver_name) {
9872 NDR_PULL_ALLOC(ndr, r->driver_name);
9873 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9875 r->driver_name = NULL;
9877 ndr->flags = _flags_save_string;
9880 if (ndr_flags & NDR_BUFFERS) {
9882 uint32_t _flags_save_string = ndr->flags;
9883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9884 if (r->driver_name) {
9885 uint32_t _relative_save_offset;
9886 _relative_save_offset = ndr->offset;
9887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9888 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9889 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9892 ndr->offset = _relative_save_offset;
9894 ndr->flags = _flags_save_string;
9897 return NDR_ERR_SUCCESS;
9900 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9902 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9904 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9906 if (r->driver_name) {
9907 ndr_print_string(ndr, "driver_name", r->driver_name);
9913 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9915 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9920 if (ndr_flags & NDR_SCALARS) {
9921 NDR_CHECK(ndr_push_align(ndr, 4));
9922 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9924 uint32_t _flags_save_string = ndr->flags;
9925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9926 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9927 ndr->flags = _flags_save_string;
9930 uint32_t _flags_save_string = ndr->flags;
9931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9932 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9933 ndr->flags = _flags_save_string;
9936 uint32_t _flags_save_string = ndr->flags;
9937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9938 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9939 ndr->flags = _flags_save_string;
9942 uint32_t _flags_save_string = ndr->flags;
9943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9944 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9945 ndr->flags = _flags_save_string;
9948 uint32_t _flags_save_string = ndr->flags;
9949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9950 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9951 ndr->flags = _flags_save_string;
9954 if (ndr_flags & NDR_BUFFERS) {
9956 uint32_t _flags_save_string = ndr->flags;
9957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9958 if (r->driver_name) {
9959 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9960 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9962 ndr->flags = _flags_save_string;
9965 uint32_t _flags_save_string = ndr->flags;
9966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9967 if (r->architecture) {
9968 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9969 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9971 ndr->flags = _flags_save_string;
9974 uint32_t _flags_save_string = ndr->flags;
9975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9976 if (r->driver_path) {
9977 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9978 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9980 ndr->flags = _flags_save_string;
9983 uint32_t _flags_save_string = ndr->flags;
9984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9986 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9987 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9989 ndr->flags = _flags_save_string;
9992 uint32_t _flags_save_string = ndr->flags;
9993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9994 if (r->config_file) {
9995 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9996 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9998 ndr->flags = _flags_save_string;
10001 return NDR_ERR_SUCCESS;
10004 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10006 uint32_t _ptr_driver_name;
10007 TALLOC_CTX *_mem_save_driver_name_0;
10008 uint32_t _ptr_architecture;
10009 TALLOC_CTX *_mem_save_architecture_0;
10010 uint32_t _ptr_driver_path;
10011 TALLOC_CTX *_mem_save_driver_path_0;
10012 uint32_t _ptr_data_file;
10013 TALLOC_CTX *_mem_save_data_file_0;
10014 uint32_t _ptr_config_file;
10015 TALLOC_CTX *_mem_save_config_file_0;
10016 if (ndr_flags & NDR_SCALARS) {
10017 NDR_CHECK(ndr_pull_align(ndr, 4));
10018 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10020 uint32_t _flags_save_string = ndr->flags;
10021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10023 if (_ptr_driver_name) {
10024 NDR_PULL_ALLOC(ndr, r->driver_name);
10025 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10027 r->driver_name = NULL;
10029 ndr->flags = _flags_save_string;
10032 uint32_t _flags_save_string = ndr->flags;
10033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10035 if (_ptr_architecture) {
10036 NDR_PULL_ALLOC(ndr, r->architecture);
10037 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10039 r->architecture = NULL;
10041 ndr->flags = _flags_save_string;
10044 uint32_t _flags_save_string = ndr->flags;
10045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10047 if (_ptr_driver_path) {
10048 NDR_PULL_ALLOC(ndr, r->driver_path);
10049 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10051 r->driver_path = NULL;
10053 ndr->flags = _flags_save_string;
10056 uint32_t _flags_save_string = ndr->flags;
10057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10059 if (_ptr_data_file) {
10060 NDR_PULL_ALLOC(ndr, r->data_file);
10061 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10063 r->data_file = NULL;
10065 ndr->flags = _flags_save_string;
10068 uint32_t _flags_save_string = ndr->flags;
10069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10071 if (_ptr_config_file) {
10072 NDR_PULL_ALLOC(ndr, r->config_file);
10073 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10075 r->config_file = NULL;
10077 ndr->flags = _flags_save_string;
10080 if (ndr_flags & NDR_BUFFERS) {
10082 uint32_t _flags_save_string = ndr->flags;
10083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10084 if (r->driver_name) {
10085 uint32_t _relative_save_offset;
10086 _relative_save_offset = ndr->offset;
10087 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10088 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10089 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10090 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10092 ndr->offset = _relative_save_offset;
10094 ndr->flags = _flags_save_string;
10097 uint32_t _flags_save_string = ndr->flags;
10098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10099 if (r->architecture) {
10100 uint32_t _relative_save_offset;
10101 _relative_save_offset = ndr->offset;
10102 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10103 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10104 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10105 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10107 ndr->offset = _relative_save_offset;
10109 ndr->flags = _flags_save_string;
10112 uint32_t _flags_save_string = ndr->flags;
10113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10114 if (r->driver_path) {
10115 uint32_t _relative_save_offset;
10116 _relative_save_offset = ndr->offset;
10117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10118 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10119 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10122 ndr->offset = _relative_save_offset;
10124 ndr->flags = _flags_save_string;
10127 uint32_t _flags_save_string = ndr->flags;
10128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10129 if (r->data_file) {
10130 uint32_t _relative_save_offset;
10131 _relative_save_offset = ndr->offset;
10132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10133 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10134 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10135 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10137 ndr->offset = _relative_save_offset;
10139 ndr->flags = _flags_save_string;
10142 uint32_t _flags_save_string = ndr->flags;
10143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10144 if (r->config_file) {
10145 uint32_t _relative_save_offset;
10146 _relative_save_offset = ndr->offset;
10147 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10148 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10149 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10150 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10152 ndr->offset = _relative_save_offset;
10154 ndr->flags = _flags_save_string;
10157 return NDR_ERR_SUCCESS;
10160 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10162 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10164 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10165 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10167 if (r->driver_name) {
10168 ndr_print_string(ndr, "driver_name", r->driver_name);
10171 ndr_print_ptr(ndr, "architecture", r->architecture);
10173 if (r->architecture) {
10174 ndr_print_string(ndr, "architecture", r->architecture);
10177 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10179 if (r->driver_path) {
10180 ndr_print_string(ndr, "driver_path", r->driver_path);
10183 ndr_print_ptr(ndr, "data_file", r->data_file);
10185 if (r->data_file) {
10186 ndr_print_string(ndr, "data_file", r->data_file);
10189 ndr_print_ptr(ndr, "config_file", r->config_file);
10191 if (r->config_file) {
10192 ndr_print_string(ndr, "config_file", r->config_file);
10198 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10200 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10205 if (ndr_flags & NDR_SCALARS) {
10206 NDR_CHECK(ndr_push_align(ndr, 4));
10207 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10209 uint32_t _flags_save_string = ndr->flags;
10210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10211 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10212 ndr->flags = _flags_save_string;
10215 uint32_t _flags_save_string = ndr->flags;
10216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10217 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10218 ndr->flags = _flags_save_string;
10221 uint32_t _flags_save_string = ndr->flags;
10222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10224 ndr->flags = _flags_save_string;
10227 uint32_t _flags_save_string = ndr->flags;
10228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10230 ndr->flags = _flags_save_string;
10233 uint32_t _flags_save_string = ndr->flags;
10234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10236 ndr->flags = _flags_save_string;
10239 uint32_t _flags_save_string = ndr->flags;
10240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10242 ndr->flags = _flags_save_string;
10245 uint32_t _flags_save_string_array = ndr->flags;
10246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10248 ndr->flags = _flags_save_string_array;
10251 uint32_t _flags_save_string = ndr->flags;
10252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10253 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10254 ndr->flags = _flags_save_string;
10257 uint32_t _flags_save_string = ndr->flags;
10258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10260 ndr->flags = _flags_save_string;
10263 if (ndr_flags & NDR_BUFFERS) {
10265 uint32_t _flags_save_string = ndr->flags;
10266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10267 if (r->driver_name) {
10268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10271 ndr->flags = _flags_save_string;
10274 uint32_t _flags_save_string = ndr->flags;
10275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10276 if (r->architecture) {
10277 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10278 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10280 ndr->flags = _flags_save_string;
10283 uint32_t _flags_save_string = ndr->flags;
10284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10285 if (r->driver_path) {
10286 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10287 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10289 ndr->flags = _flags_save_string;
10292 uint32_t _flags_save_string = ndr->flags;
10293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10294 if (r->data_file) {
10295 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10296 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10298 ndr->flags = _flags_save_string;
10301 uint32_t _flags_save_string = ndr->flags;
10302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10303 if (r->config_file) {
10304 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10305 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10307 ndr->flags = _flags_save_string;
10310 uint32_t _flags_save_string = ndr->flags;
10311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10312 if (r->help_file) {
10313 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10316 ndr->flags = _flags_save_string;
10319 uint32_t _flags_save_string_array = ndr->flags;
10320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10321 if (r->dependent_files) {
10322 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10323 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10325 ndr->flags = _flags_save_string_array;
10328 uint32_t _flags_save_string = ndr->flags;
10329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10330 if (r->monitor_name) {
10331 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10332 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10334 ndr->flags = _flags_save_string;
10337 uint32_t _flags_save_string = ndr->flags;
10338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10339 if (r->default_datatype) {
10340 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10341 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10343 ndr->flags = _flags_save_string;
10346 return NDR_ERR_SUCCESS;
10349 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10351 uint32_t _ptr_driver_name;
10352 TALLOC_CTX *_mem_save_driver_name_0;
10353 uint32_t _ptr_architecture;
10354 TALLOC_CTX *_mem_save_architecture_0;
10355 uint32_t _ptr_driver_path;
10356 TALLOC_CTX *_mem_save_driver_path_0;
10357 uint32_t _ptr_data_file;
10358 TALLOC_CTX *_mem_save_data_file_0;
10359 uint32_t _ptr_config_file;
10360 TALLOC_CTX *_mem_save_config_file_0;
10361 uint32_t _ptr_help_file;
10362 TALLOC_CTX *_mem_save_help_file_0;
10363 uint32_t _ptr_dependent_files;
10364 TALLOC_CTX *_mem_save_dependent_files_0;
10365 uint32_t _ptr_monitor_name;
10366 TALLOC_CTX *_mem_save_monitor_name_0;
10367 uint32_t _ptr_default_datatype;
10368 TALLOC_CTX *_mem_save_default_datatype_0;
10369 if (ndr_flags & NDR_SCALARS) {
10370 NDR_CHECK(ndr_pull_align(ndr, 4));
10371 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10373 uint32_t _flags_save_string = ndr->flags;
10374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10376 if (_ptr_driver_name) {
10377 NDR_PULL_ALLOC(ndr, r->driver_name);
10378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10380 r->driver_name = NULL;
10382 ndr->flags = _flags_save_string;
10385 uint32_t _flags_save_string = ndr->flags;
10386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10388 if (_ptr_architecture) {
10389 NDR_PULL_ALLOC(ndr, r->architecture);
10390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10392 r->architecture = NULL;
10394 ndr->flags = _flags_save_string;
10397 uint32_t _flags_save_string = ndr->flags;
10398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10400 if (_ptr_driver_path) {
10401 NDR_PULL_ALLOC(ndr, r->driver_path);
10402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10404 r->driver_path = NULL;
10406 ndr->flags = _flags_save_string;
10409 uint32_t _flags_save_string = ndr->flags;
10410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10412 if (_ptr_data_file) {
10413 NDR_PULL_ALLOC(ndr, r->data_file);
10414 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10416 r->data_file = NULL;
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_pull_generic_ptr(ndr, &_ptr_config_file));
10424 if (_ptr_config_file) {
10425 NDR_PULL_ALLOC(ndr, r->config_file);
10426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10428 r->config_file = NULL;
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_pull_generic_ptr(ndr, &_ptr_help_file));
10436 if (_ptr_help_file) {
10437 NDR_PULL_ALLOC(ndr, r->help_file);
10438 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10440 r->help_file = NULL;
10442 ndr->flags = _flags_save_string;
10445 uint32_t _flags_save_string_array = ndr->flags;
10446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10448 if (_ptr_dependent_files) {
10449 NDR_PULL_ALLOC(ndr, r->dependent_files);
10450 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10452 r->dependent_files = NULL;
10454 ndr->flags = _flags_save_string_array;
10457 uint32_t _flags_save_string = ndr->flags;
10458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10460 if (_ptr_monitor_name) {
10461 NDR_PULL_ALLOC(ndr, r->monitor_name);
10462 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10464 r->monitor_name = NULL;
10466 ndr->flags = _flags_save_string;
10469 uint32_t _flags_save_string = ndr->flags;
10470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10472 if (_ptr_default_datatype) {
10473 NDR_PULL_ALLOC(ndr, r->default_datatype);
10474 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10476 r->default_datatype = NULL;
10478 ndr->flags = _flags_save_string;
10481 if (ndr_flags & NDR_BUFFERS) {
10483 uint32_t _flags_save_string = ndr->flags;
10484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10485 if (r->driver_name) {
10486 uint32_t _relative_save_offset;
10487 _relative_save_offset = ndr->offset;
10488 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10489 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10490 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10491 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10493 ndr->offset = _relative_save_offset;
10495 ndr->flags = _flags_save_string;
10498 uint32_t _flags_save_string = ndr->flags;
10499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10500 if (r->architecture) {
10501 uint32_t _relative_save_offset;
10502 _relative_save_offset = ndr->offset;
10503 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10504 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10505 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10506 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10508 ndr->offset = _relative_save_offset;
10510 ndr->flags = _flags_save_string;
10513 uint32_t _flags_save_string = ndr->flags;
10514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10515 if (r->driver_path) {
10516 uint32_t _relative_save_offset;
10517 _relative_save_offset = ndr->offset;
10518 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10519 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10520 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10521 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10523 ndr->offset = _relative_save_offset;
10525 ndr->flags = _flags_save_string;
10528 uint32_t _flags_save_string = ndr->flags;
10529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10530 if (r->data_file) {
10531 uint32_t _relative_save_offset;
10532 _relative_save_offset = ndr->offset;
10533 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10534 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10535 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10536 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10538 ndr->offset = _relative_save_offset;
10540 ndr->flags = _flags_save_string;
10543 uint32_t _flags_save_string = ndr->flags;
10544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10545 if (r->config_file) {
10546 uint32_t _relative_save_offset;
10547 _relative_save_offset = ndr->offset;
10548 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10549 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10550 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10551 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10553 ndr->offset = _relative_save_offset;
10555 ndr->flags = _flags_save_string;
10558 uint32_t _flags_save_string = ndr->flags;
10559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10560 if (r->help_file) {
10561 uint32_t _relative_save_offset;
10562 _relative_save_offset = ndr->offset;
10563 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10564 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10565 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10566 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10568 ndr->offset = _relative_save_offset;
10570 ndr->flags = _flags_save_string;
10573 uint32_t _flags_save_string_array = ndr->flags;
10574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10575 if (r->dependent_files) {
10576 uint32_t _relative_save_offset;
10577 _relative_save_offset = ndr->offset;
10578 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10579 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10580 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10581 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10583 ndr->offset = _relative_save_offset;
10585 ndr->flags = _flags_save_string_array;
10588 uint32_t _flags_save_string = ndr->flags;
10589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10590 if (r->monitor_name) {
10591 uint32_t _relative_save_offset;
10592 _relative_save_offset = ndr->offset;
10593 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10594 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10595 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10596 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_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->default_datatype) {
10606 uint32_t _relative_save_offset;
10607 _relative_save_offset = ndr->offset;
10608 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10609 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10610 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10611 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10613 ndr->offset = _relative_save_offset;
10615 ndr->flags = _flags_save_string;
10618 return NDR_ERR_SUCCESS;
10621 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10623 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10625 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10626 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10628 if (r->driver_name) {
10629 ndr_print_string(ndr, "driver_name", r->driver_name);
10632 ndr_print_ptr(ndr, "architecture", r->architecture);
10634 if (r->architecture) {
10635 ndr_print_string(ndr, "architecture", r->architecture);
10638 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10640 if (r->driver_path) {
10641 ndr_print_string(ndr, "driver_path", r->driver_path);
10644 ndr_print_ptr(ndr, "data_file", r->data_file);
10646 if (r->data_file) {
10647 ndr_print_string(ndr, "data_file", r->data_file);
10650 ndr_print_ptr(ndr, "config_file", r->config_file);
10652 if (r->config_file) {
10653 ndr_print_string(ndr, "config_file", r->config_file);
10656 ndr_print_ptr(ndr, "help_file", r->help_file);
10658 if (r->help_file) {
10659 ndr_print_string(ndr, "help_file", r->help_file);
10662 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10664 if (r->dependent_files) {
10665 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10668 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10670 if (r->monitor_name) {
10671 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10674 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10676 if (r->default_datatype) {
10677 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10683 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10685 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10688 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10690 if (ndr_flags & NDR_SCALARS) {
10691 NDR_CHECK(ndr_push_align(ndr, 4));
10692 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10694 uint32_t _flags_save_string = ndr->flags;
10695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10696 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10697 ndr->flags = _flags_save_string;
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->architecture));
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->driver_path));
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->data_file));
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->config_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->help_file));
10727 ndr->flags = _flags_save_string;
10730 uint32_t _flags_save_string_array = ndr->flags;
10731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10732 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10733 ndr->flags = _flags_save_string_array;
10736 uint32_t _flags_save_string = ndr->flags;
10737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10738 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10739 ndr->flags = _flags_save_string;
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->default_datatype));
10745 ndr->flags = _flags_save_string;
10748 uint32_t _flags_save_string_array = ndr->flags;
10749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10751 ndr->flags = _flags_save_string_array;
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 uint32_t _flags_save_string_array = ndr->flags;
10838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10839 if (r->previous_names) {
10840 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
10841 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10843 ndr->flags = _flags_save_string_array;
10846 return NDR_ERR_SUCCESS;
10849 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10851 uint32_t _ptr_driver_name;
10852 TALLOC_CTX *_mem_save_driver_name_0;
10853 uint32_t _ptr_architecture;
10854 TALLOC_CTX *_mem_save_architecture_0;
10855 uint32_t _ptr_driver_path;
10856 TALLOC_CTX *_mem_save_driver_path_0;
10857 uint32_t _ptr_data_file;
10858 TALLOC_CTX *_mem_save_data_file_0;
10859 uint32_t _ptr_config_file;
10860 TALLOC_CTX *_mem_save_config_file_0;
10861 uint32_t _ptr_help_file;
10862 TALLOC_CTX *_mem_save_help_file_0;
10863 uint32_t _ptr_dependent_files;
10864 TALLOC_CTX *_mem_save_dependent_files_0;
10865 uint32_t _ptr_monitor_name;
10866 TALLOC_CTX *_mem_save_monitor_name_0;
10867 uint32_t _ptr_default_datatype;
10868 TALLOC_CTX *_mem_save_default_datatype_0;
10869 uint32_t _ptr_previous_names;
10870 TALLOC_CTX *_mem_save_previous_names_0;
10871 if (ndr_flags & NDR_SCALARS) {
10872 NDR_CHECK(ndr_pull_align(ndr, 4));
10873 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10875 uint32_t _flags_save_string = ndr->flags;
10876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10878 if (_ptr_driver_name) {
10879 NDR_PULL_ALLOC(ndr, r->driver_name);
10880 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10882 r->driver_name = NULL;
10884 ndr->flags = _flags_save_string;
10887 uint32_t _flags_save_string = ndr->flags;
10888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10890 if (_ptr_architecture) {
10891 NDR_PULL_ALLOC(ndr, r->architecture);
10892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10894 r->architecture = NULL;
10896 ndr->flags = _flags_save_string;
10899 uint32_t _flags_save_string = ndr->flags;
10900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10902 if (_ptr_driver_path) {
10903 NDR_PULL_ALLOC(ndr, r->driver_path);
10904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10906 r->driver_path = NULL;
10908 ndr->flags = _flags_save_string;
10911 uint32_t _flags_save_string = ndr->flags;
10912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10914 if (_ptr_data_file) {
10915 NDR_PULL_ALLOC(ndr, r->data_file);
10916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10918 r->data_file = NULL;
10920 ndr->flags = _flags_save_string;
10923 uint32_t _flags_save_string = ndr->flags;
10924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10926 if (_ptr_config_file) {
10927 NDR_PULL_ALLOC(ndr, r->config_file);
10928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10930 r->config_file = NULL;
10932 ndr->flags = _flags_save_string;
10935 uint32_t _flags_save_string = ndr->flags;
10936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10938 if (_ptr_help_file) {
10939 NDR_PULL_ALLOC(ndr, r->help_file);
10940 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10942 r->help_file = NULL;
10944 ndr->flags = _flags_save_string;
10947 uint32_t _flags_save_string_array = ndr->flags;
10948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10950 if (_ptr_dependent_files) {
10951 NDR_PULL_ALLOC(ndr, r->dependent_files);
10952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10954 r->dependent_files = NULL;
10956 ndr->flags = _flags_save_string_array;
10959 uint32_t _flags_save_string = ndr->flags;
10960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10962 if (_ptr_monitor_name) {
10963 NDR_PULL_ALLOC(ndr, r->monitor_name);
10964 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10966 r->monitor_name = NULL;
10968 ndr->flags = _flags_save_string;
10971 uint32_t _flags_save_string = ndr->flags;
10972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10974 if (_ptr_default_datatype) {
10975 NDR_PULL_ALLOC(ndr, r->default_datatype);
10976 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10978 r->default_datatype = NULL;
10980 ndr->flags = _flags_save_string;
10983 uint32_t _flags_save_string_array = ndr->flags;
10984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10986 if (_ptr_previous_names) {
10987 NDR_PULL_ALLOC(ndr, r->previous_names);
10988 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10990 r->previous_names = NULL;
10992 ndr->flags = _flags_save_string_array;
10995 if (ndr_flags & NDR_BUFFERS) {
10997 uint32_t _flags_save_string = ndr->flags;
10998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10999 if (r->driver_name) {
11000 uint32_t _relative_save_offset;
11001 _relative_save_offset = ndr->offset;
11002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11003 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11004 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11007 ndr->offset = _relative_save_offset;
11009 ndr->flags = _flags_save_string;
11012 uint32_t _flags_save_string = ndr->flags;
11013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11014 if (r->architecture) {
11015 uint32_t _relative_save_offset;
11016 _relative_save_offset = ndr->offset;
11017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11018 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11019 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11022 ndr->offset = _relative_save_offset;
11024 ndr->flags = _flags_save_string;
11027 uint32_t _flags_save_string = ndr->flags;
11028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11029 if (r->driver_path) {
11030 uint32_t _relative_save_offset;
11031 _relative_save_offset = ndr->offset;
11032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11033 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11034 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11037 ndr->offset = _relative_save_offset;
11039 ndr->flags = _flags_save_string;
11042 uint32_t _flags_save_string = ndr->flags;
11043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11044 if (r->data_file) {
11045 uint32_t _relative_save_offset;
11046 _relative_save_offset = ndr->offset;
11047 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11048 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11049 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11050 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11052 ndr->offset = _relative_save_offset;
11054 ndr->flags = _flags_save_string;
11057 uint32_t _flags_save_string = ndr->flags;
11058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11059 if (r->config_file) {
11060 uint32_t _relative_save_offset;
11061 _relative_save_offset = ndr->offset;
11062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11063 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11064 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11067 ndr->offset = _relative_save_offset;
11069 ndr->flags = _flags_save_string;
11072 uint32_t _flags_save_string = ndr->flags;
11073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11074 if (r->help_file) {
11075 uint32_t _relative_save_offset;
11076 _relative_save_offset = ndr->offset;
11077 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11078 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11079 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11080 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11082 ndr->offset = _relative_save_offset;
11084 ndr->flags = _flags_save_string;
11087 uint32_t _flags_save_string_array = ndr->flags;
11088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11089 if (r->dependent_files) {
11090 uint32_t _relative_save_offset;
11091 _relative_save_offset = ndr->offset;
11092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11093 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11094 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11095 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11097 ndr->offset = _relative_save_offset;
11099 ndr->flags = _flags_save_string_array;
11102 uint32_t _flags_save_string = ndr->flags;
11103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11104 if (r->monitor_name) {
11105 uint32_t _relative_save_offset;
11106 _relative_save_offset = ndr->offset;
11107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11108 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11109 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11112 ndr->offset = _relative_save_offset;
11114 ndr->flags = _flags_save_string;
11117 uint32_t _flags_save_string = ndr->flags;
11118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11119 if (r->default_datatype) {
11120 uint32_t _relative_save_offset;
11121 _relative_save_offset = ndr->offset;
11122 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11123 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11124 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11125 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11127 ndr->offset = _relative_save_offset;
11129 ndr->flags = _flags_save_string;
11132 uint32_t _flags_save_string_array = ndr->flags;
11133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11134 if (r->previous_names) {
11135 uint32_t _relative_save_offset;
11136 _relative_save_offset = ndr->offset;
11137 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11138 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11139 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11140 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11142 ndr->offset = _relative_save_offset;
11144 ndr->flags = _flags_save_string_array;
11147 return NDR_ERR_SUCCESS;
11150 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11152 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11154 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11155 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11157 if (r->driver_name) {
11158 ndr_print_string(ndr, "driver_name", r->driver_name);
11161 ndr_print_ptr(ndr, "architecture", r->architecture);
11163 if (r->architecture) {
11164 ndr_print_string(ndr, "architecture", r->architecture);
11167 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11169 if (r->driver_path) {
11170 ndr_print_string(ndr, "driver_path", r->driver_path);
11173 ndr_print_ptr(ndr, "data_file", r->data_file);
11175 if (r->data_file) {
11176 ndr_print_string(ndr, "data_file", r->data_file);
11179 ndr_print_ptr(ndr, "config_file", r->config_file);
11181 if (r->config_file) {
11182 ndr_print_string(ndr, "config_file", r->config_file);
11185 ndr_print_ptr(ndr, "help_file", r->help_file);
11187 if (r->help_file) {
11188 ndr_print_string(ndr, "help_file", r->help_file);
11191 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11193 if (r->dependent_files) {
11194 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11197 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11199 if (r->monitor_name) {
11200 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11203 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11205 if (r->default_datatype) {
11206 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11209 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11211 if (r->previous_names) {
11212 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11218 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11220 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11223 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11225 if (ndr_flags & NDR_SCALARS) {
11226 NDR_CHECK(ndr_push_align(ndr, 4));
11227 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11229 uint32_t _flags_save_string = ndr->flags;
11230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11231 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11232 ndr->flags = _flags_save_string;
11235 uint32_t _flags_save_string = ndr->flags;
11236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11237 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11238 ndr->flags = _flags_save_string;
11241 uint32_t _flags_save_string = ndr->flags;
11242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11243 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11244 ndr->flags = _flags_save_string;
11247 uint32_t _flags_save_string = ndr->flags;
11248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11249 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11250 ndr->flags = _flags_save_string;
11253 uint32_t _flags_save_string = ndr->flags;
11254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11255 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11256 ndr->flags = _flags_save_string;
11258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
11259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11262 if (ndr_flags & NDR_BUFFERS) {
11264 uint32_t _flags_save_string = ndr->flags;
11265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11266 if (r->driver_name) {
11267 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11268 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11270 ndr->flags = _flags_save_string;
11273 uint32_t _flags_save_string = ndr->flags;
11274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11275 if (r->architecture) {
11276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11279 ndr->flags = _flags_save_string;
11282 uint32_t _flags_save_string = ndr->flags;
11283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11284 if (r->driver_path) {
11285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11288 ndr->flags = _flags_save_string;
11291 uint32_t _flags_save_string = ndr->flags;
11292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11293 if (r->data_file) {
11294 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11295 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11297 ndr->flags = _flags_save_string;
11300 uint32_t _flags_save_string = ndr->flags;
11301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11302 if (r->config_file) {
11303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11306 ndr->flags = _flags_save_string;
11309 return NDR_ERR_SUCCESS;
11312 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11314 uint32_t _ptr_driver_name;
11315 TALLOC_CTX *_mem_save_driver_name_0;
11316 uint32_t _ptr_architecture;
11317 TALLOC_CTX *_mem_save_architecture_0;
11318 uint32_t _ptr_driver_path;
11319 TALLOC_CTX *_mem_save_driver_path_0;
11320 uint32_t _ptr_data_file;
11321 TALLOC_CTX *_mem_save_data_file_0;
11322 uint32_t _ptr_config_file;
11323 TALLOC_CTX *_mem_save_config_file_0;
11324 if (ndr_flags & NDR_SCALARS) {
11325 NDR_CHECK(ndr_pull_align(ndr, 4));
11326 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11328 uint32_t _flags_save_string = ndr->flags;
11329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11331 if (_ptr_driver_name) {
11332 NDR_PULL_ALLOC(ndr, r->driver_name);
11333 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11335 r->driver_name = NULL;
11337 ndr->flags = _flags_save_string;
11340 uint32_t _flags_save_string = ndr->flags;
11341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11343 if (_ptr_architecture) {
11344 NDR_PULL_ALLOC(ndr, r->architecture);
11345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11347 r->architecture = NULL;
11349 ndr->flags = _flags_save_string;
11352 uint32_t _flags_save_string = ndr->flags;
11353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11355 if (_ptr_driver_path) {
11356 NDR_PULL_ALLOC(ndr, r->driver_path);
11357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11359 r->driver_path = NULL;
11361 ndr->flags = _flags_save_string;
11364 uint32_t _flags_save_string = ndr->flags;
11365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11367 if (_ptr_data_file) {
11368 NDR_PULL_ALLOC(ndr, r->data_file);
11369 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11371 r->data_file = NULL;
11373 ndr->flags = _flags_save_string;
11376 uint32_t _flags_save_string = ndr->flags;
11377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11379 if (_ptr_config_file) {
11380 NDR_PULL_ALLOC(ndr, r->config_file);
11381 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11383 r->config_file = NULL;
11385 ndr->flags = _flags_save_string;
11387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
11388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11391 if (ndr_flags & NDR_BUFFERS) {
11393 uint32_t _flags_save_string = ndr->flags;
11394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11395 if (r->driver_name) {
11396 uint32_t _relative_save_offset;
11397 _relative_save_offset = ndr->offset;
11398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11399 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11400 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11403 ndr->offset = _relative_save_offset;
11405 ndr->flags = _flags_save_string;
11408 uint32_t _flags_save_string = ndr->flags;
11409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11410 if (r->architecture) {
11411 uint32_t _relative_save_offset;
11412 _relative_save_offset = ndr->offset;
11413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11414 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11415 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11418 ndr->offset = _relative_save_offset;
11420 ndr->flags = _flags_save_string;
11423 uint32_t _flags_save_string = ndr->flags;
11424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11425 if (r->driver_path) {
11426 uint32_t _relative_save_offset;
11427 _relative_save_offset = ndr->offset;
11428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11429 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11430 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11433 ndr->offset = _relative_save_offset;
11435 ndr->flags = _flags_save_string;
11438 uint32_t _flags_save_string = ndr->flags;
11439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11440 if (r->data_file) {
11441 uint32_t _relative_save_offset;
11442 _relative_save_offset = ndr->offset;
11443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11444 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11445 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11446 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11448 ndr->offset = _relative_save_offset;
11450 ndr->flags = _flags_save_string;
11453 uint32_t _flags_save_string = ndr->flags;
11454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11455 if (r->config_file) {
11456 uint32_t _relative_save_offset;
11457 _relative_save_offset = ndr->offset;
11458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11459 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11460 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11463 ndr->offset = _relative_save_offset;
11465 ndr->flags = _flags_save_string;
11468 return NDR_ERR_SUCCESS;
11471 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11473 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11475 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11476 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11478 if (r->driver_name) {
11479 ndr_print_string(ndr, "driver_name", r->driver_name);
11482 ndr_print_ptr(ndr, "architecture", r->architecture);
11484 if (r->architecture) {
11485 ndr_print_string(ndr, "architecture", r->architecture);
11488 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11490 if (r->driver_path) {
11491 ndr_print_string(ndr, "driver_path", r->driver_path);
11494 ndr_print_ptr(ndr, "data_file", r->data_file);
11496 if (r->data_file) {
11497 ndr_print_string(ndr, "data_file", r->data_file);
11500 ndr_print_ptr(ndr, "config_file", r->config_file);
11502 if (r->config_file) {
11503 ndr_print_string(ndr, "config_file", r->config_file);
11506 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
11507 ndr_print_uint32(ndr, "config_version", r->config_version);
11508 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11512 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11514 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11517 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11519 if (ndr_flags & NDR_SCALARS) {
11520 NDR_CHECK(ndr_push_align(ndr, 8));
11521 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11523 uint32_t _flags_save_string = ndr->flags;
11524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11526 ndr->flags = _flags_save_string;
11529 uint32_t _flags_save_string = ndr->flags;
11530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11538 ndr->flags = _flags_save_string;
11541 uint32_t _flags_save_string = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11544 ndr->flags = _flags_save_string;
11547 uint32_t _flags_save_string = ndr->flags;
11548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11550 ndr->flags = _flags_save_string;
11553 uint32_t _flags_save_string = ndr->flags;
11554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11556 ndr->flags = _flags_save_string;
11559 uint32_t _flags_save_string_array = ndr->flags;
11560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11562 ndr->flags = _flags_save_string_array;
11565 uint32_t _flags_save_string = ndr->flags;
11566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11568 ndr->flags = _flags_save_string;
11571 uint32_t _flags_save_string = ndr->flags;
11572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11573 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11574 ndr->flags = _flags_save_string;
11577 uint32_t _flags_save_string_array = ndr->flags;
11578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11579 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11580 ndr->flags = _flags_save_string_array;
11582 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11583 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11585 uint32_t _flags_save_string = ndr->flags;
11586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11588 ndr->flags = _flags_save_string;
11591 uint32_t _flags_save_string = ndr->flags;
11592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11594 ndr->flags = _flags_save_string;
11597 uint32_t _flags_save_string = ndr->flags;
11598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11600 ndr->flags = _flags_save_string;
11603 uint32_t _flags_save_string = ndr->flags;
11604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11606 ndr->flags = _flags_save_string;
11609 if (ndr_flags & NDR_BUFFERS) {
11611 uint32_t _flags_save_string = ndr->flags;
11612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11613 if (r->driver_name) {
11614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11617 ndr->flags = _flags_save_string;
11620 uint32_t _flags_save_string = ndr->flags;
11621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11622 if (r->architecture) {
11623 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11626 ndr->flags = _flags_save_string;
11629 uint32_t _flags_save_string = ndr->flags;
11630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11631 if (r->driver_path) {
11632 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11633 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11635 ndr->flags = _flags_save_string;
11638 uint32_t _flags_save_string = ndr->flags;
11639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11640 if (r->data_file) {
11641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11644 ndr->flags = _flags_save_string;
11647 uint32_t _flags_save_string = ndr->flags;
11648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11649 if (r->config_file) {
11650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11653 ndr->flags = _flags_save_string;
11656 uint32_t _flags_save_string = ndr->flags;
11657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11658 if (r->help_file) {
11659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11660 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11662 ndr->flags = _flags_save_string;
11665 uint32_t _flags_save_string_array = ndr->flags;
11666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11667 if (r->dependent_files) {
11668 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11669 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11671 ndr->flags = _flags_save_string_array;
11674 uint32_t _flags_save_string = ndr->flags;
11675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11676 if (r->monitor_name) {
11677 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11678 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11680 ndr->flags = _flags_save_string;
11683 uint32_t _flags_save_string = ndr->flags;
11684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11685 if (r->default_datatype) {
11686 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11687 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11689 ndr->flags = _flags_save_string;
11692 uint32_t _flags_save_string_array = ndr->flags;
11693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11694 if (r->previous_names) {
11695 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11696 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11698 ndr->flags = _flags_save_string_array;
11701 uint32_t _flags_save_string = ndr->flags;
11702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11703 if (r->manufacturer_name) {
11704 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
11705 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11707 ndr->flags = _flags_save_string;
11710 uint32_t _flags_save_string = ndr->flags;
11711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11712 if (r->manufacturer_url) {
11713 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
11714 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11716 ndr->flags = _flags_save_string;
11719 uint32_t _flags_save_string = ndr->flags;
11720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11721 if (r->hardware_id) {
11722 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
11723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11725 ndr->flags = _flags_save_string;
11728 uint32_t _flags_save_string = ndr->flags;
11729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11731 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
11732 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11734 ndr->flags = _flags_save_string;
11737 return NDR_ERR_SUCCESS;
11740 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11742 uint32_t _ptr_driver_name;
11743 TALLOC_CTX *_mem_save_driver_name_0;
11744 uint32_t _ptr_architecture;
11745 TALLOC_CTX *_mem_save_architecture_0;
11746 uint32_t _ptr_driver_path;
11747 TALLOC_CTX *_mem_save_driver_path_0;
11748 uint32_t _ptr_data_file;
11749 TALLOC_CTX *_mem_save_data_file_0;
11750 uint32_t _ptr_config_file;
11751 TALLOC_CTX *_mem_save_config_file_0;
11752 uint32_t _ptr_help_file;
11753 TALLOC_CTX *_mem_save_help_file_0;
11754 uint32_t _ptr_dependent_files;
11755 TALLOC_CTX *_mem_save_dependent_files_0;
11756 uint32_t _ptr_monitor_name;
11757 TALLOC_CTX *_mem_save_monitor_name_0;
11758 uint32_t _ptr_default_datatype;
11759 TALLOC_CTX *_mem_save_default_datatype_0;
11760 uint32_t _ptr_previous_names;
11761 TALLOC_CTX *_mem_save_previous_names_0;
11762 uint32_t _ptr_manufacturer_name;
11763 TALLOC_CTX *_mem_save_manufacturer_name_0;
11764 uint32_t _ptr_manufacturer_url;
11765 TALLOC_CTX *_mem_save_manufacturer_url_0;
11766 uint32_t _ptr_hardware_id;
11767 TALLOC_CTX *_mem_save_hardware_id_0;
11768 uint32_t _ptr_provider;
11769 TALLOC_CTX *_mem_save_provider_0;
11770 if (ndr_flags & NDR_SCALARS) {
11771 NDR_CHECK(ndr_pull_align(ndr, 8));
11772 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11774 uint32_t _flags_save_string = ndr->flags;
11775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11777 if (_ptr_driver_name) {
11778 NDR_PULL_ALLOC(ndr, r->driver_name);
11779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11781 r->driver_name = NULL;
11783 ndr->flags = _flags_save_string;
11786 uint32_t _flags_save_string = ndr->flags;
11787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11789 if (_ptr_architecture) {
11790 NDR_PULL_ALLOC(ndr, r->architecture);
11791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11793 r->architecture = NULL;
11795 ndr->flags = _flags_save_string;
11798 uint32_t _flags_save_string = ndr->flags;
11799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11801 if (_ptr_driver_path) {
11802 NDR_PULL_ALLOC(ndr, r->driver_path);
11803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11805 r->driver_path = NULL;
11807 ndr->flags = _flags_save_string;
11810 uint32_t _flags_save_string = ndr->flags;
11811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11813 if (_ptr_data_file) {
11814 NDR_PULL_ALLOC(ndr, r->data_file);
11815 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11817 r->data_file = NULL;
11819 ndr->flags = _flags_save_string;
11822 uint32_t _flags_save_string = ndr->flags;
11823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11825 if (_ptr_config_file) {
11826 NDR_PULL_ALLOC(ndr, r->config_file);
11827 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11829 r->config_file = NULL;
11831 ndr->flags = _flags_save_string;
11834 uint32_t _flags_save_string = ndr->flags;
11835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11837 if (_ptr_help_file) {
11838 NDR_PULL_ALLOC(ndr, r->help_file);
11839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11841 r->help_file = NULL;
11843 ndr->flags = _flags_save_string;
11846 uint32_t _flags_save_string_array = ndr->flags;
11847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11849 if (_ptr_dependent_files) {
11850 NDR_PULL_ALLOC(ndr, r->dependent_files);
11851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11853 r->dependent_files = NULL;
11855 ndr->flags = _flags_save_string_array;
11858 uint32_t _flags_save_string = ndr->flags;
11859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11861 if (_ptr_monitor_name) {
11862 NDR_PULL_ALLOC(ndr, r->monitor_name);
11863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11865 r->monitor_name = NULL;
11867 ndr->flags = _flags_save_string;
11870 uint32_t _flags_save_string = ndr->flags;
11871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11873 if (_ptr_default_datatype) {
11874 NDR_PULL_ALLOC(ndr, r->default_datatype);
11875 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11877 r->default_datatype = NULL;
11879 ndr->flags = _flags_save_string;
11882 uint32_t _flags_save_string_array = ndr->flags;
11883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11885 if (_ptr_previous_names) {
11886 NDR_PULL_ALLOC(ndr, r->previous_names);
11887 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11889 r->previous_names = NULL;
11891 ndr->flags = _flags_save_string_array;
11893 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11894 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11896 uint32_t _flags_save_string = ndr->flags;
11897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11899 if (_ptr_manufacturer_name) {
11900 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11901 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
11903 r->manufacturer_name = NULL;
11905 ndr->flags = _flags_save_string;
11908 uint32_t _flags_save_string = ndr->flags;
11909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11911 if (_ptr_manufacturer_url) {
11912 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
11915 r->manufacturer_url = NULL;
11917 ndr->flags = _flags_save_string;
11920 uint32_t _flags_save_string = ndr->flags;
11921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11923 if (_ptr_hardware_id) {
11924 NDR_PULL_ALLOC(ndr, r->hardware_id);
11925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
11927 r->hardware_id = NULL;
11929 ndr->flags = _flags_save_string;
11932 uint32_t _flags_save_string = ndr->flags;
11933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11935 if (_ptr_provider) {
11936 NDR_PULL_ALLOC(ndr, r->provider);
11937 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
11939 r->provider = NULL;
11941 ndr->flags = _flags_save_string;
11944 if (ndr_flags & NDR_BUFFERS) {
11946 uint32_t _flags_save_string = ndr->flags;
11947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11948 if (r->driver_name) {
11949 uint32_t _relative_save_offset;
11950 _relative_save_offset = ndr->offset;
11951 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11952 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11953 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11954 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11956 ndr->offset = _relative_save_offset;
11958 ndr->flags = _flags_save_string;
11961 uint32_t _flags_save_string = ndr->flags;
11962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11963 if (r->architecture) {
11964 uint32_t _relative_save_offset;
11965 _relative_save_offset = ndr->offset;
11966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11967 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11968 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11969 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11971 ndr->offset = _relative_save_offset;
11973 ndr->flags = _flags_save_string;
11976 uint32_t _flags_save_string = ndr->flags;
11977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11978 if (r->driver_path) {
11979 uint32_t _relative_save_offset;
11980 _relative_save_offset = ndr->offset;
11981 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11982 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11983 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11984 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11986 ndr->offset = _relative_save_offset;
11988 ndr->flags = _flags_save_string;
11991 uint32_t _flags_save_string = ndr->flags;
11992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11993 if (r->data_file) {
11994 uint32_t _relative_save_offset;
11995 _relative_save_offset = ndr->offset;
11996 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11997 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11998 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11999 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12001 ndr->offset = _relative_save_offset;
12003 ndr->flags = _flags_save_string;
12006 uint32_t _flags_save_string = ndr->flags;
12007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12008 if (r->config_file) {
12009 uint32_t _relative_save_offset;
12010 _relative_save_offset = ndr->offset;
12011 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12012 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12013 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12014 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12016 ndr->offset = _relative_save_offset;
12018 ndr->flags = _flags_save_string;
12021 uint32_t _flags_save_string = ndr->flags;
12022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12023 if (r->help_file) {
12024 uint32_t _relative_save_offset;
12025 _relative_save_offset = ndr->offset;
12026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12027 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12028 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12031 ndr->offset = _relative_save_offset;
12033 ndr->flags = _flags_save_string;
12036 uint32_t _flags_save_string_array = ndr->flags;
12037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12038 if (r->dependent_files) {
12039 uint32_t _relative_save_offset;
12040 _relative_save_offset = ndr->offset;
12041 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12042 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12043 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12044 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12046 ndr->offset = _relative_save_offset;
12048 ndr->flags = _flags_save_string_array;
12051 uint32_t _flags_save_string = ndr->flags;
12052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12053 if (r->monitor_name) {
12054 uint32_t _relative_save_offset;
12055 _relative_save_offset = ndr->offset;
12056 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12057 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12058 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12059 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12061 ndr->offset = _relative_save_offset;
12063 ndr->flags = _flags_save_string;
12066 uint32_t _flags_save_string = ndr->flags;
12067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12068 if (r->default_datatype) {
12069 uint32_t _relative_save_offset;
12070 _relative_save_offset = ndr->offset;
12071 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12072 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12073 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12074 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12076 ndr->offset = _relative_save_offset;
12078 ndr->flags = _flags_save_string;
12081 uint32_t _flags_save_string_array = ndr->flags;
12082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12083 if (r->previous_names) {
12084 uint32_t _relative_save_offset;
12085 _relative_save_offset = ndr->offset;
12086 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12087 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12088 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12089 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12091 ndr->offset = _relative_save_offset;
12093 ndr->flags = _flags_save_string_array;
12096 uint32_t _flags_save_string = ndr->flags;
12097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12098 if (r->manufacturer_name) {
12099 uint32_t _relative_save_offset;
12100 _relative_save_offset = ndr->offset;
12101 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12102 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12103 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12104 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12106 ndr->offset = _relative_save_offset;
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->manufacturer_url) {
12114 uint32_t _relative_save_offset;
12115 _relative_save_offset = ndr->offset;
12116 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12117 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12118 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12119 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12121 ndr->offset = _relative_save_offset;
12123 ndr->flags = _flags_save_string;
12126 uint32_t _flags_save_string = ndr->flags;
12127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12128 if (r->hardware_id) {
12129 uint32_t _relative_save_offset;
12130 _relative_save_offset = ndr->offset;
12131 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12132 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12133 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12134 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12136 ndr->offset = _relative_save_offset;
12138 ndr->flags = _flags_save_string;
12141 uint32_t _flags_save_string = ndr->flags;
12142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12144 uint32_t _relative_save_offset;
12145 _relative_save_offset = ndr->offset;
12146 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12147 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12148 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12149 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12151 ndr->offset = _relative_save_offset;
12153 ndr->flags = _flags_save_string;
12156 return NDR_ERR_SUCCESS;
12159 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12161 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12163 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12164 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12166 if (r->driver_name) {
12167 ndr_print_string(ndr, "driver_name", r->driver_name);
12170 ndr_print_ptr(ndr, "architecture", r->architecture);
12172 if (r->architecture) {
12173 ndr_print_string(ndr, "architecture", r->architecture);
12176 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12178 if (r->driver_path) {
12179 ndr_print_string(ndr, "driver_path", r->driver_path);
12182 ndr_print_ptr(ndr, "data_file", r->data_file);
12184 if (r->data_file) {
12185 ndr_print_string(ndr, "data_file", r->data_file);
12188 ndr_print_ptr(ndr, "config_file", r->config_file);
12190 if (r->config_file) {
12191 ndr_print_string(ndr, "config_file", r->config_file);
12194 ndr_print_ptr(ndr, "help_file", r->help_file);
12196 if (r->help_file) {
12197 ndr_print_string(ndr, "help_file", r->help_file);
12200 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12202 if (r->dependent_files) {
12203 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12206 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12208 if (r->monitor_name) {
12209 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12212 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12214 if (r->default_datatype) {
12215 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12218 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12220 if (r->previous_names) {
12221 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12224 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12225 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12226 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12228 if (r->manufacturer_name) {
12229 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12232 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12234 if (r->manufacturer_url) {
12235 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12238 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12240 if (r->hardware_id) {
12241 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12244 ndr_print_ptr(ndr, "provider", r->provider);
12247 ndr_print_string(ndr, "provider", r->provider);
12253 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12255 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12258 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12260 if (ndr_flags & NDR_SCALARS) {
12261 NDR_CHECK(ndr_push_align(ndr, 8));
12262 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12264 uint32_t _flags_save_string = ndr->flags;
12265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12266 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12267 ndr->flags = _flags_save_string;
12270 uint32_t _flags_save_string = ndr->flags;
12271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12273 ndr->flags = _flags_save_string;
12276 uint32_t _flags_save_string = ndr->flags;
12277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12278 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12279 ndr->flags = _flags_save_string;
12282 uint32_t _flags_save_string = ndr->flags;
12283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12284 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12285 ndr->flags = _flags_save_string;
12288 uint32_t _flags_save_string = ndr->flags;
12289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12290 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12291 ndr->flags = _flags_save_string;
12294 uint32_t _flags_save_string = ndr->flags;
12295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12297 ndr->flags = _flags_save_string;
12300 uint32_t _flags_save_string = ndr->flags;
12301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12303 ndr->flags = _flags_save_string;
12306 uint32_t _flags_save_string = ndr->flags;
12307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12308 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12309 ndr->flags = _flags_save_string;
12312 uint32_t _flags_save_string_array = ndr->flags;
12313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12315 ndr->flags = _flags_save_string_array;
12318 uint32_t _flags_save_string_array = ndr->flags;
12319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12321 ndr->flags = _flags_save_string_array;
12323 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12324 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12326 uint32_t _flags_save_string = ndr->flags;
12327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12329 ndr->flags = _flags_save_string;
12332 uint32_t _flags_save_string = ndr->flags;
12333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12334 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12335 ndr->flags = _flags_save_string;
12338 uint32_t _flags_save_string = ndr->flags;
12339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12340 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12341 ndr->flags = _flags_save_string;
12344 uint32_t _flags_save_string = ndr->flags;
12345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12346 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12347 ndr->flags = _flags_save_string;
12350 uint32_t _flags_save_string = ndr->flags;
12351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12352 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12353 ndr->flags = _flags_save_string;
12356 uint32_t _flags_save_string = ndr->flags;
12357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12358 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12359 ndr->flags = _flags_save_string;
12362 uint32_t _flags_save_string_array = ndr->flags;
12363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12364 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12365 ndr->flags = _flags_save_string_array;
12368 uint32_t _flags_save_string = ndr->flags;
12369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12370 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12371 ndr->flags = _flags_save_string;
12373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12375 uint32_t _flags_save_string_array = ndr->flags;
12376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12377 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12378 ndr->flags = _flags_save_string_array;
12380 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12381 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12383 if (ndr_flags & NDR_BUFFERS) {
12385 uint32_t _flags_save_string = ndr->flags;
12386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12387 if (r->driver_name) {
12388 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12389 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12391 ndr->flags = _flags_save_string;
12394 uint32_t _flags_save_string = ndr->flags;
12395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12396 if (r->architecture) {
12397 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12398 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12400 ndr->flags = _flags_save_string;
12403 uint32_t _flags_save_string = ndr->flags;
12404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12405 if (r->driver_path) {
12406 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12407 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12409 ndr->flags = _flags_save_string;
12412 uint32_t _flags_save_string = ndr->flags;
12413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12414 if (r->data_file) {
12415 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12416 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12418 ndr->flags = _flags_save_string;
12421 uint32_t _flags_save_string = ndr->flags;
12422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12423 if (r->config_file) {
12424 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12425 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12427 ndr->flags = _flags_save_string;
12430 uint32_t _flags_save_string = ndr->flags;
12431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12432 if (r->help_file) {
12433 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12434 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12436 ndr->flags = _flags_save_string;
12439 uint32_t _flags_save_string = ndr->flags;
12440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12441 if (r->monitor_name) {
12442 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12443 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12445 ndr->flags = _flags_save_string;
12448 uint32_t _flags_save_string = ndr->flags;
12449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12450 if (r->default_datatype) {
12451 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12452 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12454 ndr->flags = _flags_save_string;
12457 uint32_t _flags_save_string_array = ndr->flags;
12458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12459 if (r->dependent_files) {
12460 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12461 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12463 ndr->flags = _flags_save_string_array;
12466 uint32_t _flags_save_string_array = ndr->flags;
12467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12468 if (r->previous_names) {
12469 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12470 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12472 ndr->flags = _flags_save_string_array;
12475 uint32_t _flags_save_string = ndr->flags;
12476 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12477 if (r->manufacturer_name) {
12478 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12479 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12481 ndr->flags = _flags_save_string;
12484 uint32_t _flags_save_string = ndr->flags;
12485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12486 if (r->manufacturer_url) {
12487 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12488 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12490 ndr->flags = _flags_save_string;
12493 uint32_t _flags_save_string = ndr->flags;
12494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12495 if (r->hardware_id) {
12496 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12497 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12499 ndr->flags = _flags_save_string;
12502 uint32_t _flags_save_string = ndr->flags;
12503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12505 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12506 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12508 ndr->flags = _flags_save_string;
12511 uint32_t _flags_save_string = ndr->flags;
12512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12513 if (r->print_processor) {
12514 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
12515 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12517 ndr->flags = _flags_save_string;
12520 uint32_t _flags_save_string = ndr->flags;
12521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12522 if (r->vendor_setup) {
12523 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
12524 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12526 ndr->flags = _flags_save_string;
12529 uint32_t _flags_save_string_array = ndr->flags;
12530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12531 if (r->color_profiles) {
12532 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
12533 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12535 ndr->flags = _flags_save_string_array;
12538 uint32_t _flags_save_string = ndr->flags;
12539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12541 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
12542 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12544 ndr->flags = _flags_save_string;
12547 uint32_t _flags_save_string_array = ndr->flags;
12548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12549 if (r->core_driver_dependencies) {
12550 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
12551 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12553 ndr->flags = _flags_save_string_array;
12556 return NDR_ERR_SUCCESS;
12559 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12561 uint32_t _ptr_driver_name;
12562 TALLOC_CTX *_mem_save_driver_name_0;
12563 uint32_t _ptr_architecture;
12564 TALLOC_CTX *_mem_save_architecture_0;
12565 uint32_t _ptr_driver_path;
12566 TALLOC_CTX *_mem_save_driver_path_0;
12567 uint32_t _ptr_data_file;
12568 TALLOC_CTX *_mem_save_data_file_0;
12569 uint32_t _ptr_config_file;
12570 TALLOC_CTX *_mem_save_config_file_0;
12571 uint32_t _ptr_help_file;
12572 TALLOC_CTX *_mem_save_help_file_0;
12573 uint32_t _ptr_monitor_name;
12574 TALLOC_CTX *_mem_save_monitor_name_0;
12575 uint32_t _ptr_default_datatype;
12576 TALLOC_CTX *_mem_save_default_datatype_0;
12577 uint32_t _ptr_dependent_files;
12578 TALLOC_CTX *_mem_save_dependent_files_0;
12579 uint32_t _ptr_previous_names;
12580 TALLOC_CTX *_mem_save_previous_names_0;
12581 uint32_t _ptr_manufacturer_name;
12582 TALLOC_CTX *_mem_save_manufacturer_name_0;
12583 uint32_t _ptr_manufacturer_url;
12584 TALLOC_CTX *_mem_save_manufacturer_url_0;
12585 uint32_t _ptr_hardware_id;
12586 TALLOC_CTX *_mem_save_hardware_id_0;
12587 uint32_t _ptr_provider;
12588 TALLOC_CTX *_mem_save_provider_0;
12589 uint32_t _ptr_print_processor;
12590 TALLOC_CTX *_mem_save_print_processor_0;
12591 uint32_t _ptr_vendor_setup;
12592 TALLOC_CTX *_mem_save_vendor_setup_0;
12593 uint32_t _ptr_color_profiles;
12594 TALLOC_CTX *_mem_save_color_profiles_0;
12595 uint32_t _ptr_inf_path;
12596 TALLOC_CTX *_mem_save_inf_path_0;
12597 uint32_t _ptr_core_driver_dependencies;
12598 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12599 if (ndr_flags & NDR_SCALARS) {
12600 NDR_CHECK(ndr_pull_align(ndr, 8));
12601 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12603 uint32_t _flags_save_string = ndr->flags;
12604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12606 if (_ptr_driver_name) {
12607 NDR_PULL_ALLOC(ndr, r->driver_name);
12608 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12610 r->driver_name = NULL;
12612 ndr->flags = _flags_save_string;
12615 uint32_t _flags_save_string = ndr->flags;
12616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12618 if (_ptr_architecture) {
12619 NDR_PULL_ALLOC(ndr, r->architecture);
12620 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12622 r->architecture = NULL;
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12630 if (_ptr_driver_path) {
12631 NDR_PULL_ALLOC(ndr, r->driver_path);
12632 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12634 r->driver_path = NULL;
12636 ndr->flags = _flags_save_string;
12639 uint32_t _flags_save_string = ndr->flags;
12640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12642 if (_ptr_data_file) {
12643 NDR_PULL_ALLOC(ndr, r->data_file);
12644 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12646 r->data_file = NULL;
12648 ndr->flags = _flags_save_string;
12651 uint32_t _flags_save_string = ndr->flags;
12652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12654 if (_ptr_config_file) {
12655 NDR_PULL_ALLOC(ndr, r->config_file);
12656 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12658 r->config_file = NULL;
12660 ndr->flags = _flags_save_string;
12663 uint32_t _flags_save_string = ndr->flags;
12664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12666 if (_ptr_help_file) {
12667 NDR_PULL_ALLOC(ndr, r->help_file);
12668 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12670 r->help_file = NULL;
12672 ndr->flags = _flags_save_string;
12675 uint32_t _flags_save_string = ndr->flags;
12676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12678 if (_ptr_monitor_name) {
12679 NDR_PULL_ALLOC(ndr, r->monitor_name);
12680 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12682 r->monitor_name = NULL;
12684 ndr->flags = _flags_save_string;
12687 uint32_t _flags_save_string = ndr->flags;
12688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12690 if (_ptr_default_datatype) {
12691 NDR_PULL_ALLOC(ndr, r->default_datatype);
12692 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12694 r->default_datatype = NULL;
12696 ndr->flags = _flags_save_string;
12699 uint32_t _flags_save_string_array = ndr->flags;
12700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12701 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12702 if (_ptr_dependent_files) {
12703 NDR_PULL_ALLOC(ndr, r->dependent_files);
12704 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12706 r->dependent_files = NULL;
12708 ndr->flags = _flags_save_string_array;
12711 uint32_t _flags_save_string_array = ndr->flags;
12712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12714 if (_ptr_previous_names) {
12715 NDR_PULL_ALLOC(ndr, r->previous_names);
12716 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12718 r->previous_names = NULL;
12720 ndr->flags = _flags_save_string_array;
12722 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12723 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12725 uint32_t _flags_save_string = ndr->flags;
12726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12728 if (_ptr_manufacturer_name) {
12729 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12732 r->manufacturer_name = NULL;
12734 ndr->flags = _flags_save_string;
12737 uint32_t _flags_save_string = ndr->flags;
12738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12740 if (_ptr_manufacturer_url) {
12741 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12744 r->manufacturer_url = NULL;
12746 ndr->flags = _flags_save_string;
12749 uint32_t _flags_save_string = ndr->flags;
12750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12752 if (_ptr_hardware_id) {
12753 NDR_PULL_ALLOC(ndr, r->hardware_id);
12754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12756 r->hardware_id = NULL;
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_pull_generic_ptr(ndr, &_ptr_provider));
12764 if (_ptr_provider) {
12765 NDR_PULL_ALLOC(ndr, r->provider);
12766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12768 r->provider = NULL;
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_pull_generic_ptr(ndr, &_ptr_print_processor));
12776 if (_ptr_print_processor) {
12777 NDR_PULL_ALLOC(ndr, r->print_processor);
12778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12780 r->print_processor = NULL;
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_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12788 if (_ptr_vendor_setup) {
12789 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12792 r->vendor_setup = NULL;
12794 ndr->flags = _flags_save_string;
12797 uint32_t _flags_save_string_array = ndr->flags;
12798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12800 if (_ptr_color_profiles) {
12801 NDR_PULL_ALLOC(ndr, r->color_profiles);
12802 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12804 r->color_profiles = NULL;
12806 ndr->flags = _flags_save_string_array;
12809 uint32_t _flags_save_string = ndr->flags;
12810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
12812 if (_ptr_inf_path) {
12813 NDR_PULL_ALLOC(ndr, r->inf_path);
12814 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12816 r->inf_path = NULL;
12818 ndr->flags = _flags_save_string;
12820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12822 uint32_t _flags_save_string_array = ndr->flags;
12823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12825 if (_ptr_core_driver_dependencies) {
12826 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12827 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12829 r->core_driver_dependencies = NULL;
12831 ndr->flags = _flags_save_string_array;
12833 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12834 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12836 if (ndr_flags & NDR_BUFFERS) {
12838 uint32_t _flags_save_string = ndr->flags;
12839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12840 if (r->driver_name) {
12841 uint32_t _relative_save_offset;
12842 _relative_save_offset = ndr->offset;
12843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12844 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12845 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12848 ndr->offset = _relative_save_offset;
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 if (r->architecture) {
12856 uint32_t _relative_save_offset;
12857 _relative_save_offset = ndr->offset;
12858 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12859 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12860 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12861 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12863 ndr->offset = _relative_save_offset;
12865 ndr->flags = _flags_save_string;
12868 uint32_t _flags_save_string = ndr->flags;
12869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12870 if (r->driver_path) {
12871 uint32_t _relative_save_offset;
12872 _relative_save_offset = ndr->offset;
12873 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12874 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12875 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12876 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12878 ndr->offset = _relative_save_offset;
12880 ndr->flags = _flags_save_string;
12883 uint32_t _flags_save_string = ndr->flags;
12884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12885 if (r->data_file) {
12886 uint32_t _relative_save_offset;
12887 _relative_save_offset = ndr->offset;
12888 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12889 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12890 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12891 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12893 ndr->offset = _relative_save_offset;
12895 ndr->flags = _flags_save_string;
12898 uint32_t _flags_save_string = ndr->flags;
12899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12900 if (r->config_file) {
12901 uint32_t _relative_save_offset;
12902 _relative_save_offset = ndr->offset;
12903 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12904 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12905 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12906 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12908 ndr->offset = _relative_save_offset;
12910 ndr->flags = _flags_save_string;
12913 uint32_t _flags_save_string = ndr->flags;
12914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12915 if (r->help_file) {
12916 uint32_t _relative_save_offset;
12917 _relative_save_offset = ndr->offset;
12918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12919 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12920 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12923 ndr->offset = _relative_save_offset;
12925 ndr->flags = _flags_save_string;
12928 uint32_t _flags_save_string = ndr->flags;
12929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12930 if (r->monitor_name) {
12931 uint32_t _relative_save_offset;
12932 _relative_save_offset = ndr->offset;
12933 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12934 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12935 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12936 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12938 ndr->offset = _relative_save_offset;
12940 ndr->flags = _flags_save_string;
12943 uint32_t _flags_save_string = ndr->flags;
12944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12945 if (r->default_datatype) {
12946 uint32_t _relative_save_offset;
12947 _relative_save_offset = ndr->offset;
12948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12949 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12950 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12953 ndr->offset = _relative_save_offset;
12955 ndr->flags = _flags_save_string;
12958 uint32_t _flags_save_string_array = ndr->flags;
12959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12960 if (r->dependent_files) {
12961 uint32_t _relative_save_offset;
12962 _relative_save_offset = ndr->offset;
12963 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12964 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12965 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12966 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12968 ndr->offset = _relative_save_offset;
12970 ndr->flags = _flags_save_string_array;
12973 uint32_t _flags_save_string_array = ndr->flags;
12974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12975 if (r->previous_names) {
12976 uint32_t _relative_save_offset;
12977 _relative_save_offset = ndr->offset;
12978 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12979 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12980 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12981 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12983 ndr->offset = _relative_save_offset;
12985 ndr->flags = _flags_save_string_array;
12988 uint32_t _flags_save_string = ndr->flags;
12989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12990 if (r->manufacturer_name) {
12991 uint32_t _relative_save_offset;
12992 _relative_save_offset = ndr->offset;
12993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12994 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12995 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12998 ndr->offset = _relative_save_offset;
13000 ndr->flags = _flags_save_string;
13003 uint32_t _flags_save_string = ndr->flags;
13004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13005 if (r->manufacturer_url) {
13006 uint32_t _relative_save_offset;
13007 _relative_save_offset = ndr->offset;
13008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13009 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13010 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13013 ndr->offset = _relative_save_offset;
13015 ndr->flags = _flags_save_string;
13018 uint32_t _flags_save_string = ndr->flags;
13019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13020 if (r->hardware_id) {
13021 uint32_t _relative_save_offset;
13022 _relative_save_offset = ndr->offset;
13023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13024 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13025 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13026 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13028 ndr->offset = _relative_save_offset;
13030 ndr->flags = _flags_save_string;
13033 uint32_t _flags_save_string = ndr->flags;
13034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13036 uint32_t _relative_save_offset;
13037 _relative_save_offset = ndr->offset;
13038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13039 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13040 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13043 ndr->offset = _relative_save_offset;
13045 ndr->flags = _flags_save_string;
13048 uint32_t _flags_save_string = ndr->flags;
13049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13050 if (r->print_processor) {
13051 uint32_t _relative_save_offset;
13052 _relative_save_offset = ndr->offset;
13053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13054 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13055 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13058 ndr->offset = _relative_save_offset;
13060 ndr->flags = _flags_save_string;
13063 uint32_t _flags_save_string = ndr->flags;
13064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13065 if (r->vendor_setup) {
13066 uint32_t _relative_save_offset;
13067 _relative_save_offset = ndr->offset;
13068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13069 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13070 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13071 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13073 ndr->offset = _relative_save_offset;
13075 ndr->flags = _flags_save_string;
13078 uint32_t _flags_save_string_array = ndr->flags;
13079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13080 if (r->color_profiles) {
13081 uint32_t _relative_save_offset;
13082 _relative_save_offset = ndr->offset;
13083 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13084 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13085 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13086 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13088 ndr->offset = _relative_save_offset;
13090 ndr->flags = _flags_save_string_array;
13093 uint32_t _flags_save_string = ndr->flags;
13094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13096 uint32_t _relative_save_offset;
13097 _relative_save_offset = ndr->offset;
13098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13099 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13100 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13103 ndr->offset = _relative_save_offset;
13105 ndr->flags = _flags_save_string;
13108 uint32_t _flags_save_string_array = ndr->flags;
13109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13110 if (r->core_driver_dependencies) {
13111 uint32_t _relative_save_offset;
13112 _relative_save_offset = ndr->offset;
13113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13114 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13115 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13116 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13118 ndr->offset = _relative_save_offset;
13120 ndr->flags = _flags_save_string_array;
13123 return NDR_ERR_SUCCESS;
13126 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13128 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13130 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13131 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13133 if (r->driver_name) {
13134 ndr_print_string(ndr, "driver_name", r->driver_name);
13137 ndr_print_ptr(ndr, "architecture", r->architecture);
13139 if (r->architecture) {
13140 ndr_print_string(ndr, "architecture", r->architecture);
13143 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13145 if (r->driver_path) {
13146 ndr_print_string(ndr, "driver_path", r->driver_path);
13149 ndr_print_ptr(ndr, "data_file", r->data_file);
13151 if (r->data_file) {
13152 ndr_print_string(ndr, "data_file", r->data_file);
13155 ndr_print_ptr(ndr, "config_file", r->config_file);
13157 if (r->config_file) {
13158 ndr_print_string(ndr, "config_file", r->config_file);
13161 ndr_print_ptr(ndr, "help_file", r->help_file);
13163 if (r->help_file) {
13164 ndr_print_string(ndr, "help_file", r->help_file);
13167 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13169 if (r->monitor_name) {
13170 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13173 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13175 if (r->default_datatype) {
13176 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13179 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13181 if (r->dependent_files) {
13182 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13185 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13187 if (r->previous_names) {
13188 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13191 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13192 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13193 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13195 if (r->manufacturer_name) {
13196 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13199 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13201 if (r->manufacturer_url) {
13202 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13205 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13207 if (r->hardware_id) {
13208 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13211 ndr_print_ptr(ndr, "provider", r->provider);
13214 ndr_print_string(ndr, "provider", r->provider);
13217 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13219 if (r->print_processor) {
13220 ndr_print_string(ndr, "print_processor", r->print_processor);
13223 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13225 if (r->vendor_setup) {
13226 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13229 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13231 if (r->color_profiles) {
13232 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13235 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13238 ndr_print_string(ndr, "inf_path", r->inf_path);
13241 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13242 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13244 if (r->core_driver_dependencies) {
13245 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13248 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13249 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13253 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13255 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13258 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13261 return NDR_ERR_SUCCESS;
13264 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13269 return NDR_ERR_SUCCESS;
13272 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13274 const char *val = NULL;
13277 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13278 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13279 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13280 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13281 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13283 ndr_print_enum(ndr, name, "ENUM", val, r);
13286 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13288 if (ndr_flags & NDR_SCALARS) {
13289 NDR_CHECK(ndr_push_align(ndr, 4));
13291 uint32_t _flags_save_string = ndr->flags;
13292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13293 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13294 ndr->flags = _flags_save_string;
13296 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13299 if (ndr_flags & NDR_BUFFERS) {
13301 uint32_t _flags_save_string = ndr->flags;
13302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13303 if (r->file_name) {
13304 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13305 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13307 ndr->flags = _flags_save_string;
13310 return NDR_ERR_SUCCESS;
13313 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13315 uint32_t _ptr_file_name;
13316 TALLOC_CTX *_mem_save_file_name_0;
13317 if (ndr_flags & NDR_SCALARS) {
13318 NDR_CHECK(ndr_pull_align(ndr, 4));
13320 uint32_t _flags_save_string = ndr->flags;
13321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13323 if (_ptr_file_name) {
13324 NDR_PULL_ALLOC(ndr, r->file_name);
13325 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13327 r->file_name = NULL;
13329 ndr->flags = _flags_save_string;
13331 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13334 if (ndr_flags & NDR_BUFFERS) {
13336 uint32_t _flags_save_string = ndr->flags;
13337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13338 if (r->file_name) {
13339 uint32_t _relative_save_offset;
13340 _relative_save_offset = ndr->offset;
13341 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13342 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13343 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13344 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13346 ndr->offset = _relative_save_offset;
13348 ndr->flags = _flags_save_string;
13351 return NDR_ERR_SUCCESS;
13354 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13356 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13358 ndr_print_ptr(ndr, "file_name", r->file_name);
13360 if (r->file_name) {
13361 ndr_print_string(ndr, "file_name", r->file_name);
13364 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13365 ndr_print_uint32(ndr, "file_version", r->file_version);
13369 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13371 uint32_t cntr_file_info_1;
13372 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13374 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13375 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13377 if (r->driver_name) {
13378 ndr_print_string(ndr, "driver_name", r->driver_name);
13381 ndr_print_ptr(ndr, "architecture", r->architecture);
13383 if (r->architecture) {
13384 ndr_print_string(ndr, "architecture", r->architecture);
13387 ndr_print_ptr(ndr, "file_info", r->file_info);
13389 if (r->file_info) {
13390 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13392 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13394 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13395 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13402 ndr_print_uint32(ndr, "file_count", r->file_count);
13403 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13405 if (r->monitor_name) {
13406 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13409 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13411 if (r->default_datatype) {
13412 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13415 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13417 if (r->previous_names) {
13418 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13421 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13422 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13423 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13425 if (r->manufacturer_name) {
13426 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13429 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13431 if (r->manufacturer_url) {
13432 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13435 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13437 if (r->hardware_id) {
13438 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13441 ndr_print_ptr(ndr, "provider", r->provider);
13444 ndr_print_string(ndr, "provider", r->provider);
13450 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13452 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13455 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13457 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13458 if (ndr_flags & NDR_SCALARS) {
13459 int level = ndr_push_get_switch_value(ndr, r);
13462 NDR_CHECK(ndr_push_align(ndr, 4));
13463 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13464 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13468 NDR_CHECK(ndr_push_align(ndr, 4));
13469 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13470 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13474 NDR_CHECK(ndr_push_align(ndr, 4));
13475 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13476 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13480 NDR_CHECK(ndr_push_align(ndr, 4));
13481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13482 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13486 NDR_CHECK(ndr_push_align(ndr, 4));
13487 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13488 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13492 NDR_CHECK(ndr_push_align(ndr, 8));
13493 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13494 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13498 NDR_CHECK(ndr_push_align(ndr, 8));
13499 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13500 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13504 NDR_CHECK(ndr_push_align(ndr, 8));
13505 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13506 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13514 if (ndr_flags & NDR_BUFFERS) {
13515 int level = ndr_push_get_switch_value(ndr, r);
13516 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13519 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13523 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13527 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13531 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13535 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13539 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13543 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13547 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13555 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13556 return NDR_ERR_SUCCESS;
13559 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13561 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13563 level = ndr_pull_get_switch_value(ndr, r);
13564 if (ndr_flags & NDR_SCALARS) {
13567 NDR_CHECK(ndr_pull_align(ndr, 4));
13568 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13569 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13573 NDR_CHECK(ndr_pull_align(ndr, 4));
13574 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13575 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13579 NDR_CHECK(ndr_pull_align(ndr, 4));
13580 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13581 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13585 NDR_CHECK(ndr_pull_align(ndr, 4));
13586 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13587 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13591 NDR_CHECK(ndr_pull_align(ndr, 4));
13592 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13593 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13597 NDR_CHECK(ndr_pull_align(ndr, 8));
13598 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13599 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13603 NDR_CHECK(ndr_pull_align(ndr, 8));
13604 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13605 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13609 NDR_CHECK(ndr_pull_align(ndr, 8));
13610 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13611 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13619 if (ndr_flags & NDR_BUFFERS) {
13620 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13623 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13627 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13631 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13635 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13639 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13643 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13647 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13651 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13659 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13660 return NDR_ERR_SUCCESS;
13663 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13666 level = ndr_print_get_switch_value(ndr, r);
13667 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13670 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13674 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13678 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13682 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13686 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13690 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13694 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13698 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13707 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13709 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
13712 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13714 if (ndr_flags & NDR_SCALARS) {
13715 NDR_CHECK(ndr_push_align(ndr, 4));
13717 uint32_t _flags_save_string = ndr->flags;
13718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13720 ndr->flags = _flags_save_string;
13723 if (ndr_flags & NDR_BUFFERS) {
13725 return NDR_ERR_SUCCESS;
13728 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13730 if (ndr_flags & NDR_SCALARS) {
13731 NDR_CHECK(ndr_pull_align(ndr, 4));
13733 uint32_t _flags_save_string = ndr->flags;
13734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13735 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13736 ndr->flags = _flags_save_string;
13739 if (ndr_flags & NDR_BUFFERS) {
13741 return NDR_ERR_SUCCESS;
13744 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13746 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13748 ndr_print_string(ndr, "directory_name", r->directory_name);
13752 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13754 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13757 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13759 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13760 if (ndr_flags & NDR_SCALARS) {
13761 int level = ndr_push_get_switch_value(ndr, r);
13764 NDR_CHECK(ndr_push_align(ndr, 4));
13765 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13766 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13770 NDR_CHECK(ndr_push_align(ndr, 4));
13771 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13772 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13777 if (ndr_flags & NDR_BUFFERS) {
13778 int level = ndr_push_get_switch_value(ndr, r);
13779 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13789 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13790 return NDR_ERR_SUCCESS;
13793 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13795 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13797 level = ndr_pull_get_switch_value(ndr, r);
13798 if (ndr_flags & NDR_SCALARS) {
13801 NDR_CHECK(ndr_pull_align(ndr, 4));
13802 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13803 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13807 NDR_CHECK(ndr_pull_align(ndr, 4));
13808 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13809 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13814 if (ndr_flags & NDR_BUFFERS) {
13815 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13825 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13826 return NDR_ERR_SUCCESS;
13829 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13832 level = ndr_print_get_switch_value(ndr, r);
13833 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
13836 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13840 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13846 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13848 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
13851 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
13853 if (ndr_flags & NDR_SCALARS) {
13854 NDR_CHECK(ndr_push_align(ndr, 4));
13856 uint32_t _flags_save_string = ndr->flags;
13857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
13859 ndr->flags = _flags_save_string;
13862 if (ndr_flags & NDR_BUFFERS) {
13864 uint32_t _flags_save_string = ndr->flags;
13865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13866 if (r->print_processor_name) {
13867 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
13868 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
13870 ndr->flags = _flags_save_string;
13873 return NDR_ERR_SUCCESS;
13876 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
13878 uint32_t _ptr_print_processor_name;
13879 TALLOC_CTX *_mem_save_print_processor_name_0;
13880 if (ndr_flags & NDR_SCALARS) {
13881 NDR_CHECK(ndr_pull_align(ndr, 4));
13883 uint32_t _flags_save_string = ndr->flags;
13884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
13886 if (_ptr_print_processor_name) {
13887 NDR_PULL_ALLOC(ndr, r->print_processor_name);
13888 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
13890 r->print_processor_name = NULL;
13892 ndr->flags = _flags_save_string;
13895 if (ndr_flags & NDR_BUFFERS) {
13897 uint32_t _flags_save_string = ndr->flags;
13898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13899 if (r->print_processor_name) {
13900 uint32_t _relative_save_offset;
13901 _relative_save_offset = ndr->offset;
13902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
13903 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13904 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
13905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
13906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
13907 ndr->offset = _relative_save_offset;
13909 ndr->flags = _flags_save_string;
13912 return NDR_ERR_SUCCESS;
13915 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
13917 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
13919 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
13921 if (r->print_processor_name) {
13922 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
13928 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13930 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
13933 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
13935 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13936 if (ndr_flags & NDR_SCALARS) {
13937 int level = ndr_push_get_switch_value(ndr, r);
13940 NDR_CHECK(ndr_push_align(ndr, 4));
13941 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13942 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13950 if (ndr_flags & NDR_BUFFERS) {
13951 int level = ndr_push_get_switch_value(ndr, r);
13952 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13955 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13963 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13964 return NDR_ERR_SUCCESS;
13967 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
13969 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13971 level = ndr_pull_get_switch_value(ndr, r);
13972 if (ndr_flags & NDR_SCALARS) {
13975 NDR_CHECK(ndr_pull_align(ndr, 4));
13976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13977 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13985 if (ndr_flags & NDR_BUFFERS) {
13986 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13989 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13997 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13998 return NDR_ERR_SUCCESS;
14001 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14004 level = ndr_print_get_switch_value(ndr, r);
14005 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14008 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14017 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14019 if (ndr_flags & NDR_SCALARS) {
14020 NDR_CHECK(ndr_push_align(ndr, 4));
14022 uint32_t _flags_save_string = ndr->flags;
14023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14024 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14025 ndr->flags = _flags_save_string;
14028 if (ndr_flags & NDR_BUFFERS) {
14030 return NDR_ERR_SUCCESS;
14033 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14035 if (ndr_flags & NDR_SCALARS) {
14036 NDR_CHECK(ndr_pull_align(ndr, 4));
14038 uint32_t _flags_save_string = ndr->flags;
14039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14041 ndr->flags = _flags_save_string;
14044 if (ndr_flags & NDR_BUFFERS) {
14046 return NDR_ERR_SUCCESS;
14049 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14051 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14053 ndr_print_string(ndr, "directory_name", r->directory_name);
14057 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14059 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14062 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14064 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14065 if (ndr_flags & NDR_SCALARS) {
14066 int level = ndr_push_get_switch_value(ndr, r);
14069 NDR_CHECK(ndr_push_align(ndr, 4));
14070 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14071 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14075 NDR_CHECK(ndr_push_align(ndr, 4));
14076 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14077 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14082 if (ndr_flags & NDR_BUFFERS) {
14083 int level = ndr_push_get_switch_value(ndr, r);
14084 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14094 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14095 return NDR_ERR_SUCCESS;
14098 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14100 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14102 level = ndr_pull_get_switch_value(ndr, r);
14103 if (ndr_flags & NDR_SCALARS) {
14106 NDR_CHECK(ndr_pull_align(ndr, 4));
14107 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14108 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14112 NDR_CHECK(ndr_pull_align(ndr, 4));
14113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14114 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14119 if (ndr_flags & NDR_BUFFERS) {
14120 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14130 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14131 return NDR_ERR_SUCCESS;
14134 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14137 level = ndr_print_get_switch_value(ndr, r);
14138 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14141 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14145 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14151 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14153 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14156 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14158 if (ndr_flags & NDR_SCALARS) {
14159 NDR_CHECK(ndr_push_align(ndr, 4));
14160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14161 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14162 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14164 if (ndr_flags & NDR_BUFFERS) {
14165 if (r->document_name) {
14166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14171 if (r->output_file) {
14172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14175 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14184 return NDR_ERR_SUCCESS;
14187 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14189 uint32_t _ptr_document_name;
14190 TALLOC_CTX *_mem_save_document_name_0;
14191 uint32_t _ptr_output_file;
14192 TALLOC_CTX *_mem_save_output_file_0;
14193 uint32_t _ptr_datatype;
14194 TALLOC_CTX *_mem_save_datatype_0;
14195 if (ndr_flags & NDR_SCALARS) {
14196 NDR_CHECK(ndr_pull_align(ndr, 4));
14197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14198 if (_ptr_document_name) {
14199 NDR_PULL_ALLOC(ndr, r->document_name);
14201 r->document_name = NULL;
14203 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14204 if (_ptr_output_file) {
14205 NDR_PULL_ALLOC(ndr, r->output_file);
14207 r->output_file = NULL;
14209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14210 if (_ptr_datatype) {
14211 NDR_PULL_ALLOC(ndr, r->datatype);
14213 r->datatype = NULL;
14216 if (ndr_flags & NDR_BUFFERS) {
14217 if (r->document_name) {
14218 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14219 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14220 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14221 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14222 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14223 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));
14225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14229 if (r->output_file) {
14230 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14231 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14232 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14233 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14234 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14235 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));
14237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14242 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14243 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14244 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14245 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14246 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14247 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));
14249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14254 return NDR_ERR_SUCCESS;
14257 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14259 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14261 ndr_print_ptr(ndr, "document_name", r->document_name);
14263 if (r->document_name) {
14264 ndr_print_string(ndr, "document_name", r->document_name);
14267 ndr_print_ptr(ndr, "output_file", r->output_file);
14269 if (r->output_file) {
14270 ndr_print_string(ndr, "output_file", r->output_file);
14273 ndr_print_ptr(ndr, "datatype", r->datatype);
14276 ndr_print_string(ndr, "datatype", r->datatype);
14282 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14284 if (ndr_flags & NDR_SCALARS) {
14285 int level = ndr_push_get_switch_value(ndr, r);
14286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14303 if (ndr_flags & NDR_BUFFERS) {
14304 int level = ndr_push_get_switch_value(ndr, r);
14308 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14323 return NDR_ERR_SUCCESS;
14326 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14330 TALLOC_CTX *_mem_save_info1_0;
14331 level = ndr_pull_get_switch_value(ndr, r);
14332 if (ndr_flags & NDR_SCALARS) {
14333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14334 if (_level != level) {
14335 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14339 uint32_t _ptr_info1;
14340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14342 NDR_PULL_ALLOC(ndr, r->info1);
14359 if (ndr_flags & NDR_BUFFERS) {
14363 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14364 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14365 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14381 return NDR_ERR_SUCCESS;
14384 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14387 level = ndr_print_get_switch_value(ndr, r);
14388 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14391 ndr_print_ptr(ndr, "info1", r->info1);
14394 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14411 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14413 if (ndr_flags & NDR_SCALARS) {
14414 NDR_CHECK(ndr_push_align(ndr, 4));
14415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14421 uint32_t _flags_save_string = ndr->flags;
14422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14424 struct ndr_push *_ndr_extra_string;
14425 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14426 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14427 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14429 ndr->flags = _flags_save_string;
14432 if (ndr_flags & NDR_BUFFERS) {
14434 return NDR_ERR_SUCCESS;
14437 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14439 if (ndr_flags & NDR_SCALARS) {
14440 NDR_CHECK(ndr_pull_align(ndr, 4));
14441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14447 uint32_t _flags_save_string = ndr->flags;
14448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14450 struct ndr_pull *_ndr_extra_string;
14451 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14452 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14453 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14455 ndr->flags = _flags_save_string;
14458 if (ndr_flags & NDR_BUFFERS) {
14460 return NDR_ERR_SUCCESS;
14463 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14465 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14467 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);
14468 ndr_print_uint32(ndr, "major", r->major);
14469 ndr_print_uint32(ndr, "minor", r->minor);
14470 ndr_print_uint32(ndr, "build", r->build);
14471 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14472 ndr_print_string(ndr, "extra_string", r->extra_string);
14476 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14478 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14483 if (ndr_flags & NDR_SCALARS) {
14484 NDR_CHECK(ndr_push_align(ndr, 4));
14485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14491 uint32_t _flags_save_string = ndr->flags;
14492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14494 struct ndr_push *_ndr_extra_string;
14495 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14496 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14497 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14499 ndr->flags = _flags_save_string;
14501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14504 if (ndr_flags & NDR_BUFFERS) {
14506 return NDR_ERR_SUCCESS;
14509 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14511 if (ndr_flags & NDR_SCALARS) {
14512 NDR_CHECK(ndr_pull_align(ndr, 4));
14513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14519 uint32_t _flags_save_string = ndr->flags;
14520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14522 struct ndr_pull *_ndr_extra_string;
14523 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14524 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14525 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14527 ndr->flags = _flags_save_string;
14529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14532 if (ndr_flags & NDR_BUFFERS) {
14534 return NDR_ERR_SUCCESS;
14537 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14539 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14541 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);
14542 ndr_print_uint32(ndr, "major", r->major);
14543 ndr_print_uint32(ndr, "minor", r->minor);
14544 ndr_print_uint32(ndr, "build", r->build);
14545 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14546 ndr_print_string(ndr, "extra_string", r->extra_string);
14547 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14548 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14552 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14554 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14557 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14559 if (ndr_flags & NDR_SCALARS) {
14560 int level = ndr_push_get_switch_value(ndr, r);
14567 uint32_t _flags_save_string = ndr->flags;
14568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14569 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14570 ndr->flags = _flags_save_string;
14576 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14578 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14579 ndr->flags = _flags_save_DATA_BLOB;
14584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14587 case REG_MULTI_SZ: {
14589 uint32_t _flags_save_string_array = ndr->flags;
14590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14591 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14592 ndr->flags = _flags_save_string_array;
14598 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14600 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14601 ndr->flags = _flags_save_DATA_BLOB;
14607 if (ndr_flags & NDR_BUFFERS) {
14608 int level = ndr_push_get_switch_value(ndr, r);
14630 return NDR_ERR_SUCCESS;
14633 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14636 level = ndr_pull_get_switch_value(ndr, r);
14637 if (ndr_flags & NDR_SCALARS) {
14644 uint32_t _flags_save_string = ndr->flags;
14645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14646 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14647 ndr->flags = _flags_save_string;
14653 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14655 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14656 ndr->flags = _flags_save_DATA_BLOB;
14661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14664 case REG_MULTI_SZ: {
14666 uint32_t _flags_save_string_array = ndr->flags;
14667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14668 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14669 ndr->flags = _flags_save_string_array;
14675 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14677 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14678 ndr->flags = _flags_save_DATA_BLOB;
14684 if (ndr_flags & NDR_BUFFERS) {
14706 return NDR_ERR_SUCCESS;
14709 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14712 level = ndr_print_get_switch_value(ndr, r);
14713 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14719 ndr_print_string(ndr, "string", r->string);
14723 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14727 ndr_print_uint32(ndr, "value", r->value);
14731 ndr_print_string_array(ndr, "string_array", r->string_array);
14735 ndr_print_DATA_BLOB(ndr, "data", r->data);
14741 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14743 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14746 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14749 return NDR_ERR_SUCCESS;
14752 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14757 return NDR_ERR_SUCCESS;
14760 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14762 const char *val = NULL;
14765 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14766 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14767 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14769 ndr_print_enum(ndr, name, "ENUM", val, r);
14772 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14774 if (ndr_flags & NDR_SCALARS) {
14775 NDR_CHECK(ndr_push_align(ndr, 4));
14776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14779 if (ndr_flags & NDR_BUFFERS) {
14781 return NDR_ERR_SUCCESS;
14784 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14786 if (ndr_flags & NDR_SCALARS) {
14787 NDR_CHECK(ndr_pull_align(ndr, 4));
14788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14791 if (ndr_flags & NDR_BUFFERS) {
14793 return NDR_ERR_SUCCESS;
14796 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14798 ndr_print_struct(ndr, name, "spoolss_FormSize");
14800 ndr_print_uint32(ndr, "width", r->width);
14801 ndr_print_uint32(ndr, "height", r->height);
14805 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
14807 if (ndr_flags & NDR_SCALARS) {
14808 NDR_CHECK(ndr_push_align(ndr, 4));
14809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
14810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
14811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
14812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
14814 if (ndr_flags & NDR_BUFFERS) {
14816 return NDR_ERR_SUCCESS;
14819 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
14821 if (ndr_flags & NDR_SCALARS) {
14822 NDR_CHECK(ndr_pull_align(ndr, 4));
14823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
14824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
14825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
14826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
14828 if (ndr_flags & NDR_BUFFERS) {
14830 return NDR_ERR_SUCCESS;
14833 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
14835 ndr_print_struct(ndr, name, "spoolss_FormArea");
14837 ndr_print_uint32(ndr, "left", r->left);
14838 ndr_print_uint32(ndr, "top", r->top);
14839 ndr_print_uint32(ndr, "right", r->right);
14840 ndr_print_uint32(ndr, "bottom", r->bottom);
14844 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
14846 if (ndr_flags & NDR_SCALARS) {
14847 NDR_CHECK(ndr_push_align(ndr, 4));
14848 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14850 uint32_t _flags_save_string = ndr->flags;
14851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14852 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14853 ndr->flags = _flags_save_string;
14855 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14856 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14858 if (ndr_flags & NDR_BUFFERS) {
14860 uint32_t _flags_save_string = ndr->flags;
14861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14862 if (r->form_name) {
14863 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14864 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14866 ndr->flags = _flags_save_string;
14869 return NDR_ERR_SUCCESS;
14872 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
14874 uint32_t _ptr_form_name;
14875 TALLOC_CTX *_mem_save_form_name_0;
14876 if (ndr_flags & NDR_SCALARS) {
14877 NDR_CHECK(ndr_pull_align(ndr, 4));
14878 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14880 uint32_t _flags_save_string = ndr->flags;
14881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14883 if (_ptr_form_name) {
14884 NDR_PULL_ALLOC(ndr, r->form_name);
14885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14887 r->form_name = NULL;
14889 ndr->flags = _flags_save_string;
14891 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14892 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14894 if (ndr_flags & NDR_BUFFERS) {
14896 uint32_t _flags_save_string = ndr->flags;
14897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14898 if (r->form_name) {
14899 uint32_t _relative_save_offset;
14900 _relative_save_offset = ndr->offset;
14901 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
14902 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14903 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
14904 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
14905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
14906 ndr->offset = _relative_save_offset;
14908 ndr->flags = _flags_save_string;
14911 return NDR_ERR_SUCCESS;
14914 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
14916 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
14918 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
14919 ndr_print_ptr(ndr, "form_name", r->form_name);
14921 if (r->form_name) {
14922 ndr_print_string(ndr, "form_name", r->form_name);
14925 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
14926 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
14930 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14932 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
14935 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14938 return NDR_ERR_SUCCESS;
14941 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14946 return NDR_ERR_SUCCESS;
14949 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
14951 ndr_print_uint32(ndr, name, r);
14953 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
14954 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
14955 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
14959 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
14961 if (ndr_flags & NDR_SCALARS) {
14962 NDR_CHECK(ndr_push_align(ndr, 4));
14963 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14965 uint32_t _flags_save_string = ndr->flags;
14966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14967 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14968 ndr->flags = _flags_save_string;
14970 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14971 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14973 uint32_t _flags_save_string = ndr->flags;
14974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
14976 ndr->flags = _flags_save_string;
14978 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
14980 uint32_t _flags_save_string = ndr->flags;
14981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14982 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
14983 ndr->flags = _flags_save_string;
14985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
14987 uint32_t _flags_save_string = ndr->flags;
14988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14989 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
14990 ndr->flags = _flags_save_string;
14992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
14994 if (ndr_flags & NDR_BUFFERS) {
14996 uint32_t _flags_save_string = ndr->flags;
14997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14998 if (r->form_name) {
14999 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15002 ndr->flags = _flags_save_string;
15005 uint32_t _flags_save_string = ndr->flags;
15006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15008 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15009 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15011 ndr->flags = _flags_save_string;
15014 uint32_t _flags_save_string = ndr->flags;
15015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15017 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15018 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15020 ndr->flags = _flags_save_string;
15023 uint32_t _flags_save_string = ndr->flags;
15024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15025 if (r->display_name) {
15026 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15027 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15029 ndr->flags = _flags_save_string;
15032 return NDR_ERR_SUCCESS;
15035 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15037 uint32_t _ptr_form_name;
15038 TALLOC_CTX *_mem_save_form_name_0;
15039 uint32_t _ptr_keyword;
15040 TALLOC_CTX *_mem_save_keyword_0;
15041 uint32_t _ptr_mui_dll;
15042 TALLOC_CTX *_mem_save_mui_dll_0;
15043 uint32_t _ptr_display_name;
15044 TALLOC_CTX *_mem_save_display_name_0;
15045 if (ndr_flags & NDR_SCALARS) {
15046 NDR_CHECK(ndr_pull_align(ndr, 4));
15047 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15049 uint32_t _flags_save_string = ndr->flags;
15050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15051 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15052 if (_ptr_form_name) {
15053 NDR_PULL_ALLOC(ndr, r->form_name);
15054 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15056 r->form_name = NULL;
15058 ndr->flags = _flags_save_string;
15060 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15061 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15063 uint32_t _flags_save_string = ndr->flags;
15064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15066 if (_ptr_keyword) {
15067 NDR_PULL_ALLOC(ndr, r->keyword);
15068 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15072 ndr->flags = _flags_save_string;
15074 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15076 uint32_t _flags_save_string = ndr->flags;
15077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15079 if (_ptr_mui_dll) {
15080 NDR_PULL_ALLOC(ndr, r->mui_dll);
15081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15085 ndr->flags = _flags_save_string;
15087 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15089 uint32_t _flags_save_string = ndr->flags;
15090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15092 if (_ptr_display_name) {
15093 NDR_PULL_ALLOC(ndr, r->display_name);
15094 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15096 r->display_name = NULL;
15098 ndr->flags = _flags_save_string;
15100 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15102 if (ndr_flags & NDR_BUFFERS) {
15104 uint32_t _flags_save_string = ndr->flags;
15105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15106 if (r->form_name) {
15107 uint32_t _relative_save_offset;
15108 _relative_save_offset = ndr->offset;
15109 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15110 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15111 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15112 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15114 ndr->offset = _relative_save_offset;
15116 ndr->flags = _flags_save_string;
15119 uint32_t _flags_save_string = ndr->flags;
15120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15122 uint32_t _relative_save_offset;
15123 _relative_save_offset = ndr->offset;
15124 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15125 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15126 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15127 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15129 ndr->offset = _relative_save_offset;
15131 ndr->flags = _flags_save_string;
15134 uint32_t _flags_save_string = ndr->flags;
15135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15137 uint32_t _relative_save_offset;
15138 _relative_save_offset = ndr->offset;
15139 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15140 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15141 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15142 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15144 ndr->offset = _relative_save_offset;
15146 ndr->flags = _flags_save_string;
15149 uint32_t _flags_save_string = ndr->flags;
15150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15151 if (r->display_name) {
15152 uint32_t _relative_save_offset;
15153 _relative_save_offset = ndr->offset;
15154 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15155 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15156 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15157 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15159 ndr->offset = _relative_save_offset;
15161 ndr->flags = _flags_save_string;
15164 return NDR_ERR_SUCCESS;
15167 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15169 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15171 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15172 ndr_print_ptr(ndr, "form_name", r->form_name);
15174 if (r->form_name) {
15175 ndr_print_string(ndr, "form_name", r->form_name);
15178 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15179 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15180 ndr_print_ptr(ndr, "keyword", r->keyword);
15183 ndr_print_string(ndr, "keyword", r->keyword);
15186 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15187 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15190 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15193 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15194 ndr_print_ptr(ndr, "display_name", r->display_name);
15196 if (r->display_name) {
15197 ndr_print_string(ndr, "display_name", r->display_name);
15200 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15204 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15206 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15209 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15211 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15212 if (ndr_flags & NDR_SCALARS) {
15213 int level = ndr_push_get_switch_value(ndr, r);
15216 NDR_CHECK(ndr_push_align(ndr, 4));
15217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15218 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15222 NDR_CHECK(ndr_push_align(ndr, 4));
15223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15224 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15232 if (ndr_flags & NDR_BUFFERS) {
15233 int level = ndr_push_get_switch_value(ndr, r);
15234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15237 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15241 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15249 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15250 return NDR_ERR_SUCCESS;
15253 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15255 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15257 level = ndr_pull_get_switch_value(ndr, r);
15258 if (ndr_flags & NDR_SCALARS) {
15261 NDR_CHECK(ndr_pull_align(ndr, 4));
15262 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15263 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15267 NDR_CHECK(ndr_pull_align(ndr, 4));
15268 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15269 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15277 if (ndr_flags & NDR_BUFFERS) {
15278 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15281 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15285 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15293 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15294 return NDR_ERR_SUCCESS;
15297 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15300 level = ndr_print_get_switch_value(ndr, r);
15301 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15304 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15308 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15317 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15319 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15322 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15324 if (ndr_flags & NDR_SCALARS) {
15325 NDR_CHECK(ndr_push_align(ndr, 4));
15326 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15328 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15329 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15331 if (ndr_flags & NDR_BUFFERS) {
15332 if (r->form_name) {
15333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15336 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15339 return NDR_ERR_SUCCESS;
15342 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15344 uint32_t _ptr_form_name;
15345 TALLOC_CTX *_mem_save_form_name_0;
15346 if (ndr_flags & NDR_SCALARS) {
15347 NDR_CHECK(ndr_pull_align(ndr, 4));
15348 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15350 if (_ptr_form_name) {
15351 NDR_PULL_ALLOC(ndr, r->form_name);
15353 r->form_name = NULL;
15355 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15356 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15358 if (ndr_flags & NDR_BUFFERS) {
15359 if (r->form_name) {
15360 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15361 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15362 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15363 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15364 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15365 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));
15367 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15372 return NDR_ERR_SUCCESS;
15375 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15377 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15379 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15380 ndr_print_ptr(ndr, "form_name", r->form_name);
15382 if (r->form_name) {
15383 ndr_print_string(ndr, "form_name", r->form_name);
15386 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15387 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15391 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15393 if (ndr_flags & NDR_SCALARS) {
15394 NDR_CHECK(ndr_push_align(ndr, 4));
15395 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15397 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15398 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15400 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15401 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15406 if (ndr_flags & NDR_BUFFERS) {
15407 if (r->form_name) {
15408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15411 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15417 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15423 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15425 if (r->display_name) {
15426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15432 return NDR_ERR_SUCCESS;
15435 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15437 uint32_t _ptr_form_name;
15438 TALLOC_CTX *_mem_save_form_name_0;
15439 uint32_t _ptr_keyword;
15440 TALLOC_CTX *_mem_save_keyword_0;
15441 uint32_t _ptr_mui_dll;
15442 TALLOC_CTX *_mem_save_mui_dll_0;
15443 uint32_t _ptr_display_name;
15444 TALLOC_CTX *_mem_save_display_name_0;
15445 if (ndr_flags & NDR_SCALARS) {
15446 NDR_CHECK(ndr_pull_align(ndr, 4));
15447 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15449 if (_ptr_form_name) {
15450 NDR_PULL_ALLOC(ndr, r->form_name);
15452 r->form_name = NULL;
15454 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15455 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15457 if (_ptr_keyword) {
15458 NDR_PULL_ALLOC(ndr, r->keyword);
15462 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15464 if (_ptr_mui_dll) {
15465 NDR_PULL_ALLOC(ndr, r->mui_dll);
15469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15471 if (_ptr_display_name) {
15472 NDR_PULL_ALLOC(ndr, r->display_name);
15474 r->display_name = NULL;
15476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15478 if (ndr_flags & NDR_BUFFERS) {
15479 if (r->form_name) {
15480 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15481 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15482 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15483 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15484 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15485 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));
15487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15488 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15492 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15493 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15494 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15495 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15496 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15497 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));
15499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15504 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15505 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15506 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15507 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15508 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15509 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));
15511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15515 if (r->display_name) {
15516 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15517 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15518 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15519 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15520 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15521 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));
15523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15528 return NDR_ERR_SUCCESS;
15531 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15533 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15535 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15536 ndr_print_ptr(ndr, "form_name", r->form_name);
15538 if (r->form_name) {
15539 ndr_print_string(ndr, "form_name", r->form_name);
15542 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15543 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15544 ndr_print_ptr(ndr, "keyword", r->keyword);
15547 ndr_print_string(ndr, "keyword", r->keyword);
15550 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15551 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15554 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15557 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15558 ndr_print_ptr(ndr, "display_name", r->display_name);
15560 if (r->display_name) {
15561 ndr_print_string(ndr, "display_name", r->display_name);
15564 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15568 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15570 if (ndr_flags & NDR_SCALARS) {
15571 int level = ndr_push_get_switch_value(ndr, r);
15572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15575 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15583 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15586 if (ndr_flags & NDR_BUFFERS) {
15587 int level = ndr_push_get_switch_value(ndr, r);
15591 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15597 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15602 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15605 return NDR_ERR_SUCCESS;
15608 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15612 TALLOC_CTX *_mem_save_info1_0;
15613 TALLOC_CTX *_mem_save_info2_0;
15614 level = ndr_pull_get_switch_value(ndr, r);
15615 if (ndr_flags & NDR_SCALARS) {
15616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15617 if (_level != level) {
15618 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15622 uint32_t _ptr_info1;
15623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15625 NDR_PULL_ALLOC(ndr, r->info1);
15632 uint32_t _ptr_info2;
15633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15635 NDR_PULL_ALLOC(ndr, r->info2);
15642 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15645 if (ndr_flags & NDR_BUFFERS) {
15649 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15650 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15651 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15658 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15659 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15660 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15666 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15669 return NDR_ERR_SUCCESS;
15672 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15675 level = ndr_print_get_switch_value(ndr, r);
15676 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15679 ndr_print_ptr(ndr, "info1", r->info1);
15682 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15688 ndr_print_ptr(ndr, "info2", r->info2);
15691 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15697 ndr_print_bad_level(ndr, name, level);
15701 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15703 if (ndr_flags & NDR_SCALARS) {
15704 NDR_CHECK(ndr_push_align(ndr, 4));
15706 uint32_t _flags_save_string = ndr->flags;
15707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15708 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15709 ndr->flags = _flags_save_string;
15712 if (ndr_flags & NDR_BUFFERS) {
15714 uint32_t _flags_save_string = ndr->flags;
15715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15716 if (r->port_name) {
15717 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15720 ndr->flags = _flags_save_string;
15723 return NDR_ERR_SUCCESS;
15726 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15728 uint32_t _ptr_port_name;
15729 TALLOC_CTX *_mem_save_port_name_0;
15730 if (ndr_flags & NDR_SCALARS) {
15731 NDR_CHECK(ndr_pull_align(ndr, 4));
15733 uint32_t _flags_save_string = ndr->flags;
15734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15736 if (_ptr_port_name) {
15737 NDR_PULL_ALLOC(ndr, r->port_name);
15738 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15740 r->port_name = NULL;
15742 ndr->flags = _flags_save_string;
15745 if (ndr_flags & NDR_BUFFERS) {
15747 uint32_t _flags_save_string = ndr->flags;
15748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15749 if (r->port_name) {
15750 uint32_t _relative_save_offset;
15751 _relative_save_offset = ndr->offset;
15752 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15753 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15754 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15755 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15757 ndr->offset = _relative_save_offset;
15759 ndr->flags = _flags_save_string;
15762 return NDR_ERR_SUCCESS;
15765 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15767 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15769 ndr_print_ptr(ndr, "port_name", r->port_name);
15771 if (r->port_name) {
15772 ndr_print_string(ndr, "port_name", r->port_name);
15778 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15780 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
15783 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15786 return NDR_ERR_SUCCESS;
15789 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15794 return NDR_ERR_SUCCESS;
15797 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
15799 ndr_print_uint32(ndr, name, r);
15801 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
15802 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
15803 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
15804 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
15808 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
15810 if (ndr_flags & NDR_SCALARS) {
15811 NDR_CHECK(ndr_push_align(ndr, 4));
15813 uint32_t _flags_save_string = ndr->flags;
15814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15815 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15816 ndr->flags = _flags_save_string;
15819 uint32_t _flags_save_string = ndr->flags;
15820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15821 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15822 ndr->flags = _flags_save_string;
15825 uint32_t _flags_save_string = ndr->flags;
15826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15827 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
15828 ndr->flags = _flags_save_string;
15830 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
15831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
15833 if (ndr_flags & NDR_BUFFERS) {
15835 uint32_t _flags_save_string = ndr->flags;
15836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15837 if (r->port_name) {
15838 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15839 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15841 ndr->flags = _flags_save_string;
15844 uint32_t _flags_save_string = ndr->flags;
15845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15846 if (r->monitor_name) {
15847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
15848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
15850 ndr->flags = _flags_save_string;
15853 uint32_t _flags_save_string = ndr->flags;
15854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15855 if (r->description) {
15856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
15857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
15859 ndr->flags = _flags_save_string;
15862 return NDR_ERR_SUCCESS;
15865 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
15867 uint32_t _ptr_port_name;
15868 TALLOC_CTX *_mem_save_port_name_0;
15869 uint32_t _ptr_monitor_name;
15870 TALLOC_CTX *_mem_save_monitor_name_0;
15871 uint32_t _ptr_description;
15872 TALLOC_CTX *_mem_save_description_0;
15873 if (ndr_flags & NDR_SCALARS) {
15874 NDR_CHECK(ndr_pull_align(ndr, 4));
15876 uint32_t _flags_save_string = ndr->flags;
15877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15879 if (_ptr_port_name) {
15880 NDR_PULL_ALLOC(ndr, r->port_name);
15881 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15883 r->port_name = NULL;
15885 ndr->flags = _flags_save_string;
15888 uint32_t _flags_save_string = ndr->flags;
15889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15891 if (_ptr_monitor_name) {
15892 NDR_PULL_ALLOC(ndr, r->monitor_name);
15893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15895 r->monitor_name = NULL;
15897 ndr->flags = _flags_save_string;
15900 uint32_t _flags_save_string = ndr->flags;
15901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
15903 if (_ptr_description) {
15904 NDR_PULL_ALLOC(ndr, r->description);
15905 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
15907 r->description = NULL;
15909 ndr->flags = _flags_save_string;
15911 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
15912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15914 if (ndr_flags & NDR_BUFFERS) {
15916 uint32_t _flags_save_string = ndr->flags;
15917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15918 if (r->port_name) {
15919 uint32_t _relative_save_offset;
15920 _relative_save_offset = ndr->offset;
15921 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15922 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15923 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15924 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15926 ndr->offset = _relative_save_offset;
15928 ndr->flags = _flags_save_string;
15931 uint32_t _flags_save_string = ndr->flags;
15932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15933 if (r->monitor_name) {
15934 uint32_t _relative_save_offset;
15935 _relative_save_offset = ndr->offset;
15936 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15937 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15938 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15939 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15941 ndr->offset = _relative_save_offset;
15943 ndr->flags = _flags_save_string;
15946 uint32_t _flags_save_string = ndr->flags;
15947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15948 if (r->description) {
15949 uint32_t _relative_save_offset;
15950 _relative_save_offset = ndr->offset;
15951 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
15952 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
15953 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
15954 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
15955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
15956 ndr->offset = _relative_save_offset;
15958 ndr->flags = _flags_save_string;
15961 return NDR_ERR_SUCCESS;
15964 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
15966 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
15968 ndr_print_ptr(ndr, "port_name", r->port_name);
15970 if (r->port_name) {
15971 ndr_print_string(ndr, "port_name", r->port_name);
15974 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15976 if (r->monitor_name) {
15977 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15980 ndr_print_ptr(ndr, "description", r->description);
15982 if (r->description) {
15983 ndr_print_string(ndr, "description", r->description);
15986 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
15987 ndr_print_uint32(ndr, "reserved", r->reserved);
15991 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15993 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
15996 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
15998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15999 return NDR_ERR_SUCCESS;
16002 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16007 return NDR_ERR_SUCCESS;
16010 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16012 const char *val = NULL;
16015 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16016 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16017 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16018 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16019 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16020 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16021 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16022 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16023 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16024 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16025 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16026 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16027 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16029 ndr_print_enum(ndr, name, "ENUM", val, r);
16032 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16035 return NDR_ERR_SUCCESS;
16038 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16043 return NDR_ERR_SUCCESS;
16046 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16048 const char *val = NULL;
16051 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16052 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16053 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16055 ndr_print_enum(ndr, name, "ENUM", val, r);
16058 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16060 if (ndr_flags & NDR_SCALARS) {
16061 NDR_CHECK(ndr_push_align(ndr, 4));
16062 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16064 uint32_t _flags_save_string = ndr->flags;
16065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16066 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16067 ndr->flags = _flags_save_string;
16069 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16071 if (ndr_flags & NDR_BUFFERS) {
16073 uint32_t _flags_save_string = ndr->flags;
16074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16075 if (r->status_string) {
16076 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16077 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16079 ndr->flags = _flags_save_string;
16082 return NDR_ERR_SUCCESS;
16085 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16087 uint32_t _ptr_status_string;
16088 TALLOC_CTX *_mem_save_status_string_0;
16089 if (ndr_flags & NDR_SCALARS) {
16090 NDR_CHECK(ndr_pull_align(ndr, 4));
16091 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16093 uint32_t _flags_save_string = ndr->flags;
16094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16096 if (_ptr_status_string) {
16097 NDR_PULL_ALLOC(ndr, r->status_string);
16098 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16100 r->status_string = NULL;
16102 ndr->flags = _flags_save_string;
16104 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16106 if (ndr_flags & NDR_BUFFERS) {
16108 uint32_t _flags_save_string = ndr->flags;
16109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16110 if (r->status_string) {
16111 uint32_t _relative_save_offset;
16112 _relative_save_offset = ndr->offset;
16113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16114 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16115 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16116 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16118 ndr->offset = _relative_save_offset;
16120 ndr->flags = _flags_save_string;
16123 return NDR_ERR_SUCCESS;
16126 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16128 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16130 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16131 ndr_print_ptr(ndr, "status_string", r->status_string);
16133 if (r->status_string) {
16134 ndr_print_string(ndr, "status_string", r->status_string);
16137 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16141 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16143 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16146 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16148 if (ndr_flags & NDR_SCALARS) {
16149 NDR_CHECK(ndr_push_align(ndr, 4));
16151 uint32_t _flags_save_string = ndr->flags;
16152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16153 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16154 ndr->flags = _flags_save_string;
16156 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16158 if (ndr_flags & NDR_BUFFERS) {
16160 uint32_t _flags_save_string = ndr->flags;
16161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16162 if (r->port_name) {
16163 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16164 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16166 ndr->flags = _flags_save_string;
16169 return NDR_ERR_SUCCESS;
16172 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16174 uint32_t _ptr_port_name;
16175 TALLOC_CTX *_mem_save_port_name_0;
16176 if (ndr_flags & NDR_SCALARS) {
16177 NDR_CHECK(ndr_pull_align(ndr, 4));
16179 uint32_t _flags_save_string = ndr->flags;
16180 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16182 if (_ptr_port_name) {
16183 NDR_PULL_ALLOC(ndr, r->port_name);
16184 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16186 r->port_name = NULL;
16188 ndr->flags = _flags_save_string;
16190 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16192 if (ndr_flags & NDR_BUFFERS) {
16194 uint32_t _flags_save_string = ndr->flags;
16195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16196 if (r->port_name) {
16197 uint32_t _relative_save_offset;
16198 _relative_save_offset = ndr->offset;
16199 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16200 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16201 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16202 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16204 ndr->offset = _relative_save_offset;
16206 ndr->flags = _flags_save_string;
16209 return NDR_ERR_SUCCESS;
16212 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16214 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16216 ndr_print_ptr(ndr, "port_name", r->port_name);
16218 if (r->port_name) {
16219 ndr_print_string(ndr, "port_name", r->port_name);
16222 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16226 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16228 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16231 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16233 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16234 if (ndr_flags & NDR_SCALARS) {
16235 int level = ndr_push_get_switch_value(ndr, r);
16238 NDR_CHECK(ndr_push_align(ndr, 4));
16239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16240 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16244 NDR_CHECK(ndr_push_align(ndr, 4));
16245 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16246 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16250 NDR_CHECK(ndr_push_align(ndr, 4));
16251 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16252 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16256 NDR_CHECK(ndr_push_align(ndr, 4));
16257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16258 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16266 if (ndr_flags & NDR_BUFFERS) {
16267 int level = ndr_push_get_switch_value(ndr, r);
16268 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16271 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16275 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16279 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16283 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16291 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16292 return NDR_ERR_SUCCESS;
16295 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16297 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16299 level = ndr_pull_get_switch_value(ndr, r);
16300 if (ndr_flags & NDR_SCALARS) {
16303 NDR_CHECK(ndr_pull_align(ndr, 4));
16304 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16305 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16309 NDR_CHECK(ndr_pull_align(ndr, 4));
16310 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16311 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16315 NDR_CHECK(ndr_pull_align(ndr, 4));
16316 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16317 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16321 NDR_CHECK(ndr_pull_align(ndr, 4));
16322 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16323 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16331 if (ndr_flags & NDR_BUFFERS) {
16332 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16335 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16339 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16343 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16347 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16355 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16356 return NDR_ERR_SUCCESS;
16359 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16362 level = ndr_print_get_switch_value(ndr, r);
16363 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16366 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16370 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16374 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16378 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16387 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16389 if (ndr_flags & NDR_SCALARS) {
16390 NDR_CHECK(ndr_push_align(ndr, 4));
16392 uint32_t _flags_save_string = ndr->flags;
16393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16394 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16395 ndr->flags = _flags_save_string;
16398 if (ndr_flags & NDR_BUFFERS) {
16400 uint32_t _flags_save_string = ndr->flags;
16401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16402 if (r->monitor_name) {
16403 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16404 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16406 ndr->flags = _flags_save_string;
16409 return NDR_ERR_SUCCESS;
16412 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16414 uint32_t _ptr_monitor_name;
16415 TALLOC_CTX *_mem_save_monitor_name_0;
16416 if (ndr_flags & NDR_SCALARS) {
16417 NDR_CHECK(ndr_pull_align(ndr, 4));
16419 uint32_t _flags_save_string = ndr->flags;
16420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16422 if (_ptr_monitor_name) {
16423 NDR_PULL_ALLOC(ndr, r->monitor_name);
16424 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16426 r->monitor_name = NULL;
16428 ndr->flags = _flags_save_string;
16431 if (ndr_flags & NDR_BUFFERS) {
16433 uint32_t _flags_save_string = ndr->flags;
16434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16435 if (r->monitor_name) {
16436 uint32_t _relative_save_offset;
16437 _relative_save_offset = ndr->offset;
16438 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16439 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16440 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16441 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16443 ndr->offset = _relative_save_offset;
16445 ndr->flags = _flags_save_string;
16448 return NDR_ERR_SUCCESS;
16451 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16453 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16455 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16457 if (r->monitor_name) {
16458 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16464 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16466 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16469 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16471 if (ndr_flags & NDR_SCALARS) {
16472 NDR_CHECK(ndr_push_align(ndr, 4));
16474 uint32_t _flags_save_string = ndr->flags;
16475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16476 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16477 ndr->flags = _flags_save_string;
16480 uint32_t _flags_save_string = ndr->flags;
16481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16482 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16483 ndr->flags = _flags_save_string;
16486 uint32_t _flags_save_string = ndr->flags;
16487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16488 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16489 ndr->flags = _flags_save_string;
16492 if (ndr_flags & NDR_BUFFERS) {
16494 uint32_t _flags_save_string = ndr->flags;
16495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16496 if (r->monitor_name) {
16497 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16498 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16500 ndr->flags = _flags_save_string;
16503 uint32_t _flags_save_string = ndr->flags;
16504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16505 if (r->environment) {
16506 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16507 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16509 ndr->flags = _flags_save_string;
16512 uint32_t _flags_save_string = ndr->flags;
16513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16515 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16516 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16518 ndr->flags = _flags_save_string;
16521 return NDR_ERR_SUCCESS;
16524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16526 uint32_t _ptr_monitor_name;
16527 TALLOC_CTX *_mem_save_monitor_name_0;
16528 uint32_t _ptr_environment;
16529 TALLOC_CTX *_mem_save_environment_0;
16530 uint32_t _ptr_dll_name;
16531 TALLOC_CTX *_mem_save_dll_name_0;
16532 if (ndr_flags & NDR_SCALARS) {
16533 NDR_CHECK(ndr_pull_align(ndr, 4));
16535 uint32_t _flags_save_string = ndr->flags;
16536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16538 if (_ptr_monitor_name) {
16539 NDR_PULL_ALLOC(ndr, r->monitor_name);
16540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16542 r->monitor_name = NULL;
16544 ndr->flags = _flags_save_string;
16547 uint32_t _flags_save_string = ndr->flags;
16548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16550 if (_ptr_environment) {
16551 NDR_PULL_ALLOC(ndr, r->environment);
16552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16554 r->environment = NULL;
16556 ndr->flags = _flags_save_string;
16559 uint32_t _flags_save_string = ndr->flags;
16560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16562 if (_ptr_dll_name) {
16563 NDR_PULL_ALLOC(ndr, r->dll_name);
16564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16566 r->dll_name = NULL;
16568 ndr->flags = _flags_save_string;
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->monitor_name) {
16576 uint32_t _relative_save_offset;
16577 _relative_save_offset = ndr->offset;
16578 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16579 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16580 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16581 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16583 ndr->offset = _relative_save_offset;
16585 ndr->flags = _flags_save_string;
16588 uint32_t _flags_save_string = ndr->flags;
16589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16590 if (r->environment) {
16591 uint32_t _relative_save_offset;
16592 _relative_save_offset = ndr->offset;
16593 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16594 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16595 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16596 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16598 ndr->offset = _relative_save_offset;
16600 ndr->flags = _flags_save_string;
16603 uint32_t _flags_save_string = ndr->flags;
16604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16606 uint32_t _relative_save_offset;
16607 _relative_save_offset = ndr->offset;
16608 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16609 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16610 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16611 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16613 ndr->offset = _relative_save_offset;
16615 ndr->flags = _flags_save_string;
16618 return NDR_ERR_SUCCESS;
16621 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16623 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16625 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16627 if (r->monitor_name) {
16628 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16631 ndr_print_ptr(ndr, "environment", r->environment);
16633 if (r->environment) {
16634 ndr_print_string(ndr, "environment", r->environment);
16637 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16640 ndr_print_string(ndr, "dll_name", r->dll_name);
16646 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16648 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
16651 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16653 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16654 if (ndr_flags & NDR_SCALARS) {
16655 int level = ndr_push_get_switch_value(ndr, r);
16658 NDR_CHECK(ndr_push_align(ndr, 4));
16659 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16660 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16664 NDR_CHECK(ndr_push_align(ndr, 4));
16665 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16666 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16674 if (ndr_flags & NDR_BUFFERS) {
16675 int level = ndr_push_get_switch_value(ndr, r);
16676 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16679 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16683 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16691 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16692 return NDR_ERR_SUCCESS;
16695 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16697 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16699 level = ndr_pull_get_switch_value(ndr, r);
16700 if (ndr_flags & NDR_SCALARS) {
16703 NDR_CHECK(ndr_pull_align(ndr, 4));
16704 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16705 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16709 NDR_CHECK(ndr_pull_align(ndr, 4));
16710 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16711 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16719 if (ndr_flags & NDR_BUFFERS) {
16720 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16723 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16727 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16735 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16736 return NDR_ERR_SUCCESS;
16739 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16742 level = ndr_print_get_switch_value(ndr, r);
16743 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16746 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16750 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16759 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
16761 if (ndr_flags & NDR_SCALARS) {
16762 NDR_CHECK(ndr_push_align(ndr, 4));
16764 uint32_t _flags_save_string = ndr->flags;
16765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16766 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
16767 ndr->flags = _flags_save_string;
16770 if (ndr_flags & NDR_BUFFERS) {
16772 uint32_t _flags_save_string = ndr->flags;
16773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16774 if (r->name_array) {
16775 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
16776 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
16778 ndr->flags = _flags_save_string;
16781 return NDR_ERR_SUCCESS;
16784 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
16786 uint32_t _ptr_name_array;
16787 TALLOC_CTX *_mem_save_name_array_0;
16788 if (ndr_flags & NDR_SCALARS) {
16789 NDR_CHECK(ndr_pull_align(ndr, 4));
16791 uint32_t _flags_save_string = ndr->flags;
16792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
16794 if (_ptr_name_array) {
16795 NDR_PULL_ALLOC(ndr, r->name_array);
16796 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
16798 r->name_array = NULL;
16800 ndr->flags = _flags_save_string;
16803 if (ndr_flags & NDR_BUFFERS) {
16805 uint32_t _flags_save_string = ndr->flags;
16806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16807 if (r->name_array) {
16808 uint32_t _relative_save_offset;
16809 _relative_save_offset = ndr->offset;
16810 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
16811 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
16812 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
16813 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
16814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
16815 ndr->offset = _relative_save_offset;
16817 ndr->flags = _flags_save_string;
16820 return NDR_ERR_SUCCESS;
16823 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
16825 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
16827 ndr_print_ptr(ndr, "name_array", r->name_array);
16829 if (r->name_array) {
16830 ndr_print_string(ndr, "name_array", r->name_array);
16836 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16838 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
16841 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
16843 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16844 if (ndr_flags & NDR_SCALARS) {
16845 int level = ndr_push_get_switch_value(ndr, r);
16848 NDR_CHECK(ndr_push_align(ndr, 4));
16849 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16850 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16858 if (ndr_flags & NDR_BUFFERS) {
16859 int level = ndr_push_get_switch_value(ndr, r);
16860 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16863 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16871 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16872 return NDR_ERR_SUCCESS;
16875 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
16877 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16879 level = ndr_pull_get_switch_value(ndr, r);
16880 if (ndr_flags & NDR_SCALARS) {
16883 NDR_CHECK(ndr_pull_align(ndr, 4));
16884 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16885 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16893 if (ndr_flags & NDR_BUFFERS) {
16894 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16897 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16905 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16906 return NDR_ERR_SUCCESS;
16909 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
16912 level = ndr_print_get_switch_value(ndr, r);
16913 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
16916 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
16925 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16928 return NDR_ERR_SUCCESS;
16931 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16936 return NDR_ERR_SUCCESS;
16939 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16941 ndr_print_uint32(ndr, name, r);
16943 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16944 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16945 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16946 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16947 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16948 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16949 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16950 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16951 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16952 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16953 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16954 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16955 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16956 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16957 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16961 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16962 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16963 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16967 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
16969 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16970 return NDR_ERR_SUCCESS;
16973 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
16976 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16978 return NDR_ERR_SUCCESS;
16981 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
16983 const char *val = NULL;
16986 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
16987 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
16988 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
16989 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
16990 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
16991 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
16992 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
16993 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
16994 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
16995 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
16996 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
16997 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
16998 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
16999 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17000 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17001 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17002 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17003 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17004 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17005 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17006 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17007 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17008 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17009 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17011 ndr_print_enum(ndr, name, "ENUM", val, r);
17014 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17016 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17017 return NDR_ERR_SUCCESS;
17020 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17023 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17025 return NDR_ERR_SUCCESS;
17028 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17030 const char *val = NULL;
17033 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17034 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17035 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17036 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17037 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17038 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17039 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17040 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17041 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17042 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17043 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17044 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17045 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17046 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17047 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17048 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17049 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17050 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17051 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17052 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17053 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17054 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17055 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17056 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17057 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17058 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17059 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17060 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17062 ndr_print_enum(ndr, name, "ENUM", val, r);
17065 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17067 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17068 return NDR_ERR_SUCCESS;
17071 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17074 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17076 return NDR_ERR_SUCCESS;
17079 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17081 const char *val = NULL;
17084 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17085 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17087 ndr_print_enum(ndr, name, "ENUM", val, r);
17090 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17092 if (ndr_flags & NDR_SCALARS) {
17093 int level = ndr_push_get_switch_value(ndr, r);
17095 case PRINTER_NOTIFY_TYPE: {
17096 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17099 case JOB_NOTIFY_TYPE: {
17100 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17104 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17109 if (ndr_flags & NDR_BUFFERS) {
17110 int level = ndr_push_get_switch_value(ndr, r);
17112 case PRINTER_NOTIFY_TYPE:
17115 case JOB_NOTIFY_TYPE:
17123 return NDR_ERR_SUCCESS;
17126 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17129 level = ndr_pull_get_switch_value(ndr, r);
17130 if (ndr_flags & NDR_SCALARS) {
17132 case PRINTER_NOTIFY_TYPE: {
17133 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17136 case JOB_NOTIFY_TYPE: {
17137 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17141 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17146 if (ndr_flags & NDR_BUFFERS) {
17148 case PRINTER_NOTIFY_TYPE:
17151 case JOB_NOTIFY_TYPE:
17159 return NDR_ERR_SUCCESS;
17162 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17164 uint32_t cntr_fields_1;
17165 if (ndr_flags & NDR_SCALARS) {
17166 NDR_CHECK(ndr_push_align(ndr, 4));
17167 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17168 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17174 if (ndr_flags & NDR_BUFFERS) {
17176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17177 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17178 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17179 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17183 return NDR_ERR_SUCCESS;
17186 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17188 uint32_t _ptr_fields;
17189 uint32_t cntr_fields_1;
17190 TALLOC_CTX *_mem_save_fields_0;
17191 TALLOC_CTX *_mem_save_fields_1;
17192 if (ndr_flags & NDR_SCALARS) {
17193 NDR_CHECK(ndr_pull_align(ndr, 4));
17194 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17195 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17201 NDR_PULL_ALLOC(ndr, r->fields);
17206 if (ndr_flags & NDR_BUFFERS) {
17208 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17209 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17210 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17211 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17212 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17213 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17214 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17215 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17216 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17222 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17225 return NDR_ERR_SUCCESS;
17228 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17230 uint32_t cntr_fields_1;
17231 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17233 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17234 ndr_print_uint16(ndr, "u1", r->u1);
17235 ndr_print_uint32(ndr, "u2", r->u2);
17236 ndr_print_uint32(ndr, "u3", r->u3);
17237 ndr_print_uint32(ndr, "count", r->count);
17238 ndr_print_ptr(ndr, "fields", r->fields);
17241 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17243 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17245 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17246 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17247 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17257 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17260 return NDR_ERR_SUCCESS;
17263 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17268 return NDR_ERR_SUCCESS;
17271 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17273 ndr_print_uint32(ndr, name, r);
17275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17279 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17281 uint32_t cntr_types_1;
17282 if (ndr_flags & NDR_SCALARS) {
17283 NDR_CHECK(ndr_push_align(ndr, 4));
17284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17285 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17289 if (ndr_flags & NDR_BUFFERS) {
17291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17292 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17293 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17295 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17296 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17300 return NDR_ERR_SUCCESS;
17303 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17305 uint32_t _ptr_types;
17306 uint32_t cntr_types_1;
17307 TALLOC_CTX *_mem_save_types_0;
17308 TALLOC_CTX *_mem_save_types_1;
17309 if (ndr_flags & NDR_SCALARS) {
17310 NDR_CHECK(ndr_pull_align(ndr, 4));
17311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17312 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17316 NDR_PULL_ALLOC(ndr, r->types);
17321 if (ndr_flags & NDR_BUFFERS) {
17323 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17324 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17325 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17326 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17327 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17328 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17329 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17330 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17332 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17333 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17339 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17342 return NDR_ERR_SUCCESS;
17345 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17347 uint32_t cntr_types_1;
17348 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17350 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17351 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17352 ndr_print_uint32(ndr, "count", r->count);
17353 ndr_print_ptr(ndr, "types", r->types);
17356 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17358 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17360 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17361 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17371 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17373 if (ndr_flags & NDR_SCALARS) {
17374 NDR_CHECK(ndr_push_align(ndr, 4));
17375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17376 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17378 if (ndr_flags & NDR_BUFFERS) {
17380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17381 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17384 return NDR_ERR_SUCCESS;
17387 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17389 uint32_t _ptr_string;
17390 TALLOC_CTX *_mem_save_string_0;
17391 if (ndr_flags & NDR_SCALARS) {
17392 NDR_CHECK(ndr_pull_align(ndr, 4));
17393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17394 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17396 NDR_PULL_ALLOC(ndr, r->string);
17401 if (ndr_flags & NDR_BUFFERS) {
17403 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17404 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17405 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17406 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17410 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17413 return NDR_ERR_SUCCESS;
17416 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17418 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17420 ndr_print_uint32(ndr, "size", r->size);
17421 ndr_print_ptr(ndr, "string", r->string);
17424 ndr_print_string(ndr, "string", r->string);
17430 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17433 return NDR_ERR_SUCCESS;
17436 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17441 return NDR_ERR_SUCCESS;
17444 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17446 const char *val = NULL;
17449 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17450 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17451 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17452 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17453 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17455 ndr_print_enum(ndr, name, "ENUM", val, r);
17458 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17460 if (ndr_flags & NDR_SCALARS) {
17461 int level = ndr_push_get_switch_value(ndr, r);
17462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17465 uint32_t cntr_integer_0;
17466 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17472 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17476 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17480 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17484 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17488 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17491 if (ndr_flags & NDR_BUFFERS) {
17492 int level = ndr_push_get_switch_value(ndr, r);
17498 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17502 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17506 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17510 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17514 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17517 return NDR_ERR_SUCCESS;
17520 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17524 level = ndr_pull_get_switch_value(ndr, r);
17525 if (ndr_flags & NDR_SCALARS) {
17526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17527 if (_level != level) {
17528 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17532 uint32_t cntr_integer_0;
17533 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17539 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17543 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17547 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17551 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17555 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17558 if (ndr_flags & NDR_BUFFERS) {
17564 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17568 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17572 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17576 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17580 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17583 return NDR_ERR_SUCCESS;
17586 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17589 uint32_t cntr_integer_0;
17590 level = ndr_print_get_switch_value(ndr, r);
17591 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17594 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17596 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17598 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17599 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17607 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17611 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17615 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17619 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17623 ndr_print_bad_level(ndr, name, level);
17627 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17629 if (ndr_flags & NDR_SCALARS) {
17630 NDR_CHECK(ndr_push_align(ndr, 4));
17631 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17632 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
17633 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17634 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17636 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17637 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17639 if (ndr_flags & NDR_BUFFERS) {
17640 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17642 return NDR_ERR_SUCCESS;
17645 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17647 if (ndr_flags & NDR_SCALARS) {
17648 NDR_CHECK(ndr_pull_align(ndr, 4));
17649 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17650 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
17651 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17652 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17654 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17655 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17657 if (ndr_flags & NDR_BUFFERS) {
17658 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17660 return NDR_ERR_SUCCESS;
17663 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17665 ndr_print_struct(ndr, name, "spoolss_Notify");
17667 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17668 ndr_print_set_switch_value(ndr, &r->field, r->type);
17669 ndr_print_spoolss_Field(ndr, "field", &r->field);
17670 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17671 ndr_print_uint32(ndr, "job_id", r->job_id);
17672 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17673 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17677 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17679 uint32_t cntr_notifies_0;
17680 if (ndr_flags & NDR_SCALARS) {
17681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17682 NDR_CHECK(ndr_push_align(ndr, 4));
17683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17686 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17687 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17690 if (ndr_flags & NDR_BUFFERS) {
17691 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17692 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17695 return NDR_ERR_SUCCESS;
17698 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17700 uint32_t cntr_notifies_0;
17701 TALLOC_CTX *_mem_save_notifies_0;
17702 if (ndr_flags & NDR_SCALARS) {
17703 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17704 NDR_CHECK(ndr_pull_align(ndr, 4));
17705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17706 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17708 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17709 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17710 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17711 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17712 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17716 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17719 if (ndr_flags & NDR_BUFFERS) {
17720 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17721 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17722 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17723 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17727 return NDR_ERR_SUCCESS;
17730 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17732 uint32_t cntr_notifies_0;
17733 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17735 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17736 ndr_print_uint32(ndr, "flags", r->flags);
17737 ndr_print_uint32(ndr, "count", r->count);
17738 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17740 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17742 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17743 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17751 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17753 if (ndr_flags & NDR_SCALARS) {
17754 int level = ndr_push_get_switch_value(ndr, r);
17755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17762 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17765 if (ndr_flags & NDR_BUFFERS) {
17766 int level = ndr_push_get_switch_value(ndr, r);
17770 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17775 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17778 return NDR_ERR_SUCCESS;
17781 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17785 TALLOC_CTX *_mem_save_info0_0;
17786 level = ndr_pull_get_switch_value(ndr, r);
17787 if (ndr_flags & NDR_SCALARS) {
17788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17789 if (_level != level) {
17790 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17794 uint32_t _ptr_info0;
17795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17797 NDR_PULL_ALLOC(ndr, r->info0);
17804 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17807 if (ndr_flags & NDR_BUFFERS) {
17811 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17812 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17813 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17819 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17822 return NDR_ERR_SUCCESS;
17825 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17828 level = ndr_print_get_switch_value(ndr, r);
17829 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17832 ndr_print_ptr(ndr, "info0", r->info0);
17835 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17841 ndr_print_bad_level(ndr, name, level);
17845 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17848 return NDR_ERR_SUCCESS;
17851 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17856 return NDR_ERR_SUCCESS;
17859 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17861 ndr_print_uint32(ndr, name, r);
17863 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17864 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17865 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17869 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17871 if (ndr_flags & NDR_SCALARS) {
17872 NDR_CHECK(ndr_push_align(ndr, 4));
17873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17877 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17878 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17879 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17881 if (ndr_flags & NDR_BUFFERS) {
17883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17886 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17892 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17895 return NDR_ERR_SUCCESS;
17898 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17900 uint32_t _ptr_client;
17901 TALLOC_CTX *_mem_save_client_0;
17902 uint32_t _ptr_user;
17903 TALLOC_CTX *_mem_save_user_0;
17904 if (ndr_flags & NDR_SCALARS) {
17905 NDR_CHECK(ndr_pull_align(ndr, 4));
17906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17909 NDR_PULL_ALLOC(ndr, r->client);
17913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17915 NDR_PULL_ALLOC(ndr, r->user);
17919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17920 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17921 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17922 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17924 if (ndr_flags & NDR_BUFFERS) {
17926 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17927 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17928 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17929 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17930 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17931 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));
17933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17938 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17939 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17940 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17941 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17942 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17943 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));
17945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17950 return NDR_ERR_SUCCESS;
17953 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17955 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17957 ndr_print_uint32(ndr, "size", r->size);
17958 ndr_print_ptr(ndr, "client", r->client);
17961 ndr_print_string(ndr, "client", r->client);
17964 ndr_print_ptr(ndr, "user", r->user);
17967 ndr_print_string(ndr, "user", r->user);
17970 ndr_print_uint32(ndr, "build", r->build);
17971 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17972 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17973 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17977 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17979 if (ndr_flags & NDR_SCALARS) {
17980 NDR_CHECK(ndr_push_align(ndr, 4));
17981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17983 if (ndr_flags & NDR_BUFFERS) {
17985 return NDR_ERR_SUCCESS;
17988 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17990 if (ndr_flags & NDR_SCALARS) {
17991 NDR_CHECK(ndr_pull_align(ndr, 4));
17992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17994 if (ndr_flags & NDR_BUFFERS) {
17996 return NDR_ERR_SUCCESS;
17999 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18001 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18003 ndr_print_uint32(ndr, "not_used", r->not_used);
18007 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18009 if (ndr_flags & NDR_SCALARS) {
18010 NDR_CHECK(ndr_push_align(ndr, 4));
18011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18014 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18017 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18018 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18019 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18020 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18022 if (ndr_flags & NDR_BUFFERS) {
18024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18027 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18036 return NDR_ERR_SUCCESS;
18039 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18041 uint32_t _ptr_client;
18042 TALLOC_CTX *_mem_save_client_0;
18043 uint32_t _ptr_user;
18044 TALLOC_CTX *_mem_save_user_0;
18045 if (ndr_flags & NDR_SCALARS) {
18046 NDR_CHECK(ndr_pull_align(ndr, 4));
18047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18052 NDR_PULL_ALLOC(ndr, r->client);
18056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18058 NDR_PULL_ALLOC(ndr, r->user);
18062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18063 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18064 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18065 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18066 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18068 if (ndr_flags & NDR_BUFFERS) {
18070 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18071 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18072 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18073 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18074 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18075 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));
18077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18082 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18083 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18084 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18085 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18086 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18087 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));
18089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18090 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18094 return NDR_ERR_SUCCESS;
18097 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18099 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18101 ndr_print_uint32(ndr, "size", r->size);
18102 ndr_print_uint32(ndr, "flags", r->flags);
18103 ndr_print_uint32(ndr, "size2", r->size2);
18104 ndr_print_ptr(ndr, "client", r->client);
18107 ndr_print_string(ndr, "client", r->client);
18110 ndr_print_ptr(ndr, "user", r->user);
18113 ndr_print_string(ndr, "user", r->user);
18116 ndr_print_uint32(ndr, "build", r->build);
18117 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18118 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18119 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18120 ndr_print_udlong(ndr, "reserved", r->reserved);
18124 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18126 if (ndr_flags & NDR_SCALARS) {
18127 int level = ndr_push_get_switch_value(ndr, r);
18128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18143 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18146 if (ndr_flags & NDR_BUFFERS) {
18147 int level = ndr_push_get_switch_value(ndr, r);
18151 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18157 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18163 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18168 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18171 return NDR_ERR_SUCCESS;
18174 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18178 TALLOC_CTX *_mem_save_level1_0;
18179 TALLOC_CTX *_mem_save_level2_0;
18180 TALLOC_CTX *_mem_save_level3_0;
18181 level = ndr_pull_get_switch_value(ndr, r);
18182 if (ndr_flags & NDR_SCALARS) {
18183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18184 if (_level != level) {
18185 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18189 uint32_t _ptr_level1;
18190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18192 NDR_PULL_ALLOC(ndr, r->level1);
18199 uint32_t _ptr_level2;
18200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18202 NDR_PULL_ALLOC(ndr, r->level2);
18209 uint32_t _ptr_level3;
18210 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18212 NDR_PULL_ALLOC(ndr, r->level3);
18219 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18222 if (ndr_flags & NDR_BUFFERS) {
18226 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18227 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18228 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18235 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18236 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18237 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18244 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18245 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18246 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18252 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18255 return NDR_ERR_SUCCESS;
18258 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18261 level = ndr_print_get_switch_value(ndr, r);
18262 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18265 ndr_print_ptr(ndr, "level1", r->level1);
18268 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18274 ndr_print_ptr(ndr, "level2", r->level2);
18277 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18283 ndr_print_ptr(ndr, "level3", r->level3);
18286 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18292 ndr_print_bad_level(ndr, name, level);
18296 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18298 if (ndr_flags & NDR_SCALARS) {
18299 NDR_CHECK(ndr_push_align(ndr, 4));
18300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18301 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18302 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18304 if (ndr_flags & NDR_BUFFERS) {
18305 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18307 return NDR_ERR_SUCCESS;
18310 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18312 if (ndr_flags & NDR_SCALARS) {
18313 NDR_CHECK(ndr_pull_align(ndr, 4));
18314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18315 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18316 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18318 if (ndr_flags & NDR_BUFFERS) {
18319 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18321 return NDR_ERR_SUCCESS;
18324 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18326 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18328 ndr_print_uint32(ndr, "level", r->level);
18329 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18330 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18334 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18337 return NDR_ERR_SUCCESS;
18340 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18345 return NDR_ERR_SUCCESS;
18348 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18350 ndr_print_uint32(ndr, name, r);
18352 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18353 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18354 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18355 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18356 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18357 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18361 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
18363 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18364 if (ndr_flags & NDR_SCALARS) {
18365 NDR_CHECK(ndr_push_align(ndr, 4));
18366 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18368 uint32_t _flags_save_string = ndr->flags;
18369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18370 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
18371 ndr->flags = _flags_save_string;
18373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
18374 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
18375 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
18376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
18378 if (ndr_flags & NDR_BUFFERS) {
18379 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18381 uint32_t _flags_save_string = ndr->flags;
18382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18383 if (r->value_name) {
18384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
18385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
18387 ndr->flags = _flags_save_string;
18390 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
18392 struct ndr_push *_ndr_data;
18393 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18394 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
18395 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18396 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18400 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18401 return NDR_ERR_SUCCESS;
18404 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
18406 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18407 uint32_t _ptr_value_name;
18408 TALLOC_CTX *_mem_save_value_name_0;
18409 uint32_t _ptr_data;
18410 TALLOC_CTX *_mem_save_data_0;
18411 if (ndr_flags & NDR_SCALARS) {
18412 NDR_CHECK(ndr_pull_align(ndr, 4));
18413 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18415 uint32_t _flags_save_string = ndr->flags;
18416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18417 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
18418 if (_ptr_value_name) {
18419 NDR_PULL_ALLOC(ndr, r->value_name);
18420 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
18422 r->value_name = NULL;
18424 ndr->flags = _flags_save_string;
18426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
18427 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
18428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
18430 NDR_PULL_ALLOC(ndr, r->data);
18431 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
18435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
18437 if (ndr_flags & NDR_BUFFERS) {
18438 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18440 uint32_t _flags_save_string = ndr->flags;
18441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18442 if (r->value_name) {
18443 uint32_t _relative_save_offset;
18444 _relative_save_offset = ndr->offset;
18445 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
18446 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18447 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
18448 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
18449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
18450 ndr->offset = _relative_save_offset;
18452 ndr->flags = _flags_save_string;
18455 uint32_t _relative_save_offset;
18456 _relative_save_offset = ndr->offset;
18457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
18458 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
18459 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
18461 struct ndr_pull *_ndr_data;
18462 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18463 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
18464 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18465 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
18468 ndr->offset = _relative_save_offset;
18471 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18472 return NDR_ERR_SUCCESS;
18475 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
18477 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
18479 ndr_print_ptr(ndr, "value_name", r->value_name);
18481 if (r->value_name) {
18482 ndr_print_string(ndr, "value_name", r->value_name);
18485 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
18486 ndr_print_winreg_Type(ndr, "type", r->type);
18487 ndr_print_ptr(ndr, "data", r->data);
18490 ndr_print_set_switch_value(ndr, r->data, r->type);
18491 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
18494 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);
18498 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
18500 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
18503 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18506 return NDR_ERR_SUCCESS;
18509 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18514 return NDR_ERR_SUCCESS;
18517 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18519 ndr_print_uint32(ndr, name, r);
18521 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18522 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18523 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18527 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18530 return NDR_ERR_SUCCESS;
18533 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18538 return NDR_ERR_SUCCESS;
18541 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18543 const char *val = NULL;
18546 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18547 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18549 ndr_print_enum(ndr, name, "ENUM", val, r);
18552 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18554 if (ndr_flags & NDR_SCALARS) {
18555 NDR_CHECK(ndr_push_align(ndr, 4));
18556 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18558 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18562 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18564 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18565 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18566 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18572 if (ndr_flags & NDR_BUFFERS) {
18574 return NDR_ERR_SUCCESS;
18577 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18579 if (ndr_flags & NDR_SCALARS) {
18580 NDR_CHECK(ndr_pull_align(ndr, 4));
18581 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18583 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18586 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18587 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18591 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18592 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18597 if (ndr_flags & NDR_BUFFERS) {
18599 return NDR_ERR_SUCCESS;
18602 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18604 ndr_print_struct(ndr, name, "spoolss_PortData1");
18606 ndr_print_string(ndr, "portname", r->portname);
18607 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18608 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18609 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18610 ndr_print_uint32(ndr, "reserved", r->reserved);
18611 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18612 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18613 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18614 ndr_print_string(ndr, "queue", r->queue);
18615 ndr_print_string(ndr, "ip_address", r->ip_address);
18616 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18617 ndr_print_string(ndr, "device_type", r->device_type);
18618 ndr_print_uint32(ndr, "port_number", r->port_number);
18619 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18620 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18624 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18626 if (ndr_flags & NDR_SCALARS) {
18627 NDR_CHECK(ndr_push_align(ndr, 4));
18628 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18630 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18633 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18634 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18636 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18637 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18643 if (ndr_flags & NDR_BUFFERS) {
18645 return NDR_ERR_SUCCESS;
18648 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18650 if (ndr_flags & NDR_SCALARS) {
18651 NDR_CHECK(ndr_pull_align(ndr, 4));
18652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18654 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18657 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18667 if (ndr_flags & NDR_BUFFERS) {
18669 return NDR_ERR_SUCCESS;
18672 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18674 ndr_print_struct(ndr, name, "spoolss_PortData2");
18676 ndr_print_string(ndr, "portname", r->portname);
18677 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18678 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18679 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18680 ndr_print_uint32(ndr, "reserved", r->reserved);
18681 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18682 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18683 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18684 ndr_print_string(ndr, "queue", r->queue);
18685 ndr_print_string(ndr, "device_type", r->device_type);
18686 ndr_print_uint32(ndr, "port_number", r->port_number);
18687 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18688 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18689 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18693 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18695 if (ndr_flags & NDR_SCALARS) {
18696 NDR_CHECK(ndr_push_align(ndr, 4));
18698 uint32_t _flags_save_string = ndr->flags;
18699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18700 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18701 ndr->flags = _flags_save_string;
18704 if (ndr_flags & NDR_BUFFERS) {
18706 return NDR_ERR_SUCCESS;
18709 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18711 if (ndr_flags & NDR_SCALARS) {
18712 NDR_CHECK(ndr_pull_align(ndr, 4));
18714 uint32_t _flags_save_string = ndr->flags;
18715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18717 ndr->flags = _flags_save_string;
18720 if (ndr_flags & NDR_BUFFERS) {
18722 return NDR_ERR_SUCCESS;
18725 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18727 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18729 ndr_print_string(ndr, "dll_name", r->dll_name);
18733 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18736 return NDR_ERR_SUCCESS;
18739 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18744 return NDR_ERR_SUCCESS;
18747 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18749 ndr_print_uint32(ndr, name, r);
18751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18762 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18764 if (flags & NDR_IN) {
18765 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18766 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18767 if (r->in.server) {
18768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18771 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18774 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18775 if (r->in.buffer) {
18776 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18780 if (flags & NDR_OUT) {
18781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18783 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18785 if (r->out.needed == NULL) {
18786 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18789 if (r->out.count == NULL) {
18790 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18793 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18795 return NDR_ERR_SUCCESS;
18798 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18800 uint32_t _ptr_server;
18801 uint32_t _ptr_buffer;
18802 uint32_t _ptr_info;
18803 TALLOC_CTX *_mem_save_server_0;
18804 TALLOC_CTX *_mem_save_buffer_0;
18805 TALLOC_CTX *_mem_save_info_0;
18806 TALLOC_CTX *_mem_save_needed_0;
18807 TALLOC_CTX *_mem_save_count_0;
18808 if (flags & NDR_IN) {
18809 ZERO_STRUCT(r->out);
18811 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18814 NDR_PULL_ALLOC(ndr, r->in.server);
18816 r->in.server = NULL;
18818 if (r->in.server) {
18819 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18820 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18821 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18822 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18823 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18824 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));
18826 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18827 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18833 NDR_PULL_ALLOC(ndr, r->in.buffer);
18835 r->in.buffer = NULL;
18837 if (r->in.buffer) {
18838 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18839 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18840 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18844 NDR_PULL_ALLOC(ndr, r->out.needed);
18845 ZERO_STRUCTP(r->out.needed);
18846 NDR_PULL_ALLOC(ndr, r->out.count);
18847 ZERO_STRUCTP(r->out.count);
18849 if (flags & NDR_OUT) {
18850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18852 NDR_PULL_ALLOC(ndr, r->out.info);
18854 r->out.info = NULL;
18857 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18858 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18859 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18862 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18863 NDR_PULL_ALLOC(ndr, r->out.needed);
18865 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18866 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18870 NDR_PULL_ALLOC(ndr, r->out.count);
18872 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18873 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18876 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18878 return NDR_ERR_SUCCESS;
18881 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18883 uint32_t cntr_info_0;
18884 if (flags & NDR_IN) {
18885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18888 if (flags & NDR_OUT) {
18889 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18890 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18891 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18893 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18894 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18897 return NDR_ERR_SUCCESS;
18900 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18902 uint32_t cntr_info_0;
18903 TALLOC_CTX *_mem_save_info_0;
18904 if (flags & NDR_IN) {
18905 ZERO_STRUCT(r->out);
18907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18910 if (flags & NDR_OUT) {
18911 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18912 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18913 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18914 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18915 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18916 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18918 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18919 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18923 return NDR_ERR_SUCCESS;
18926 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18928 uint32_t cntr_info_2;
18929 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18931 if (flags & NDR_SET_VALUES) {
18932 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18934 if (flags & NDR_IN) {
18935 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18937 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18938 ndr_print_ptr(ndr, "server", r->in.server);
18940 if (r->in.server) {
18941 ndr_print_string(ndr, "server", r->in.server);
18944 ndr_print_uint32(ndr, "level", r->in.level);
18945 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18947 if (r->in.buffer) {
18948 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18951 ndr_print_uint32(ndr, "offered", r->in.offered);
18954 if (flags & NDR_OUT) {
18955 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18957 ndr_print_ptr(ndr, "count", r->out.count);
18959 ndr_print_uint32(ndr, "count", *r->out.count);
18961 ndr_print_ptr(ndr, "info", r->out.info);
18963 ndr_print_ptr(ndr, "info", *r->out.info);
18965 if (*r->out.info) {
18966 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18968 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
18970 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
18971 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
18972 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
18980 ndr_print_ptr(ndr, "needed", r->out.needed);
18982 ndr_print_uint32(ndr, "needed", *r->out.needed);
18984 ndr_print_WERROR(ndr, "result", r->out.result);
18990 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18992 if (flags & NDR_IN) {
18993 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18994 if (r->in.printername) {
18995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19001 if (r->in.datatype) {
19002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19005 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19007 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19008 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19010 if (flags & NDR_OUT) {
19011 if (r->out.handle == NULL) {
19012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19014 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19015 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19017 return NDR_ERR_SUCCESS;
19020 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19022 uint32_t _ptr_printername;
19023 uint32_t _ptr_datatype;
19024 TALLOC_CTX *_mem_save_printername_0;
19025 TALLOC_CTX *_mem_save_datatype_0;
19026 TALLOC_CTX *_mem_save_handle_0;
19027 if (flags & NDR_IN) {
19028 ZERO_STRUCT(r->out);
19030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19031 if (_ptr_printername) {
19032 NDR_PULL_ALLOC(ndr, r->in.printername);
19034 r->in.printername = NULL;
19036 if (r->in.printername) {
19037 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19038 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19039 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19040 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19041 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19042 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));
19044 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19045 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
19046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19049 if (_ptr_datatype) {
19050 NDR_PULL_ALLOC(ndr, r->in.datatype);
19052 r->in.datatype = NULL;
19054 if (r->in.datatype) {
19055 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19056 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19057 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19058 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19059 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19060 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));
19062 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19063 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
19064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19066 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19067 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19068 NDR_PULL_ALLOC(ndr, r->out.handle);
19069 ZERO_STRUCTP(r->out.handle);
19071 if (flags & NDR_OUT) {
19072 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19073 NDR_PULL_ALLOC(ndr, r->out.handle);
19075 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19076 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19077 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19079 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19081 return NDR_ERR_SUCCESS;
19084 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19086 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19088 if (flags & NDR_SET_VALUES) {
19089 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19091 if (flags & NDR_IN) {
19092 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19094 ndr_print_ptr(ndr, "printername", r->in.printername);
19096 if (r->in.printername) {
19097 ndr_print_string(ndr, "printername", r->in.printername);
19100 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19102 if (r->in.datatype) {
19103 ndr_print_string(ndr, "datatype", r->in.datatype);
19106 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19107 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19110 if (flags & NDR_OUT) {
19111 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19113 ndr_print_ptr(ndr, "handle", r->out.handle);
19115 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19117 ndr_print_WERROR(ndr, "result", r->out.result);
19123 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
19125 if (flags & NDR_IN) {
19126 if (r->in.handle == NULL) {
19127 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19129 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19133 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19135 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19137 if (flags & NDR_OUT) {
19138 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19140 return NDR_ERR_SUCCESS;
19143 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19146 TALLOC_CTX *_mem_save_handle_0;
19147 TALLOC_CTX *_mem_save_ctr_0;
19148 if (flags & NDR_IN) {
19149 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19150 NDR_PULL_ALLOC(ndr, r->in.handle);
19152 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19153 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19154 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19159 NDR_PULL_ALLOC(ndr, r->in.ctr);
19164 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19165 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
19166 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
19169 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
19171 if (flags & NDR_OUT) {
19172 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19174 return NDR_ERR_SUCCESS;
19177 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
19179 ndr_print_struct(ndr, name, "spoolss_SetJob");
19181 if (flags & NDR_SET_VALUES) {
19182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19184 if (flags & NDR_IN) {
19185 ndr_print_struct(ndr, "in", "spoolss_SetJob");
19187 ndr_print_ptr(ndr, "handle", r->in.handle);
19189 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19191 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19192 ndr_print_ptr(ndr, "ctr", r->in.ctr);
19195 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
19198 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
19201 if (flags & NDR_OUT) {
19202 ndr_print_struct(ndr, "out", "spoolss_SetJob");
19204 ndr_print_WERROR(ndr, "result", r->out.result);
19210 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
19212 if (flags & NDR_IN) {
19213 if (r->in.handle == NULL) {
19214 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19216 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19220 if (r->in.buffer) {
19221 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19225 if (flags & NDR_OUT) {
19226 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19229 struct ndr_push *_ndr_info;
19230 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19231 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19232 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19233 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19236 if (r->out.needed == NULL) {
19237 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19240 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19242 return NDR_ERR_SUCCESS;
19245 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
19247 uint32_t _ptr_buffer;
19248 uint32_t _ptr_info;
19249 TALLOC_CTX *_mem_save_handle_0;
19250 TALLOC_CTX *_mem_save_buffer_0;
19251 TALLOC_CTX *_mem_save_info_0;
19252 TALLOC_CTX *_mem_save_needed_0;
19253 if (flags & NDR_IN) {
19254 ZERO_STRUCT(r->out);
19256 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19257 NDR_PULL_ALLOC(ndr, r->in.handle);
19259 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19260 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19261 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19267 NDR_PULL_ALLOC(ndr, r->in.buffer);
19269 r->in.buffer = NULL;
19271 if (r->in.buffer) {
19272 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19273 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19274 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19278 NDR_PULL_ALLOC(ndr, r->out.needed);
19279 ZERO_STRUCTP(r->out.needed);
19281 if (flags & NDR_OUT) {
19282 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19284 NDR_PULL_ALLOC(ndr, r->out.info);
19286 r->out.info = NULL;
19289 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19290 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19292 struct ndr_pull *_ndr_info;
19293 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19294 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19295 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19296 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19300 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19301 NDR_PULL_ALLOC(ndr, r->out.needed);
19303 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19304 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19309 return NDR_ERR_SUCCESS;
19312 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19314 ndr_print_struct(ndr, name, "spoolss_GetJob");
19316 if (flags & NDR_SET_VALUES) {
19317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19319 if (flags & NDR_IN) {
19320 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19322 ndr_print_ptr(ndr, "handle", r->in.handle);
19324 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19326 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19327 ndr_print_uint32(ndr, "level", r->in.level);
19328 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19330 if (r->in.buffer) {
19331 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19334 ndr_print_uint32(ndr, "offered", r->in.offered);
19337 if (flags & NDR_OUT) {
19338 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19340 ndr_print_ptr(ndr, "info", r->out.info);
19343 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19344 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19347 ndr_print_ptr(ndr, "needed", r->out.needed);
19349 ndr_print_uint32(ndr, "needed", *r->out.needed);
19351 ndr_print_WERROR(ndr, "result", r->out.result);
19357 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19359 if (flags & NDR_IN) {
19360 if (r->in.handle == NULL) {
19361 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19363 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19368 if (r->in.buffer) {
19369 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19373 if (flags & NDR_OUT) {
19374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19376 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19378 if (r->out.needed == NULL) {
19379 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19382 if (r->out.count == NULL) {
19383 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19386 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19388 return NDR_ERR_SUCCESS;
19391 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19393 uint32_t _ptr_buffer;
19394 uint32_t _ptr_info;
19395 TALLOC_CTX *_mem_save_handle_0;
19396 TALLOC_CTX *_mem_save_buffer_0;
19397 TALLOC_CTX *_mem_save_info_0;
19398 TALLOC_CTX *_mem_save_needed_0;
19399 TALLOC_CTX *_mem_save_count_0;
19400 if (flags & NDR_IN) {
19401 ZERO_STRUCT(r->out);
19403 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19404 NDR_PULL_ALLOC(ndr, r->in.handle);
19406 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19407 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19408 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19415 NDR_PULL_ALLOC(ndr, r->in.buffer);
19417 r->in.buffer = NULL;
19419 if (r->in.buffer) {
19420 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19421 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19422 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19426 NDR_PULL_ALLOC(ndr, r->out.needed);
19427 ZERO_STRUCTP(r->out.needed);
19428 NDR_PULL_ALLOC(ndr, r->out.count);
19429 ZERO_STRUCTP(r->out.count);
19431 if (flags & NDR_OUT) {
19432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19434 NDR_PULL_ALLOC(ndr, r->out.info);
19436 r->out.info = NULL;
19439 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19440 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19441 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19444 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19445 NDR_PULL_ALLOC(ndr, r->out.needed);
19447 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19448 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19452 NDR_PULL_ALLOC(ndr, r->out.count);
19454 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19455 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19460 return NDR_ERR_SUCCESS;
19463 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19465 uint32_t cntr_info_0;
19466 if (flags & NDR_IN) {
19467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19470 if (flags & NDR_OUT) {
19471 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19472 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19473 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19475 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19476 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19479 return NDR_ERR_SUCCESS;
19482 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19484 uint32_t cntr_info_0;
19485 TALLOC_CTX *_mem_save_info_0;
19486 if (flags & NDR_IN) {
19487 ZERO_STRUCT(r->out);
19489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19492 if (flags & NDR_OUT) {
19493 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19494 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19495 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19496 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19497 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19498 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19500 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19501 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19505 return NDR_ERR_SUCCESS;
19508 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19510 uint32_t cntr_info_2;
19511 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19513 if (flags & NDR_SET_VALUES) {
19514 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19516 if (flags & NDR_IN) {
19517 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19519 ndr_print_ptr(ndr, "handle", r->in.handle);
19521 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19523 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19524 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19525 ndr_print_uint32(ndr, "level", r->in.level);
19526 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19528 if (r->in.buffer) {
19529 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19532 ndr_print_uint32(ndr, "offered", r->in.offered);
19535 if (flags & NDR_OUT) {
19536 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19538 ndr_print_ptr(ndr, "count", r->out.count);
19540 ndr_print_uint32(ndr, "count", *r->out.count);
19542 ndr_print_ptr(ndr, "info", r->out.info);
19544 ndr_print_ptr(ndr, "info", *r->out.info);
19546 if (*r->out.info) {
19547 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19549 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19551 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19552 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19553 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19561 ndr_print_ptr(ndr, "needed", r->out.needed);
19563 ndr_print_uint32(ndr, "needed", *r->out.needed);
19565 ndr_print_WERROR(ndr, "result", r->out.result);
19571 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19573 if (flags & NDR_IN) {
19575 if (flags & NDR_OUT) {
19576 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19578 return NDR_ERR_SUCCESS;
19581 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19583 if (flags & NDR_IN) {
19585 if (flags & NDR_OUT) {
19586 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19588 return NDR_ERR_SUCCESS;
19591 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19593 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19595 if (flags & NDR_SET_VALUES) {
19596 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19598 if (flags & NDR_IN) {
19599 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19603 if (flags & NDR_OUT) {
19604 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19606 ndr_print_WERROR(ndr, "result", r->out.result);
19612 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19614 if (flags & NDR_IN) {
19615 if (r->in.handle == NULL) {
19616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19618 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19620 if (flags & NDR_OUT) {
19621 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19623 return NDR_ERR_SUCCESS;
19626 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19628 TALLOC_CTX *_mem_save_handle_0;
19629 if (flags & NDR_IN) {
19630 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19631 NDR_PULL_ALLOC(ndr, r->in.handle);
19633 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19634 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19635 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19638 if (flags & NDR_OUT) {
19639 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19641 return NDR_ERR_SUCCESS;
19644 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19646 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19648 if (flags & NDR_SET_VALUES) {
19649 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19651 if (flags & NDR_IN) {
19652 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19654 ndr_print_ptr(ndr, "handle", r->in.handle);
19656 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19660 if (flags & NDR_OUT) {
19661 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19663 ndr_print_WERROR(ndr, "result", r->out.result);
19669 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19671 if (flags & NDR_IN) {
19672 if (r->in.handle == NULL) {
19673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19675 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19676 if (r->in.info_ctr == NULL) {
19677 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19679 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19680 if (r->in.devmode_ctr == NULL) {
19681 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19683 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19684 if (r->in.secdesc_ctr == NULL) {
19685 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19687 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19688 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19690 if (flags & NDR_OUT) {
19691 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19693 return NDR_ERR_SUCCESS;
19696 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19698 TALLOC_CTX *_mem_save_handle_0;
19699 TALLOC_CTX *_mem_save_info_ctr_0;
19700 TALLOC_CTX *_mem_save_devmode_ctr_0;
19701 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19702 if (flags & NDR_IN) {
19703 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19704 NDR_PULL_ALLOC(ndr, r->in.handle);
19706 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19707 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19708 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19710 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19711 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19713 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19714 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19715 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19717 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19718 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19720 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19721 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19722 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19724 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19725 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19727 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19728 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19729 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19731 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19733 if (flags & NDR_OUT) {
19734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19736 return NDR_ERR_SUCCESS;
19739 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19741 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19743 if (flags & NDR_SET_VALUES) {
19744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19746 if (flags & NDR_IN) {
19747 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19749 ndr_print_ptr(ndr, "handle", r->in.handle);
19751 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19753 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19755 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19757 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19759 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19761 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19763 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19765 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19768 if (flags & NDR_OUT) {
19769 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19771 ndr_print_WERROR(ndr, "result", r->out.result);
19777 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19779 if (flags & NDR_IN) {
19780 if (r->in.handle == NULL) {
19781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19783 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19786 if (r->in.buffer) {
19787 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19791 if (flags & NDR_OUT) {
19792 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19795 struct ndr_push *_ndr_info;
19796 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19797 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19798 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19799 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19802 if (r->out.needed == NULL) {
19803 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19806 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19808 return NDR_ERR_SUCCESS;
19811 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19813 uint32_t _ptr_buffer;
19814 uint32_t _ptr_info;
19815 TALLOC_CTX *_mem_save_handle_0;
19816 TALLOC_CTX *_mem_save_buffer_0;
19817 TALLOC_CTX *_mem_save_info_0;
19818 TALLOC_CTX *_mem_save_needed_0;
19819 if (flags & NDR_IN) {
19820 ZERO_STRUCT(r->out);
19822 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19823 NDR_PULL_ALLOC(ndr, r->in.handle);
19825 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19826 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19827 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19832 NDR_PULL_ALLOC(ndr, r->in.buffer);
19834 r->in.buffer = NULL;
19836 if (r->in.buffer) {
19837 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19838 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19839 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19843 NDR_PULL_ALLOC(ndr, r->out.needed);
19844 ZERO_STRUCTP(r->out.needed);
19846 if (flags & NDR_OUT) {
19847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19849 NDR_PULL_ALLOC(ndr, r->out.info);
19851 r->out.info = NULL;
19854 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19855 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19857 struct ndr_pull *_ndr_info;
19858 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19859 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19860 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19861 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19865 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19866 NDR_PULL_ALLOC(ndr, r->out.needed);
19868 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19869 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19872 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19874 return NDR_ERR_SUCCESS;
19877 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19879 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19881 if (flags & NDR_SET_VALUES) {
19882 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19884 if (flags & NDR_IN) {
19885 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19887 ndr_print_ptr(ndr, "handle", r->in.handle);
19889 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19891 ndr_print_uint32(ndr, "level", r->in.level);
19892 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19894 if (r->in.buffer) {
19895 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19898 ndr_print_uint32(ndr, "offered", r->in.offered);
19901 if (flags & NDR_OUT) {
19902 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19904 ndr_print_ptr(ndr, "info", r->out.info);
19907 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19908 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19911 ndr_print_ptr(ndr, "needed", r->out.needed);
19913 ndr_print_uint32(ndr, "needed", *r->out.needed);
19915 ndr_print_WERROR(ndr, "result", r->out.result);
19921 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19923 if (flags & NDR_IN) {
19924 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19925 if (r->in.servername) {
19926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19929 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19931 if (r->in.info_ctr == NULL) {
19932 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19934 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19936 if (flags & NDR_OUT) {
19937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19939 return NDR_ERR_SUCCESS;
19942 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19944 uint32_t _ptr_servername;
19945 TALLOC_CTX *_mem_save_servername_0;
19946 TALLOC_CTX *_mem_save_info_ctr_0;
19947 if (flags & NDR_IN) {
19948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19949 if (_ptr_servername) {
19950 NDR_PULL_ALLOC(ndr, r->in.servername);
19952 r->in.servername = NULL;
19954 if (r->in.servername) {
19955 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19956 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19957 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19958 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19959 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19960 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));
19962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19967 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19969 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19970 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19971 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19974 if (flags & NDR_OUT) {
19975 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19977 return NDR_ERR_SUCCESS;
19980 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19982 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19984 if (flags & NDR_SET_VALUES) {
19985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19987 if (flags & NDR_IN) {
19988 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19990 ndr_print_ptr(ndr, "servername", r->in.servername);
19992 if (r->in.servername) {
19993 ndr_print_string(ndr, "servername", r->in.servername);
19996 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19998 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20002 if (flags & NDR_OUT) {
20003 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20005 ndr_print_WERROR(ndr, "result", r->out.result);
20011 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20013 if (flags & NDR_IN) {
20014 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20015 if (r->in.server) {
20016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20019 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20021 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20022 if (r->in.environment) {
20023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20030 if (r->in.buffer) {
20031 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20035 if (flags & NDR_OUT) {
20036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20038 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20040 if (r->out.needed == NULL) {
20041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20044 if (r->out.count == NULL) {
20045 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20048 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20050 return NDR_ERR_SUCCESS;
20053 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20055 uint32_t _ptr_server;
20056 uint32_t _ptr_environment;
20057 uint32_t _ptr_buffer;
20058 uint32_t _ptr_info;
20059 TALLOC_CTX *_mem_save_server_0;
20060 TALLOC_CTX *_mem_save_environment_0;
20061 TALLOC_CTX *_mem_save_buffer_0;
20062 TALLOC_CTX *_mem_save_info_0;
20063 TALLOC_CTX *_mem_save_needed_0;
20064 TALLOC_CTX *_mem_save_count_0;
20065 if (flags & NDR_IN) {
20066 ZERO_STRUCT(r->out);
20068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20070 NDR_PULL_ALLOC(ndr, r->in.server);
20072 r->in.server = NULL;
20074 if (r->in.server) {
20075 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20076 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20077 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20078 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20079 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20080 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));
20082 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20083 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20087 if (_ptr_environment) {
20088 NDR_PULL_ALLOC(ndr, r->in.environment);
20090 r->in.environment = NULL;
20092 if (r->in.environment) {
20093 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20094 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20095 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20096 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20097 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20098 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));
20100 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20101 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20107 NDR_PULL_ALLOC(ndr, r->in.buffer);
20109 r->in.buffer = NULL;
20111 if (r->in.buffer) {
20112 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20113 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20114 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20118 NDR_PULL_ALLOC(ndr, r->out.needed);
20119 ZERO_STRUCTP(r->out.needed);
20120 NDR_PULL_ALLOC(ndr, r->out.count);
20121 ZERO_STRUCTP(r->out.count);
20123 if (flags & NDR_OUT) {
20124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20126 NDR_PULL_ALLOC(ndr, r->out.info);
20128 r->out.info = NULL;
20131 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20132 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20133 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20136 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20137 NDR_PULL_ALLOC(ndr, r->out.needed);
20139 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20140 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20143 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20144 NDR_PULL_ALLOC(ndr, r->out.count);
20146 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20147 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20150 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20152 return NDR_ERR_SUCCESS;
20155 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
20157 uint32_t cntr_info_0;
20158 if (flags & NDR_IN) {
20159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20162 if (flags & NDR_OUT) {
20163 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20164 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20165 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20167 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20168 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20171 return NDR_ERR_SUCCESS;
20174 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
20176 uint32_t cntr_info_0;
20177 TALLOC_CTX *_mem_save_info_0;
20178 if (flags & NDR_IN) {
20179 ZERO_STRUCT(r->out);
20181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20184 if (flags & NDR_OUT) {
20185 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20186 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20187 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20188 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20189 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20190 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20192 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20193 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20197 return NDR_ERR_SUCCESS;
20200 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
20202 uint32_t cntr_info_2;
20203 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
20205 if (flags & NDR_SET_VALUES) {
20206 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20208 if (flags & NDR_IN) {
20209 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
20211 ndr_print_ptr(ndr, "server", r->in.server);
20213 if (r->in.server) {
20214 ndr_print_string(ndr, "server", r->in.server);
20217 ndr_print_ptr(ndr, "environment", r->in.environment);
20219 if (r->in.environment) {
20220 ndr_print_string(ndr, "environment", r->in.environment);
20223 ndr_print_uint32(ndr, "level", r->in.level);
20224 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20226 if (r->in.buffer) {
20227 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20230 ndr_print_uint32(ndr, "offered", r->in.offered);
20233 if (flags & NDR_OUT) {
20234 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
20236 ndr_print_ptr(ndr, "count", r->out.count);
20238 ndr_print_uint32(ndr, "count", *r->out.count);
20240 ndr_print_ptr(ndr, "info", r->out.info);
20242 ndr_print_ptr(ndr, "info", *r->out.info);
20244 if (*r->out.info) {
20245 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20247 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20249 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20250 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20251 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20259 ndr_print_ptr(ndr, "needed", r->out.needed);
20261 ndr_print_uint32(ndr, "needed", *r->out.needed);
20263 ndr_print_WERROR(ndr, "result", r->out.result);
20269 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
20271 if (flags & NDR_IN) {
20273 if (flags & NDR_OUT) {
20274 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20276 return NDR_ERR_SUCCESS;
20279 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
20281 if (flags & NDR_IN) {
20283 if (flags & NDR_OUT) {
20284 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20286 return NDR_ERR_SUCCESS;
20289 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
20291 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
20293 if (flags & NDR_SET_VALUES) {
20294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20296 if (flags & NDR_IN) {
20297 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
20301 if (flags & NDR_OUT) {
20302 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
20304 ndr_print_WERROR(ndr, "result", r->out.result);
20310 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20312 if (flags & NDR_IN) {
20313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20314 if (r->in.server) {
20315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20318 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20320 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20321 if (r->in.environment) {
20322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20329 if (r->in.buffer) {
20330 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20334 if (flags & NDR_OUT) {
20335 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20338 struct ndr_push *_ndr_info;
20339 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20340 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20341 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20342 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20345 if (r->out.needed == NULL) {
20346 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20349 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20351 return NDR_ERR_SUCCESS;
20354 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20356 uint32_t _ptr_server;
20357 uint32_t _ptr_environment;
20358 uint32_t _ptr_buffer;
20359 uint32_t _ptr_info;
20360 TALLOC_CTX *_mem_save_server_0;
20361 TALLOC_CTX *_mem_save_environment_0;
20362 TALLOC_CTX *_mem_save_buffer_0;
20363 TALLOC_CTX *_mem_save_info_0;
20364 TALLOC_CTX *_mem_save_needed_0;
20365 if (flags & NDR_IN) {
20366 ZERO_STRUCT(r->out);
20368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20370 NDR_PULL_ALLOC(ndr, r->in.server);
20372 r->in.server = NULL;
20374 if (r->in.server) {
20375 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20376 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20377 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20378 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20379 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20380 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));
20382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20387 if (_ptr_environment) {
20388 NDR_PULL_ALLOC(ndr, r->in.environment);
20390 r->in.environment = NULL;
20392 if (r->in.environment) {
20393 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20394 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20395 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20396 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20397 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20398 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));
20400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20401 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20404 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20407 NDR_PULL_ALLOC(ndr, r->in.buffer);
20409 r->in.buffer = NULL;
20411 if (r->in.buffer) {
20412 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20413 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20414 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20418 NDR_PULL_ALLOC(ndr, r->out.needed);
20419 ZERO_STRUCTP(r->out.needed);
20421 if (flags & NDR_OUT) {
20422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20424 NDR_PULL_ALLOC(ndr, r->out.info);
20426 r->out.info = NULL;
20429 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20430 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20432 struct ndr_pull *_ndr_info;
20433 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20434 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20435 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20436 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20440 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20441 NDR_PULL_ALLOC(ndr, r->out.needed);
20443 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20444 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20447 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20449 return NDR_ERR_SUCCESS;
20452 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20454 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20456 if (flags & NDR_SET_VALUES) {
20457 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20459 if (flags & NDR_IN) {
20460 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20462 ndr_print_ptr(ndr, "server", r->in.server);
20464 if (r->in.server) {
20465 ndr_print_string(ndr, "server", r->in.server);
20468 ndr_print_ptr(ndr, "environment", r->in.environment);
20470 if (r->in.environment) {
20471 ndr_print_string(ndr, "environment", r->in.environment);
20474 ndr_print_uint32(ndr, "level", r->in.level);
20475 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20477 if (r->in.buffer) {
20478 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20481 ndr_print_uint32(ndr, "offered", r->in.offered);
20484 if (flags & NDR_OUT) {
20485 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20487 ndr_print_ptr(ndr, "info", r->out.info);
20490 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20491 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20494 ndr_print_ptr(ndr, "needed", r->out.needed);
20496 ndr_print_uint32(ndr, "needed", *r->out.needed);
20498 ndr_print_WERROR(ndr, "result", r->out.result);
20504 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20506 if (flags & NDR_IN) {
20507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20508 if (r->in.server) {
20509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20517 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20521 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20523 if (flags & NDR_OUT) {
20524 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20526 return NDR_ERR_SUCCESS;
20529 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20531 uint32_t _ptr_server;
20532 TALLOC_CTX *_mem_save_server_0;
20533 if (flags & NDR_IN) {
20534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20536 NDR_PULL_ALLOC(ndr, r->in.server);
20538 r->in.server = NULL;
20540 if (r->in.server) {
20541 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20542 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20543 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20544 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20545 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20546 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));
20548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20552 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20553 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20554 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20555 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));
20557 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20558 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20559 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20560 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20561 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20562 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));
20564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20567 if (flags & NDR_OUT) {
20568 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20570 return NDR_ERR_SUCCESS;
20573 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20575 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20577 if (flags & NDR_SET_VALUES) {
20578 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20580 if (flags & NDR_IN) {
20581 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20583 ndr_print_ptr(ndr, "server", r->in.server);
20585 if (r->in.server) {
20586 ndr_print_string(ndr, "server", r->in.server);
20589 ndr_print_string(ndr, "architecture", r->in.architecture);
20590 ndr_print_string(ndr, "driver", r->in.driver);
20593 if (flags & NDR_OUT) {
20594 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20596 ndr_print_WERROR(ndr, "result", r->out.result);
20602 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20604 if (flags & NDR_IN) {
20605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20606 if (r->in.server) {
20607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20610 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20615 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20619 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));
20620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20623 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));
20625 if (flags & NDR_OUT) {
20626 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20628 return NDR_ERR_SUCCESS;
20631 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20633 uint32_t _ptr_server;
20634 TALLOC_CTX *_mem_save_server_0;
20635 if (flags & NDR_IN) {
20636 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20638 NDR_PULL_ALLOC(ndr, r->in.server);
20640 r->in.server = NULL;
20642 if (r->in.server) {
20643 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20644 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20645 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20646 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20647 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20648 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));
20650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20654 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20655 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20656 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20657 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));
20659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20661 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20662 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20663 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20664 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));
20666 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20667 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));
20668 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20669 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20670 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20671 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));
20673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20674 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));
20676 if (flags & NDR_OUT) {
20677 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20679 return NDR_ERR_SUCCESS;
20682 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20684 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20686 if (flags & NDR_SET_VALUES) {
20687 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20689 if (flags & NDR_IN) {
20690 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20692 ndr_print_ptr(ndr, "server", r->in.server);
20694 if (r->in.server) {
20695 ndr_print_string(ndr, "server", r->in.server);
20698 ndr_print_string(ndr, "architecture", r->in.architecture);
20699 ndr_print_string(ndr, "path_name", r->in.path_name);
20700 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20703 if (flags & NDR_OUT) {
20704 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20706 ndr_print_WERROR(ndr, "result", r->out.result);
20712 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20714 if (flags & NDR_IN) {
20715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20716 if (r->in.servername) {
20717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20720 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20722 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20723 if (r->in.environment) {
20724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20727 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20731 if (r->in.buffer) {
20732 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20736 if (flags & NDR_OUT) {
20737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20739 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20741 if (r->out.needed == NULL) {
20742 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20745 if (r->out.count == NULL) {
20746 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20749 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20751 return NDR_ERR_SUCCESS;
20754 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20756 uint32_t _ptr_servername;
20757 uint32_t _ptr_environment;
20758 uint32_t _ptr_buffer;
20759 uint32_t _ptr_info;
20760 TALLOC_CTX *_mem_save_servername_0;
20761 TALLOC_CTX *_mem_save_environment_0;
20762 TALLOC_CTX *_mem_save_buffer_0;
20763 TALLOC_CTX *_mem_save_info_0;
20764 TALLOC_CTX *_mem_save_needed_0;
20765 TALLOC_CTX *_mem_save_count_0;
20766 if (flags & NDR_IN) {
20767 ZERO_STRUCT(r->out);
20769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20770 if (_ptr_servername) {
20771 NDR_PULL_ALLOC(ndr, r->in.servername);
20773 r->in.servername = NULL;
20775 if (r->in.servername) {
20776 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20777 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20778 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20779 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20780 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20781 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));
20783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20788 if (_ptr_environment) {
20789 NDR_PULL_ALLOC(ndr, r->in.environment);
20791 r->in.environment = NULL;
20793 if (r->in.environment) {
20794 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20795 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20796 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20797 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20798 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20799 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));
20801 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20808 NDR_PULL_ALLOC(ndr, r->in.buffer);
20810 r->in.buffer = NULL;
20812 if (r->in.buffer) {
20813 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20814 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20815 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20819 NDR_PULL_ALLOC(ndr, r->out.needed);
20820 ZERO_STRUCTP(r->out.needed);
20821 NDR_PULL_ALLOC(ndr, r->out.count);
20822 ZERO_STRUCTP(r->out.count);
20824 if (flags & NDR_OUT) {
20825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20827 NDR_PULL_ALLOC(ndr, r->out.info);
20829 r->out.info = NULL;
20832 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20833 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20834 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20838 NDR_PULL_ALLOC(ndr, r->out.needed);
20840 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20841 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20844 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20845 NDR_PULL_ALLOC(ndr, r->out.count);
20847 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20848 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20851 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20853 return NDR_ERR_SUCCESS;
20856 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20858 uint32_t cntr_info_0;
20859 if (flags & NDR_IN) {
20860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20863 if (flags & NDR_OUT) {
20864 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20865 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20866 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20868 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20869 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20872 return NDR_ERR_SUCCESS;
20875 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20877 uint32_t cntr_info_0;
20878 TALLOC_CTX *_mem_save_info_0;
20879 if (flags & NDR_IN) {
20880 ZERO_STRUCT(r->out);
20882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20885 if (flags & NDR_OUT) {
20886 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20887 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20888 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20889 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20890 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20891 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20893 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20894 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20898 return NDR_ERR_SUCCESS;
20901 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20903 uint32_t cntr_info_2;
20904 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20906 if (flags & NDR_SET_VALUES) {
20907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20909 if (flags & NDR_IN) {
20910 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20912 ndr_print_ptr(ndr, "servername", r->in.servername);
20914 if (r->in.servername) {
20915 ndr_print_string(ndr, "servername", r->in.servername);
20918 ndr_print_ptr(ndr, "environment", r->in.environment);
20920 if (r->in.environment) {
20921 ndr_print_string(ndr, "environment", r->in.environment);
20924 ndr_print_uint32(ndr, "level", r->in.level);
20925 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20927 if (r->in.buffer) {
20928 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20931 ndr_print_uint32(ndr, "offered", r->in.offered);
20934 if (flags & NDR_OUT) {
20935 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20937 ndr_print_ptr(ndr, "count", r->out.count);
20939 ndr_print_uint32(ndr, "count", *r->out.count);
20941 ndr_print_ptr(ndr, "info", r->out.info);
20943 ndr_print_ptr(ndr, "info", *r->out.info);
20945 if (*r->out.info) {
20946 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20948 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20950 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20951 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20952 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20960 ndr_print_ptr(ndr, "needed", r->out.needed);
20962 ndr_print_uint32(ndr, "needed", *r->out.needed);
20964 ndr_print_WERROR(ndr, "result", r->out.result);
20970 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20972 if (flags & NDR_IN) {
20973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20974 if (r->in.server) {
20975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20978 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20981 if (r->in.environment) {
20982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20985 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20989 if (r->in.buffer) {
20990 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20994 if (flags & NDR_OUT) {
20995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20998 struct ndr_push *_ndr_info;
20999 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21000 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21001 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21002 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21005 if (r->out.needed == NULL) {
21006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21009 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21011 return NDR_ERR_SUCCESS;
21014 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21016 uint32_t _ptr_server;
21017 uint32_t _ptr_environment;
21018 uint32_t _ptr_buffer;
21019 uint32_t _ptr_info;
21020 TALLOC_CTX *_mem_save_server_0;
21021 TALLOC_CTX *_mem_save_environment_0;
21022 TALLOC_CTX *_mem_save_buffer_0;
21023 TALLOC_CTX *_mem_save_info_0;
21024 TALLOC_CTX *_mem_save_needed_0;
21025 if (flags & NDR_IN) {
21026 ZERO_STRUCT(r->out);
21028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21030 NDR_PULL_ALLOC(ndr, r->in.server);
21032 r->in.server = NULL;
21034 if (r->in.server) {
21035 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21036 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21037 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21038 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21039 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21040 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));
21042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21047 if (_ptr_environment) {
21048 NDR_PULL_ALLOC(ndr, r->in.environment);
21050 r->in.environment = NULL;
21052 if (r->in.environment) {
21053 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21054 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21055 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21056 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21057 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21058 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));
21060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21067 NDR_PULL_ALLOC(ndr, r->in.buffer);
21069 r->in.buffer = NULL;
21071 if (r->in.buffer) {
21072 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21073 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21074 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21078 NDR_PULL_ALLOC(ndr, r->out.needed);
21079 ZERO_STRUCTP(r->out.needed);
21081 if (flags & NDR_OUT) {
21082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21084 NDR_PULL_ALLOC(ndr, r->out.info);
21086 r->out.info = NULL;
21089 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21090 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21092 struct ndr_pull *_ndr_info;
21093 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21094 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21095 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21096 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21100 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21101 NDR_PULL_ALLOC(ndr, r->out.needed);
21103 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21104 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21107 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21109 return NDR_ERR_SUCCESS;
21112 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21114 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
21116 if (flags & NDR_SET_VALUES) {
21117 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21119 if (flags & NDR_IN) {
21120 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
21122 ndr_print_ptr(ndr, "server", r->in.server);
21124 if (r->in.server) {
21125 ndr_print_string(ndr, "server", r->in.server);
21128 ndr_print_ptr(ndr, "environment", r->in.environment);
21130 if (r->in.environment) {
21131 ndr_print_string(ndr, "environment", r->in.environment);
21134 ndr_print_uint32(ndr, "level", r->in.level);
21135 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21137 if (r->in.buffer) {
21138 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21141 ndr_print_uint32(ndr, "offered", r->in.offered);
21144 if (flags & NDR_OUT) {
21145 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
21147 ndr_print_ptr(ndr, "info", r->out.info);
21150 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21151 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
21154 ndr_print_ptr(ndr, "needed", r->out.needed);
21156 ndr_print_uint32(ndr, "needed", *r->out.needed);
21158 ndr_print_WERROR(ndr, "result", r->out.result);
21164 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
21166 if (flags & NDR_IN) {
21167 if (r->in.handle == NULL) {
21168 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21170 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21172 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21173 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21175 if (flags & NDR_OUT) {
21176 if (r->out.job_id == NULL) {
21177 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
21180 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21182 return NDR_ERR_SUCCESS;
21185 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
21187 TALLOC_CTX *_mem_save_handle_0;
21188 TALLOC_CTX *_mem_save_job_id_0;
21189 if (flags & NDR_IN) {
21190 ZERO_STRUCT(r->out);
21192 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21193 NDR_PULL_ALLOC(ndr, r->in.handle);
21195 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21196 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21197 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21200 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21201 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21202 NDR_PULL_ALLOC(ndr, r->out.job_id);
21203 ZERO_STRUCTP(r->out.job_id);
21205 if (flags & NDR_OUT) {
21206 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21207 NDR_PULL_ALLOC(ndr, r->out.job_id);
21209 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
21210 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
21211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
21212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
21213 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21215 return NDR_ERR_SUCCESS;
21218 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
21220 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
21222 if (flags & NDR_SET_VALUES) {
21223 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21225 if (flags & NDR_IN) {
21226 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
21228 ndr_print_ptr(ndr, "handle", r->in.handle);
21230 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21232 ndr_print_uint32(ndr, "level", r->in.level);
21233 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21234 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
21237 if (flags & NDR_OUT) {
21238 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
21240 ndr_print_ptr(ndr, "job_id", r->out.job_id);
21242 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
21244 ndr_print_WERROR(ndr, "result", r->out.result);
21250 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
21252 if (flags & NDR_IN) {
21253 if (r->in.handle == NULL) {
21254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21256 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21258 if (flags & NDR_OUT) {
21259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21261 return NDR_ERR_SUCCESS;
21264 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
21266 TALLOC_CTX *_mem_save_handle_0;
21267 if (flags & NDR_IN) {
21268 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21269 NDR_PULL_ALLOC(ndr, r->in.handle);
21271 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21272 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21273 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21276 if (flags & NDR_OUT) {
21277 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21279 return NDR_ERR_SUCCESS;
21282 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
21284 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
21286 if (flags & NDR_SET_VALUES) {
21287 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21289 if (flags & NDR_IN) {
21290 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
21292 ndr_print_ptr(ndr, "handle", r->in.handle);
21294 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21298 if (flags & NDR_OUT) {
21299 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
21301 ndr_print_WERROR(ndr, "result", r->out.result);
21307 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
21309 if (flags & NDR_IN) {
21310 if (r->in.handle == NULL) {
21311 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21313 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21314 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
21317 if (flags & NDR_OUT) {
21318 if (r->out.num_written == NULL) {
21319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
21322 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21324 return NDR_ERR_SUCCESS;
21327 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
21329 TALLOC_CTX *_mem_save_handle_0;
21330 TALLOC_CTX *_mem_save_num_written_0;
21331 if (flags & NDR_IN) {
21332 ZERO_STRUCT(r->out);
21334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21335 NDR_PULL_ALLOC(ndr, r->in.handle);
21337 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21338 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21339 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21341 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21343 NDR_PULL_ALLOC(ndr, r->out.num_written);
21344 ZERO_STRUCTP(r->out.num_written);
21346 if (flags & NDR_OUT) {
21347 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21348 NDR_PULL_ALLOC(ndr, r->out.num_written);
21350 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21351 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21354 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21356 return NDR_ERR_SUCCESS;
21359 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21361 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21363 if (flags & NDR_SET_VALUES) {
21364 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21366 if (flags & NDR_IN) {
21367 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21369 ndr_print_ptr(ndr, "handle", r->in.handle);
21371 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21373 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21374 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21377 if (flags & NDR_OUT) {
21378 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21380 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21382 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21384 ndr_print_WERROR(ndr, "result", r->out.result);
21390 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
21392 if (flags & NDR_IN) {
21393 if (r->in.handle == NULL) {
21394 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21396 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21398 if (flags & NDR_OUT) {
21399 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21401 return NDR_ERR_SUCCESS;
21404 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
21406 TALLOC_CTX *_mem_save_handle_0;
21407 if (flags & NDR_IN) {
21408 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21409 NDR_PULL_ALLOC(ndr, r->in.handle);
21411 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21412 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21413 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21416 if (flags & NDR_OUT) {
21417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21419 return NDR_ERR_SUCCESS;
21422 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21424 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
21426 if (flags & NDR_SET_VALUES) {
21427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21429 if (flags & NDR_IN) {
21430 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
21432 ndr_print_ptr(ndr, "handle", r->in.handle);
21434 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21438 if (flags & NDR_OUT) {
21439 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
21441 ndr_print_WERROR(ndr, "result", r->out.result);
21447 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
21449 if (flags & NDR_IN) {
21450 if (r->in.handle == NULL) {
21451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21453 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21455 if (flags & NDR_OUT) {
21456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21458 return NDR_ERR_SUCCESS;
21461 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21463 TALLOC_CTX *_mem_save_handle_0;
21464 if (flags & NDR_IN) {
21465 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21466 NDR_PULL_ALLOC(ndr, r->in.handle);
21468 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21469 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21470 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21473 if (flags & NDR_OUT) {
21474 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21476 return NDR_ERR_SUCCESS;
21479 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21481 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21483 if (flags & NDR_SET_VALUES) {
21484 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21486 if (flags & NDR_IN) {
21487 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21489 ndr_print_ptr(ndr, "handle", r->in.handle);
21491 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21495 if (flags & NDR_OUT) {
21496 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21498 ndr_print_WERROR(ndr, "result", r->out.result);
21504 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21506 if (flags & NDR_IN) {
21507 if (r->in.handle == NULL) {
21508 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21510 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21513 if (flags & NDR_OUT) {
21514 if (r->out.data == NULL) {
21515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21518 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21519 if (r->out._data_size == NULL) {
21520 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21523 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21525 return NDR_ERR_SUCCESS;
21528 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21530 TALLOC_CTX *_mem_save_handle_0;
21531 TALLOC_CTX *_mem_save__data_size_0;
21532 if (flags & NDR_IN) {
21533 ZERO_STRUCT(r->out);
21535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21536 NDR_PULL_ALLOC(ndr, r->in.handle);
21538 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21539 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21540 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21543 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21544 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21545 NDR_PULL_ALLOC(ndr, r->out._data_size);
21546 ZERO_STRUCTP(r->out._data_size);
21548 if (flags & NDR_OUT) {
21549 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21550 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21551 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21553 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21555 NDR_PULL_ALLOC(ndr, r->out._data_size);
21557 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21558 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21561 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21563 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21566 return NDR_ERR_SUCCESS;
21569 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21571 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21573 if (flags & NDR_SET_VALUES) {
21574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21576 if (flags & NDR_IN) {
21577 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21579 ndr_print_ptr(ndr, "handle", r->in.handle);
21581 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21583 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21586 if (flags & NDR_OUT) {
21587 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21589 ndr_print_ptr(ndr, "data", r->out.data);
21591 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21593 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21595 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21597 ndr_print_WERROR(ndr, "result", r->out.result);
21603 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21605 if (flags & NDR_IN) {
21606 if (r->in.handle == NULL) {
21607 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21609 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21611 if (flags & NDR_OUT) {
21612 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21614 return NDR_ERR_SUCCESS;
21617 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21619 TALLOC_CTX *_mem_save_handle_0;
21620 if (flags & NDR_IN) {
21621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21622 NDR_PULL_ALLOC(ndr, r->in.handle);
21624 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21625 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21626 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21629 if (flags & NDR_OUT) {
21630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21632 return NDR_ERR_SUCCESS;
21635 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21637 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21639 if (flags & NDR_SET_VALUES) {
21640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21642 if (flags & NDR_IN) {
21643 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21645 ndr_print_ptr(ndr, "handle", r->in.handle);
21647 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21651 if (flags & NDR_OUT) {
21652 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21654 ndr_print_WERROR(ndr, "result", r->out.result);
21660 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21662 if (flags & NDR_IN) {
21663 if (r->in.handle == NULL) {
21664 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21666 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21668 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21669 if (r->in.buffer) {
21670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21671 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21675 if (flags & NDR_OUT) {
21676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21677 if (r->out.buffer) {
21678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21679 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21681 if (r->out.needed == NULL) {
21682 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21687 return NDR_ERR_SUCCESS;
21690 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21692 uint32_t _ptr_buffer;
21693 TALLOC_CTX *_mem_save_handle_0;
21694 TALLOC_CTX *_mem_save_buffer_0;
21695 TALLOC_CTX *_mem_save_needed_0;
21696 if (flags & NDR_IN) {
21697 ZERO_STRUCT(r->out);
21699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21700 NDR_PULL_ALLOC(ndr, r->in.handle);
21702 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21703 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21704 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21706 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21709 NDR_PULL_ALLOC(ndr, r->in.buffer);
21711 r->in.buffer = NULL;
21713 if (r->in.buffer) {
21714 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21715 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21716 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21717 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21718 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21722 NDR_PULL_ALLOC(ndr, r->out.needed);
21723 ZERO_STRUCTP(r->out.needed);
21724 if (r->in.buffer) {
21725 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21728 if (flags & NDR_OUT) {
21729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21731 NDR_PULL_ALLOC(ndr, r->out.buffer);
21733 r->out.buffer = NULL;
21735 if (r->out.buffer) {
21736 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21737 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21738 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21739 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21740 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21743 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21744 NDR_PULL_ALLOC(ndr, r->out.needed);
21746 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21747 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21750 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21751 if (r->out.buffer) {
21752 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21755 return NDR_ERR_SUCCESS;
21758 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21760 ndr_print_struct(ndr, name, "spoolss_AddJob");
21762 if (flags & NDR_SET_VALUES) {
21763 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21765 if (flags & NDR_IN) {
21766 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21768 ndr_print_ptr(ndr, "handle", r->in.handle);
21770 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21772 ndr_print_uint32(ndr, "level", r->in.level);
21773 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21775 if (r->in.buffer) {
21776 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21779 ndr_print_uint32(ndr, "offered", r->in.offered);
21782 if (flags & NDR_OUT) {
21783 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21785 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21787 if (r->out.buffer) {
21788 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21791 ndr_print_ptr(ndr, "needed", r->out.needed);
21793 ndr_print_uint32(ndr, "needed", *r->out.needed);
21795 ndr_print_WERROR(ndr, "result", r->out.result);
21801 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21803 if (flags & NDR_IN) {
21804 if (r->in.handle == NULL) {
21805 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21807 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21810 if (flags & NDR_OUT) {
21811 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21813 return NDR_ERR_SUCCESS;
21816 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21818 TALLOC_CTX *_mem_save_handle_0;
21819 if (flags & NDR_IN) {
21820 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21821 NDR_PULL_ALLOC(ndr, r->in.handle);
21823 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21824 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21825 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21829 if (flags & NDR_OUT) {
21830 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21832 return NDR_ERR_SUCCESS;
21835 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21837 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21839 if (flags & NDR_SET_VALUES) {
21840 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21842 if (flags & NDR_IN) {
21843 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21845 ndr_print_ptr(ndr, "handle", r->in.handle);
21847 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21849 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21852 if (flags & NDR_OUT) {
21853 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21855 ndr_print_WERROR(ndr, "result", r->out.result);
21861 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21863 if (flags & NDR_IN) {
21864 if (r->in.handle == NULL) {
21865 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21867 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21871 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));
21872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21874 if (flags & NDR_OUT) {
21875 if (r->out.type == NULL) {
21876 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21878 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
21879 if (r->out.data == NULL) {
21880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21882 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
21883 if (r->out.needed == NULL) {
21884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21889 return NDR_ERR_SUCCESS;
21892 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21894 TALLOC_CTX *_mem_save_handle_0;
21895 TALLOC_CTX *_mem_save_type_0;
21896 TALLOC_CTX *_mem_save_data_0;
21897 TALLOC_CTX *_mem_save_needed_0;
21898 if (flags & NDR_IN) {
21899 ZERO_STRUCT(r->out);
21901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21902 NDR_PULL_ALLOC(ndr, r->in.handle);
21904 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21905 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21906 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21908 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21909 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21910 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21911 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));
21913 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21914 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));
21915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21916 NDR_PULL_ALLOC(ndr, r->out.type);
21917 ZERO_STRUCTP(r->out.type);
21918 NDR_PULL_ALLOC(ndr, r->out.data);
21919 ZERO_STRUCTP(r->out.data);
21920 NDR_PULL_ALLOC(ndr, r->out.needed);
21921 ZERO_STRUCTP(r->out.needed);
21923 if (flags & NDR_OUT) {
21924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21925 NDR_PULL_ALLOC(ndr, r->out.type);
21927 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21928 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21929 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
21930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21932 NDR_PULL_ALLOC(ndr, r->out.data);
21934 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21935 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
21936 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
21938 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21939 NDR_PULL_ALLOC(ndr, r->out.needed);
21941 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21942 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21945 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21947 return NDR_ERR_SUCCESS;
21950 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21952 if (flags & NDR_IN) {
21953 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21955 if (flags & NDR_OUT) {
21956 if (r->out.data == NULL) {
21957 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21959 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
21960 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21962 return NDR_ERR_SUCCESS;
21965 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21967 TALLOC_CTX *_mem_save_data_0;
21968 if (flags & NDR_IN) {
21969 ZERO_STRUCT(r->out);
21971 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
21972 NDR_PULL_ALLOC(ndr, r->out.data);
21973 ZERO_STRUCTP(r->out.data);
21975 if (flags & NDR_OUT) {
21976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21977 NDR_PULL_ALLOC(ndr, r->out.data);
21979 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21980 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
21981 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
21982 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
21985 return NDR_ERR_SUCCESS;
21988 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21990 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21992 if (flags & NDR_SET_VALUES) {
21993 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21995 if (flags & NDR_IN) {
21996 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21998 ndr_print_ptr(ndr, "handle", r->in.handle);
22000 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22002 ndr_print_string(ndr, "value_name", r->in.value_name);
22003 ndr_print_uint32(ndr, "offered", r->in.offered);
22006 if (flags & NDR_OUT) {
22007 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
22009 ndr_print_ptr(ndr, "type", r->out.type);
22011 ndr_print_winreg_Type(ndr, "type", *r->out.type);
22013 ndr_print_ptr(ndr, "data", r->out.data);
22015 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
22016 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
22018 ndr_print_ptr(ndr, "needed", r->out.needed);
22020 ndr_print_uint32(ndr, "needed", *r->out.needed);
22022 ndr_print_WERROR(ndr, "result", r->out.result);
22028 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
22030 if (flags & NDR_IN) {
22031 if (r->in.handle == NULL) {
22032 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22034 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22038 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));
22039 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22040 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
22043 if (flags & NDR_OUT) {
22044 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22046 return NDR_ERR_SUCCESS;
22049 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
22051 if (flags & NDR_IN) {
22052 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22054 if (flags & NDR_OUT) {
22055 if (r->out.data == NULL) {
22056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22058 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22059 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22061 return NDR_ERR_SUCCESS;
22064 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
22066 TALLOC_CTX *_mem_save_handle_0;
22067 if (flags & NDR_IN) {
22068 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22069 NDR_PULL_ALLOC(ndr, r->in.handle);
22071 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22072 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22073 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22075 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22076 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22077 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22078 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));
22080 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22081 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));
22082 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22084 struct ndr_pull *_ndr_data;
22085 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
22086 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
22087 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
22088 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
22090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
22092 if (flags & NDR_OUT) {
22093 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22095 return NDR_ERR_SUCCESS;
22098 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
22100 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
22102 if (flags & NDR_SET_VALUES) {
22103 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22105 if (flags & NDR_IN) {
22106 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
22108 ndr_print_ptr(ndr, "handle", r->in.handle);
22110 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22112 ndr_print_string(ndr, "value_name", r->in.value_name);
22113 ndr_print_winreg_Type(ndr, "type", r->in.type);
22114 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
22115 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
22116 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);
22119 if (flags & NDR_OUT) {
22120 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
22122 ndr_print_WERROR(ndr, "result", r->out.result);
22128 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
22130 if (flags & NDR_IN) {
22132 if (flags & NDR_OUT) {
22133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22135 return NDR_ERR_SUCCESS;
22138 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
22140 if (flags & NDR_IN) {
22142 if (flags & NDR_OUT) {
22143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22145 return NDR_ERR_SUCCESS;
22148 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
22150 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
22152 if (flags & NDR_SET_VALUES) {
22153 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22155 if (flags & NDR_IN) {
22156 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
22160 if (flags & NDR_OUT) {
22161 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
22163 ndr_print_WERROR(ndr, "result", r->out.result);
22169 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
22171 if (flags & NDR_IN) {
22172 if (r->in.handle == NULL) {
22173 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22175 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22177 if (flags & NDR_OUT) {
22178 if (r->out.handle == NULL) {
22179 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22181 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22182 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22184 return NDR_ERR_SUCCESS;
22187 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
22189 TALLOC_CTX *_mem_save_handle_0;
22190 if (flags & NDR_IN) {
22191 ZERO_STRUCT(r->out);
22193 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22194 NDR_PULL_ALLOC(ndr, r->in.handle);
22196 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22197 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22198 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22200 NDR_PULL_ALLOC(ndr, r->out.handle);
22201 *r->out.handle = *r->in.handle;
22203 if (flags & NDR_OUT) {
22204 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22205 NDR_PULL_ALLOC(ndr, r->out.handle);
22207 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22208 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
22209 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22213 return NDR_ERR_SUCCESS;
22216 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
22218 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
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_ClosePrinter");
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_ClosePrinter");
22235 ndr_print_ptr(ndr, "handle", r->out.handle);
22237 ndr_print_policy_handle(ndr, "handle", r->out.handle);
22239 ndr_print_WERROR(ndr, "result", r->out.result);
22245 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
22247 if (flags & NDR_IN) {
22248 if (r->in.handle == NULL) {
22249 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22251 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22253 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22254 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22256 if (flags & NDR_OUT) {
22257 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22259 return NDR_ERR_SUCCESS;
22262 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
22264 TALLOC_CTX *_mem_save_handle_0;
22265 if (flags & NDR_IN) {
22266 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22267 NDR_PULL_ALLOC(ndr, r->in.handle);
22269 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22270 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22271 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22274 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22275 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22277 if (flags & NDR_OUT) {
22278 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22280 return NDR_ERR_SUCCESS;
22283 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
22285 ndr_print_struct(ndr, name, "spoolss_AddForm");
22287 if (flags & NDR_SET_VALUES) {
22288 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22290 if (flags & NDR_IN) {
22291 ndr_print_struct(ndr, "in", "spoolss_AddForm");
22293 ndr_print_ptr(ndr, "handle", r->in.handle);
22295 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22297 ndr_print_uint32(ndr, "level", r->in.level);
22298 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22299 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22302 if (flags & NDR_OUT) {
22303 ndr_print_struct(ndr, "out", "spoolss_AddForm");
22305 ndr_print_WERROR(ndr, "result", r->out.result);
22311 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
22313 if (flags & NDR_IN) {
22314 if (r->in.handle == NULL) {
22315 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22317 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22321 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));
22323 if (flags & NDR_OUT) {
22324 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22326 return NDR_ERR_SUCCESS;
22329 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22331 TALLOC_CTX *_mem_save_handle_0;
22332 if (flags & NDR_IN) {
22333 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22334 NDR_PULL_ALLOC(ndr, r->in.handle);
22336 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22337 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22338 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22340 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22341 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22342 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22343 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));
22345 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22346 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));
22348 if (flags & NDR_OUT) {
22349 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22351 return NDR_ERR_SUCCESS;
22354 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
22356 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
22358 if (flags & NDR_SET_VALUES) {
22359 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22361 if (flags & NDR_IN) {
22362 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
22364 ndr_print_ptr(ndr, "handle", r->in.handle);
22366 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22368 ndr_print_string(ndr, "form_name", r->in.form_name);
22371 if (flags & NDR_OUT) {
22372 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22374 ndr_print_WERROR(ndr, "result", r->out.result);
22380 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22382 if (flags & NDR_IN) {
22383 if (r->in.handle == NULL) {
22384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22386 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22390 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));
22391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22393 if (r->in.buffer) {
22394 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22398 if (flags & NDR_OUT) {
22399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22402 struct ndr_push *_ndr_info;
22403 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22404 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22405 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22406 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22409 if (r->out.needed == NULL) {
22410 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22413 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22415 return NDR_ERR_SUCCESS;
22418 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22420 uint32_t _ptr_buffer;
22421 uint32_t _ptr_info;
22422 TALLOC_CTX *_mem_save_handle_0;
22423 TALLOC_CTX *_mem_save_buffer_0;
22424 TALLOC_CTX *_mem_save_info_0;
22425 TALLOC_CTX *_mem_save_needed_0;
22426 if (flags & NDR_IN) {
22427 ZERO_STRUCT(r->out);
22429 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22430 NDR_PULL_ALLOC(ndr, r->in.handle);
22432 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22433 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22434 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22436 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22437 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22438 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22439 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));
22441 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22442 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));
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_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22457 NDR_PULL_ALLOC(ndr, r->out.needed);
22458 ZERO_STRUCTP(r->out.needed);
22460 if (flags & NDR_OUT) {
22461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22463 NDR_PULL_ALLOC(ndr, r->out.info);
22465 r->out.info = NULL;
22468 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22469 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22471 struct ndr_pull *_ndr_info;
22472 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22473 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22474 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22475 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22480 NDR_PULL_ALLOC(ndr, r->out.needed);
22482 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22483 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22486 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22488 return NDR_ERR_SUCCESS;
22491 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22493 ndr_print_struct(ndr, name, "spoolss_GetForm");
22495 if (flags & NDR_SET_VALUES) {
22496 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22498 if (flags & NDR_IN) {
22499 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22501 ndr_print_ptr(ndr, "handle", r->in.handle);
22503 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22505 ndr_print_string(ndr, "form_name", r->in.form_name);
22506 ndr_print_uint32(ndr, "level", r->in.level);
22507 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22509 if (r->in.buffer) {
22510 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22513 ndr_print_uint32(ndr, "offered", r->in.offered);
22516 if (flags & NDR_OUT) {
22517 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22519 ndr_print_ptr(ndr, "info", r->out.info);
22522 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22523 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22526 ndr_print_ptr(ndr, "needed", r->out.needed);
22528 ndr_print_uint32(ndr, "needed", *r->out.needed);
22530 ndr_print_WERROR(ndr, "result", r->out.result);
22536 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22538 if (flags & NDR_IN) {
22539 if (r->in.handle == NULL) {
22540 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22542 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22546 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));
22547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22548 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22549 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22551 if (flags & NDR_OUT) {
22552 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22554 return NDR_ERR_SUCCESS;
22557 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22559 TALLOC_CTX *_mem_save_handle_0;
22560 if (flags & NDR_IN) {
22561 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22562 NDR_PULL_ALLOC(ndr, r->in.handle);
22564 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22565 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22566 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22568 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22569 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22570 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22571 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));
22573 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22574 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));
22575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22576 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22577 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22579 if (flags & NDR_OUT) {
22580 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22582 return NDR_ERR_SUCCESS;
22585 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22587 ndr_print_struct(ndr, name, "spoolss_SetForm");
22589 if (flags & NDR_SET_VALUES) {
22590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22592 if (flags & NDR_IN) {
22593 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22595 ndr_print_ptr(ndr, "handle", r->in.handle);
22597 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22599 ndr_print_string(ndr, "form_name", r->in.form_name);
22600 ndr_print_uint32(ndr, "level", r->in.level);
22601 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22602 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22605 if (flags & NDR_OUT) {
22606 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22608 ndr_print_WERROR(ndr, "result", r->out.result);
22614 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22616 if (flags & NDR_IN) {
22617 if (r->in.handle == NULL) {
22618 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22620 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22623 if (r->in.buffer) {
22624 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22628 if (flags & NDR_OUT) {
22629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22631 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22633 if (r->out.needed == NULL) {
22634 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22637 if (r->out.count == NULL) {
22638 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22641 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22643 return NDR_ERR_SUCCESS;
22646 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22648 uint32_t _ptr_buffer;
22649 uint32_t _ptr_info;
22650 TALLOC_CTX *_mem_save_handle_0;
22651 TALLOC_CTX *_mem_save_buffer_0;
22652 TALLOC_CTX *_mem_save_info_0;
22653 TALLOC_CTX *_mem_save_needed_0;
22654 TALLOC_CTX *_mem_save_count_0;
22655 if (flags & NDR_IN) {
22656 ZERO_STRUCT(r->out);
22658 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22659 NDR_PULL_ALLOC(ndr, r->in.handle);
22661 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22662 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22663 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22668 NDR_PULL_ALLOC(ndr, r->in.buffer);
22670 r->in.buffer = NULL;
22672 if (r->in.buffer) {
22673 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22674 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22675 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22679 NDR_PULL_ALLOC(ndr, r->out.needed);
22680 ZERO_STRUCTP(r->out.needed);
22681 NDR_PULL_ALLOC(ndr, r->out.count);
22682 ZERO_STRUCTP(r->out.count);
22684 if (flags & NDR_OUT) {
22685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22687 NDR_PULL_ALLOC(ndr, r->out.info);
22689 r->out.info = NULL;
22692 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22693 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22694 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22698 NDR_PULL_ALLOC(ndr, r->out.needed);
22700 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22701 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22705 NDR_PULL_ALLOC(ndr, r->out.count);
22707 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22708 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22711 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22713 return NDR_ERR_SUCCESS;
22716 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22718 uint32_t cntr_info_0;
22719 if (flags & NDR_IN) {
22720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22723 if (flags & NDR_OUT) {
22724 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22725 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22726 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22728 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22729 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22732 return NDR_ERR_SUCCESS;
22735 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22737 uint32_t cntr_info_0;
22738 TALLOC_CTX *_mem_save_info_0;
22739 if (flags & NDR_IN) {
22740 ZERO_STRUCT(r->out);
22742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22745 if (flags & NDR_OUT) {
22746 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22747 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22748 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22749 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22750 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22751 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22753 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22754 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22758 return NDR_ERR_SUCCESS;
22761 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22763 uint32_t cntr_info_2;
22764 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22766 if (flags & NDR_SET_VALUES) {
22767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22769 if (flags & NDR_IN) {
22770 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22772 ndr_print_ptr(ndr, "handle", r->in.handle);
22774 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22776 ndr_print_uint32(ndr, "level", r->in.level);
22777 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22779 if (r->in.buffer) {
22780 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22783 ndr_print_uint32(ndr, "offered", r->in.offered);
22786 if (flags & NDR_OUT) {
22787 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22789 ndr_print_ptr(ndr, "count", r->out.count);
22791 ndr_print_uint32(ndr, "count", *r->out.count);
22793 ndr_print_ptr(ndr, "info", r->out.info);
22795 ndr_print_ptr(ndr, "info", *r->out.info);
22797 if (*r->out.info) {
22798 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22800 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22802 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22803 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22804 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22812 ndr_print_ptr(ndr, "needed", r->out.needed);
22814 ndr_print_uint32(ndr, "needed", *r->out.needed);
22816 ndr_print_WERROR(ndr, "result", r->out.result);
22822 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22824 if (flags & NDR_IN) {
22825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22826 if (r->in.servername) {
22827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22834 if (r->in.buffer) {
22835 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22839 if (flags & NDR_OUT) {
22840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22842 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22844 if (r->out.needed == NULL) {
22845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22848 if (r->out.count == NULL) {
22849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22852 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22854 return NDR_ERR_SUCCESS;
22857 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22859 uint32_t _ptr_servername;
22860 uint32_t _ptr_buffer;
22861 uint32_t _ptr_info;
22862 TALLOC_CTX *_mem_save_servername_0;
22863 TALLOC_CTX *_mem_save_buffer_0;
22864 TALLOC_CTX *_mem_save_info_0;
22865 TALLOC_CTX *_mem_save_needed_0;
22866 TALLOC_CTX *_mem_save_count_0;
22867 if (flags & NDR_IN) {
22868 ZERO_STRUCT(r->out);
22870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22871 if (_ptr_servername) {
22872 NDR_PULL_ALLOC(ndr, r->in.servername);
22874 r->in.servername = NULL;
22876 if (r->in.servername) {
22877 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22878 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22879 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22880 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22881 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22882 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));
22884 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22885 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22891 NDR_PULL_ALLOC(ndr, r->in.buffer);
22893 r->in.buffer = NULL;
22895 if (r->in.buffer) {
22896 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22897 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22898 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22902 NDR_PULL_ALLOC(ndr, r->out.needed);
22903 ZERO_STRUCTP(r->out.needed);
22904 NDR_PULL_ALLOC(ndr, r->out.count);
22905 ZERO_STRUCTP(r->out.count);
22907 if (flags & NDR_OUT) {
22908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22910 NDR_PULL_ALLOC(ndr, r->out.info);
22912 r->out.info = NULL;
22915 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22916 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22917 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22921 NDR_PULL_ALLOC(ndr, r->out.needed);
22923 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22924 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22927 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22928 NDR_PULL_ALLOC(ndr, r->out.count);
22930 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22931 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22934 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22936 return NDR_ERR_SUCCESS;
22939 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22941 uint32_t cntr_info_0;
22942 if (flags & NDR_IN) {
22943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22946 if (flags & NDR_OUT) {
22947 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22948 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22949 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22951 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22952 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22955 return NDR_ERR_SUCCESS;
22958 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22960 uint32_t cntr_info_0;
22961 TALLOC_CTX *_mem_save_info_0;
22962 if (flags & NDR_IN) {
22963 ZERO_STRUCT(r->out);
22965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22966 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22968 if (flags & NDR_OUT) {
22969 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22970 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22971 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22972 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22973 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22974 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22976 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22977 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22981 return NDR_ERR_SUCCESS;
22984 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22986 uint32_t cntr_info_2;
22987 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22989 if (flags & NDR_SET_VALUES) {
22990 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22992 if (flags & NDR_IN) {
22993 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22995 ndr_print_ptr(ndr, "servername", r->in.servername);
22997 if (r->in.servername) {
22998 ndr_print_string(ndr, "servername", r->in.servername);
23001 ndr_print_uint32(ndr, "level", r->in.level);
23002 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23004 if (r->in.buffer) {
23005 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23008 ndr_print_uint32(ndr, "offered", r->in.offered);
23011 if (flags & NDR_OUT) {
23012 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
23014 ndr_print_ptr(ndr, "count", r->out.count);
23016 ndr_print_uint32(ndr, "count", *r->out.count);
23018 ndr_print_ptr(ndr, "info", r->out.info);
23020 ndr_print_ptr(ndr, "info", *r->out.info);
23022 if (*r->out.info) {
23023 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23025 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23027 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23028 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23029 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23037 ndr_print_ptr(ndr, "needed", r->out.needed);
23039 ndr_print_uint32(ndr, "needed", *r->out.needed);
23041 ndr_print_WERROR(ndr, "result", r->out.result);
23047 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
23049 if (flags & NDR_IN) {
23050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23051 if (r->in.servername) {
23052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23055 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23058 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23059 if (r->in.buffer) {
23060 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23064 if (flags & NDR_OUT) {
23065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23067 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23069 if (r->out.needed == NULL) {
23070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23073 if (r->out.count == NULL) {
23074 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23077 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23079 return NDR_ERR_SUCCESS;
23082 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
23084 uint32_t _ptr_servername;
23085 uint32_t _ptr_buffer;
23086 uint32_t _ptr_info;
23087 TALLOC_CTX *_mem_save_servername_0;
23088 TALLOC_CTX *_mem_save_buffer_0;
23089 TALLOC_CTX *_mem_save_info_0;
23090 TALLOC_CTX *_mem_save_needed_0;
23091 TALLOC_CTX *_mem_save_count_0;
23092 if (flags & NDR_IN) {
23093 ZERO_STRUCT(r->out);
23095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23096 if (_ptr_servername) {
23097 NDR_PULL_ALLOC(ndr, r->in.servername);
23099 r->in.servername = NULL;
23101 if (r->in.servername) {
23102 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23103 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23104 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23105 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23106 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23107 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));
23109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23113 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23116 NDR_PULL_ALLOC(ndr, r->in.buffer);
23118 r->in.buffer = NULL;
23120 if (r->in.buffer) {
23121 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23122 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23123 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23127 NDR_PULL_ALLOC(ndr, r->out.needed);
23128 ZERO_STRUCTP(r->out.needed);
23129 NDR_PULL_ALLOC(ndr, r->out.count);
23130 ZERO_STRUCTP(r->out.count);
23132 if (flags & NDR_OUT) {
23133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23135 NDR_PULL_ALLOC(ndr, r->out.info);
23137 r->out.info = NULL;
23140 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23141 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23142 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23145 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23146 NDR_PULL_ALLOC(ndr, r->out.needed);
23148 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23149 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23152 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23153 NDR_PULL_ALLOC(ndr, r->out.count);
23155 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23156 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23159 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23161 return NDR_ERR_SUCCESS;
23164 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
23166 uint32_t cntr_info_0;
23167 if (flags & NDR_IN) {
23168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23171 if (flags & NDR_OUT) {
23172 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23173 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23174 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23176 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23177 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23180 return NDR_ERR_SUCCESS;
23183 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
23185 uint32_t cntr_info_0;
23186 TALLOC_CTX *_mem_save_info_0;
23187 if (flags & NDR_IN) {
23188 ZERO_STRUCT(r->out);
23190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23193 if (flags & NDR_OUT) {
23194 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23195 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23196 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23197 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23198 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23199 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23201 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23202 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23206 return NDR_ERR_SUCCESS;
23209 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
23211 uint32_t cntr_info_2;
23212 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
23214 if (flags & NDR_SET_VALUES) {
23215 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23217 if (flags & NDR_IN) {
23218 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
23220 ndr_print_ptr(ndr, "servername", r->in.servername);
23222 if (r->in.servername) {
23223 ndr_print_string(ndr, "servername", r->in.servername);
23226 ndr_print_uint32(ndr, "level", r->in.level);
23227 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23229 if (r->in.buffer) {
23230 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23233 ndr_print_uint32(ndr, "offered", r->in.offered);
23236 if (flags & NDR_OUT) {
23237 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
23239 ndr_print_ptr(ndr, "count", r->out.count);
23241 ndr_print_uint32(ndr, "count", *r->out.count);
23243 ndr_print_ptr(ndr, "info", r->out.info);
23245 ndr_print_ptr(ndr, "info", *r->out.info);
23247 if (*r->out.info) {
23248 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23250 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23252 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23253 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23254 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23262 ndr_print_ptr(ndr, "needed", r->out.needed);
23264 ndr_print_uint32(ndr, "needed", *r->out.needed);
23266 ndr_print_WERROR(ndr, "result", r->out.result);
23272 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
23274 if (flags & NDR_IN) {
23275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
23276 if (r->in.server_name) {
23277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23280 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));
23282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
23283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23286 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));
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_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23296 uint32_t _ptr_server_name;
23297 TALLOC_CTX *_mem_save_server_name_0;
23298 if (flags & NDR_IN) {
23299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23300 if (_ptr_server_name) {
23301 NDR_PULL_ALLOC(ndr, r->in.server_name);
23303 r->in.server_name = NULL;
23305 if (r->in.server_name) {
23306 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23307 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23308 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23309 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23310 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23311 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));
23313 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23314 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));
23315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23318 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23319 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23320 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23321 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));
23323 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23324 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));
23326 if (flags & NDR_OUT) {
23327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23329 return NDR_ERR_SUCCESS;
23332 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
23334 ndr_print_struct(ndr, name, "spoolss_AddPort");
23336 if (flags & NDR_SET_VALUES) {
23337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23339 if (flags & NDR_IN) {
23340 ndr_print_struct(ndr, "in", "spoolss_AddPort");
23342 ndr_print_ptr(ndr, "server_name", r->in.server_name);
23344 if (r->in.server_name) {
23345 ndr_print_string(ndr, "server_name", r->in.server_name);
23348 ndr_print_uint32(ndr, "unknown", r->in.unknown);
23349 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
23352 if (flags & NDR_OUT) {
23353 ndr_print_struct(ndr, "out", "spoolss_AddPort");
23355 ndr_print_WERROR(ndr, "result", r->out.result);
23361 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
23363 if (flags & NDR_IN) {
23365 if (flags & NDR_OUT) {
23366 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23368 return NDR_ERR_SUCCESS;
23371 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23373 if (flags & NDR_IN) {
23375 if (flags & NDR_OUT) {
23376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23378 return NDR_ERR_SUCCESS;
23381 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23383 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23385 if (flags & NDR_SET_VALUES) {
23386 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23388 if (flags & NDR_IN) {
23389 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23393 if (flags & NDR_OUT) {
23394 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23396 ndr_print_WERROR(ndr, "result", r->out.result);
23402 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23404 if (flags & NDR_IN) {
23406 if (flags & NDR_OUT) {
23407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23409 return NDR_ERR_SUCCESS;
23412 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23414 if (flags & NDR_IN) {
23416 if (flags & NDR_OUT) {
23417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23419 return NDR_ERR_SUCCESS;
23422 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23424 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23426 if (flags & NDR_SET_VALUES) {
23427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23429 if (flags & NDR_IN) {
23430 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23434 if (flags & NDR_OUT) {
23435 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23437 ndr_print_WERROR(ndr, "result", r->out.result);
23443 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23445 if (flags & NDR_IN) {
23447 if (flags & NDR_OUT) {
23448 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23450 return NDR_ERR_SUCCESS;
23453 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23455 if (flags & NDR_IN) {
23457 if (flags & NDR_OUT) {
23458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23460 return NDR_ERR_SUCCESS;
23463 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23465 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23467 if (flags & NDR_SET_VALUES) {
23468 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23470 if (flags & NDR_IN) {
23471 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23475 if (flags & NDR_OUT) {
23476 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23478 ndr_print_WERROR(ndr, "result", r->out.result);
23484 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23486 if (flags & NDR_IN) {
23488 if (flags & NDR_OUT) {
23489 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23491 return NDR_ERR_SUCCESS;
23494 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23496 if (flags & NDR_IN) {
23498 if (flags & NDR_OUT) {
23499 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23501 return NDR_ERR_SUCCESS;
23504 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23506 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23508 if (flags & NDR_SET_VALUES) {
23509 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23511 if (flags & NDR_IN) {
23512 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23516 if (flags & NDR_OUT) {
23517 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23519 ndr_print_WERROR(ndr, "result", r->out.result);
23525 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23527 if (flags & NDR_IN) {
23529 if (flags & NDR_OUT) {
23530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23532 return NDR_ERR_SUCCESS;
23535 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23537 if (flags & NDR_IN) {
23539 if (flags & NDR_OUT) {
23540 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23542 return NDR_ERR_SUCCESS;
23545 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23547 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23549 if (flags & NDR_SET_VALUES) {
23550 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23552 if (flags & NDR_IN) {
23553 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23557 if (flags & NDR_OUT) {
23558 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23560 ndr_print_WERROR(ndr, "result", r->out.result);
23566 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23568 if (flags & NDR_IN) {
23570 if (flags & NDR_OUT) {
23571 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23573 return NDR_ERR_SUCCESS;
23576 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23578 if (flags & NDR_IN) {
23580 if (flags & NDR_OUT) {
23581 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23583 return NDR_ERR_SUCCESS;
23586 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23588 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23590 if (flags & NDR_SET_VALUES) {
23591 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23593 if (flags & NDR_IN) {
23594 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23598 if (flags & NDR_OUT) {
23599 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23601 ndr_print_WERROR(ndr, "result", r->out.result);
23607 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23609 if (flags & NDR_IN) {
23611 if (flags & NDR_OUT) {
23612 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23614 return NDR_ERR_SUCCESS;
23617 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23619 if (flags & NDR_IN) {
23621 if (flags & NDR_OUT) {
23622 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23624 return NDR_ERR_SUCCESS;
23627 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23629 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23631 if (flags & NDR_SET_VALUES) {
23632 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23634 if (flags & NDR_IN) {
23635 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23639 if (flags & NDR_OUT) {
23640 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23642 ndr_print_WERROR(ndr, "result", r->out.result);
23648 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23650 if (flags & NDR_IN) {
23652 if (flags & NDR_OUT) {
23653 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23655 return NDR_ERR_SUCCESS;
23658 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23660 if (flags & NDR_IN) {
23662 if (flags & NDR_OUT) {
23663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23665 return NDR_ERR_SUCCESS;
23668 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23670 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23672 if (flags & NDR_SET_VALUES) {
23673 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23675 if (flags & NDR_IN) {
23676 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23680 if (flags & NDR_OUT) {
23681 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23683 ndr_print_WERROR(ndr, "result", r->out.result);
23689 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23691 if (flags & NDR_IN) {
23693 if (flags & NDR_OUT) {
23694 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23696 return NDR_ERR_SUCCESS;
23699 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23701 if (flags & NDR_IN) {
23703 if (flags & NDR_OUT) {
23704 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23706 return NDR_ERR_SUCCESS;
23709 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23711 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23713 if (flags & NDR_SET_VALUES) {
23714 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23716 if (flags & NDR_IN) {
23717 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23721 if (flags & NDR_OUT) {
23722 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23724 ndr_print_WERROR(ndr, "result", r->out.result);
23730 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23732 if (flags & NDR_IN) {
23734 if (flags & NDR_OUT) {
23735 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23737 return NDR_ERR_SUCCESS;
23740 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23742 if (flags & NDR_IN) {
23744 if (flags & NDR_OUT) {
23745 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23747 return NDR_ERR_SUCCESS;
23750 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23752 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23754 if (flags & NDR_SET_VALUES) {
23755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23757 if (flags & NDR_IN) {
23758 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23762 if (flags & NDR_OUT) {
23763 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23765 ndr_print_WERROR(ndr, "result", r->out.result);
23771 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23773 if (flags & NDR_IN) {
23775 if (flags & NDR_OUT) {
23776 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23778 return NDR_ERR_SUCCESS;
23781 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23783 if (flags & NDR_IN) {
23785 if (flags & NDR_OUT) {
23786 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23788 return NDR_ERR_SUCCESS;
23791 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23793 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23795 if (flags & NDR_SET_VALUES) {
23796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23798 if (flags & NDR_IN) {
23799 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23803 if (flags & NDR_OUT) {
23804 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23806 ndr_print_WERROR(ndr, "result", r->out.result);
23812 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23814 if (flags & NDR_IN) {
23816 if (flags & NDR_OUT) {
23817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23819 return NDR_ERR_SUCCESS;
23822 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23824 if (flags & NDR_IN) {
23826 if (flags & NDR_OUT) {
23827 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23829 return NDR_ERR_SUCCESS;
23832 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23834 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23836 if (flags & NDR_SET_VALUES) {
23837 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23839 if (flags & NDR_IN) {
23840 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23844 if (flags & NDR_OUT) {
23845 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23847 ndr_print_WERROR(ndr, "result", r->out.result);
23853 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23855 if (flags & NDR_IN) {
23857 if (flags & NDR_OUT) {
23858 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23860 return NDR_ERR_SUCCESS;
23863 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23865 if (flags & NDR_IN) {
23867 if (flags & NDR_OUT) {
23868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23870 return NDR_ERR_SUCCESS;
23873 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23875 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23877 if (flags & NDR_SET_VALUES) {
23878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23880 if (flags & NDR_IN) {
23881 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23885 if (flags & NDR_OUT) {
23886 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23888 ndr_print_WERROR(ndr, "result", r->out.result);
23894 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
23896 if (flags & NDR_IN) {
23897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23898 if (r->in.servername) {
23899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
23905 if (r->in.print_processor_name) {
23906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23909 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));
23911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23913 if (r->in.buffer) {
23914 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23918 if (flags & NDR_OUT) {
23919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23921 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23923 if (r->out.needed == NULL) {
23924 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23927 if (r->out.count == NULL) {
23928 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23931 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23933 return NDR_ERR_SUCCESS;
23936 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
23938 uint32_t _ptr_servername;
23939 uint32_t _ptr_print_processor_name;
23940 uint32_t _ptr_buffer;
23941 uint32_t _ptr_info;
23942 TALLOC_CTX *_mem_save_servername_0;
23943 TALLOC_CTX *_mem_save_print_processor_name_0;
23944 TALLOC_CTX *_mem_save_buffer_0;
23945 TALLOC_CTX *_mem_save_info_0;
23946 TALLOC_CTX *_mem_save_needed_0;
23947 TALLOC_CTX *_mem_save_count_0;
23948 if (flags & NDR_IN) {
23949 ZERO_STRUCT(r->out);
23951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23952 if (_ptr_servername) {
23953 NDR_PULL_ALLOC(ndr, r->in.servername);
23955 r->in.servername = NULL;
23957 if (r->in.servername) {
23958 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23959 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23960 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23961 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23962 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23963 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));
23965 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23966 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
23970 if (_ptr_print_processor_name) {
23971 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
23973 r->in.print_processor_name = NULL;
23975 if (r->in.print_processor_name) {
23976 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23977 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
23978 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
23979 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
23980 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
23981 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));
23983 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
23984 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));
23985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
23987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23990 NDR_PULL_ALLOC(ndr, r->in.buffer);
23992 r->in.buffer = NULL;
23994 if (r->in.buffer) {
23995 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23996 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23997 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24001 NDR_PULL_ALLOC(ndr, r->out.needed);
24002 ZERO_STRUCTP(r->out.needed);
24003 NDR_PULL_ALLOC(ndr, r->out.count);
24004 ZERO_STRUCTP(r->out.count);
24006 if (flags & NDR_OUT) {
24007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24009 NDR_PULL_ALLOC(ndr, r->out.info);
24011 r->out.info = NULL;
24014 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24015 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24016 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24019 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24020 NDR_PULL_ALLOC(ndr, r->out.needed);
24022 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24023 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24026 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24027 NDR_PULL_ALLOC(ndr, r->out.count);
24029 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24030 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24033 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24035 return NDR_ERR_SUCCESS;
24038 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
24040 uint32_t cntr_info_0;
24041 if (flags & NDR_IN) {
24042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24045 if (flags & NDR_OUT) {
24046 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24047 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24048 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24050 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24051 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24054 return NDR_ERR_SUCCESS;
24057 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
24059 uint32_t cntr_info_0;
24060 TALLOC_CTX *_mem_save_info_0;
24061 if (flags & NDR_IN) {
24062 ZERO_STRUCT(r->out);
24064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24067 if (flags & NDR_OUT) {
24068 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24069 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24070 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24071 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24072 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24073 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24075 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24076 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24080 return NDR_ERR_SUCCESS;
24083 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
24085 uint32_t cntr_info_2;
24086 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
24088 if (flags & NDR_SET_VALUES) {
24089 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24091 if (flags & NDR_IN) {
24092 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
24094 ndr_print_ptr(ndr, "servername", r->in.servername);
24096 if (r->in.servername) {
24097 ndr_print_string(ndr, "servername", r->in.servername);
24100 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
24102 if (r->in.print_processor_name) {
24103 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
24106 ndr_print_uint32(ndr, "level", r->in.level);
24107 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24109 if (r->in.buffer) {
24110 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24113 ndr_print_uint32(ndr, "offered", r->in.offered);
24116 if (flags & NDR_OUT) {
24117 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
24119 ndr_print_ptr(ndr, "count", r->out.count);
24121 ndr_print_uint32(ndr, "count", *r->out.count);
24123 ndr_print_ptr(ndr, "info", r->out.info);
24125 ndr_print_ptr(ndr, "info", *r->out.info);
24127 if (*r->out.info) {
24128 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24130 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24132 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24133 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24134 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24142 ndr_print_ptr(ndr, "needed", r->out.needed);
24144 ndr_print_uint32(ndr, "needed", *r->out.needed);
24146 ndr_print_WERROR(ndr, "result", r->out.result);
24152 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
24154 if (flags & NDR_IN) {
24155 if (r->in.handle == NULL) {
24156 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24158 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24159 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
24160 if (r->in.data_type) {
24161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24164 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));
24166 if (r->in.devmode_ctr == NULL) {
24167 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24169 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24171 if (flags & NDR_OUT) {
24172 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24174 return NDR_ERR_SUCCESS;
24177 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
24179 uint32_t _ptr_data_type;
24180 TALLOC_CTX *_mem_save_handle_0;
24181 TALLOC_CTX *_mem_save_data_type_0;
24182 TALLOC_CTX *_mem_save_devmode_ctr_0;
24183 if (flags & NDR_IN) {
24184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24185 NDR_PULL_ALLOC(ndr, r->in.handle);
24187 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24188 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24189 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24191 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
24192 if (_ptr_data_type) {
24193 NDR_PULL_ALLOC(ndr, r->in.data_type);
24195 r->in.data_type = NULL;
24197 if (r->in.data_type) {
24198 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24199 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
24200 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
24201 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
24202 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
24203 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));
24205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
24206 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));
24207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
24209 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24210 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24212 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24213 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24214 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24217 if (flags & NDR_OUT) {
24218 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24220 return NDR_ERR_SUCCESS;
24223 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
24225 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
24227 if (flags & NDR_SET_VALUES) {
24228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24230 if (flags & NDR_IN) {
24231 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
24233 ndr_print_ptr(ndr, "handle", r->in.handle);
24235 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24237 ndr_print_ptr(ndr, "data_type", r->in.data_type);
24239 if (r->in.data_type) {
24240 ndr_print_string(ndr, "data_type", r->in.data_type);
24243 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24245 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24249 if (flags & NDR_OUT) {
24250 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
24252 ndr_print_WERROR(ndr, "result", r->out.result);
24258 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
24260 if (flags & NDR_IN) {
24261 if (r->in.handle == NULL) {
24262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24264 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
24266 if (r->in.architecture) {
24267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24270 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24274 if (r->in.buffer) {
24275 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
24279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
24281 if (flags & NDR_OUT) {
24282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24285 struct ndr_push *_ndr_info;
24286 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24287 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24288 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24289 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24292 if (r->out.needed == NULL) {
24293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24296 if (r->out.server_major_version == NULL) {
24297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
24300 if (r->out.server_minor_version == NULL) {
24301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
24304 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24306 return NDR_ERR_SUCCESS;
24309 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24311 uint32_t _ptr_architecture;
24312 uint32_t _ptr_buffer;
24313 uint32_t _ptr_info;
24314 TALLOC_CTX *_mem_save_handle_0;
24315 TALLOC_CTX *_mem_save_architecture_0;
24316 TALLOC_CTX *_mem_save_buffer_0;
24317 TALLOC_CTX *_mem_save_info_0;
24318 TALLOC_CTX *_mem_save_needed_0;
24319 TALLOC_CTX *_mem_save_server_major_version_0;
24320 TALLOC_CTX *_mem_save_server_minor_version_0;
24321 if (flags & NDR_IN) {
24322 ZERO_STRUCT(r->out);
24324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24325 NDR_PULL_ALLOC(ndr, r->in.handle);
24327 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24328 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24329 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
24332 if (_ptr_architecture) {
24333 NDR_PULL_ALLOC(ndr, r->in.architecture);
24335 r->in.architecture = NULL;
24337 if (r->in.architecture) {
24338 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
24339 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24340 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24341 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24342 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24343 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));
24345 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24346 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
24347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24352 NDR_PULL_ALLOC(ndr, r->in.buffer);
24354 r->in.buffer = NULL;
24356 if (r->in.buffer) {
24357 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24358 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24359 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
24364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
24365 NDR_PULL_ALLOC(ndr, r->out.needed);
24366 ZERO_STRUCTP(r->out.needed);
24367 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24368 ZERO_STRUCTP(r->out.server_major_version);
24369 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24370 ZERO_STRUCTP(r->out.server_minor_version);
24372 if (flags & NDR_OUT) {
24373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24375 NDR_PULL_ALLOC(ndr, r->out.info);
24377 r->out.info = NULL;
24380 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24381 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24383 struct ndr_pull *_ndr_info;
24384 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24385 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24386 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24387 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24391 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24392 NDR_PULL_ALLOC(ndr, r->out.needed);
24394 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24395 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24396 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24398 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24399 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24401 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24402 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24406 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24408 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24409 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24412 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24414 return NDR_ERR_SUCCESS;
24417 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24419 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24421 if (flags & NDR_SET_VALUES) {
24422 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24424 if (flags & NDR_IN) {
24425 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24427 ndr_print_ptr(ndr, "handle", r->in.handle);
24429 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24431 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24433 if (r->in.architecture) {
24434 ndr_print_string(ndr, "architecture", r->in.architecture);
24437 ndr_print_uint32(ndr, "level", r->in.level);
24438 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24440 if (r->in.buffer) {
24441 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24444 ndr_print_uint32(ndr, "offered", r->in.offered);
24445 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24446 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24449 if (flags & NDR_OUT) {
24450 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24452 ndr_print_ptr(ndr, "info", r->out.info);
24455 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24456 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24459 ndr_print_ptr(ndr, "needed", r->out.needed);
24461 ndr_print_uint32(ndr, "needed", *r->out.needed);
24463 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24465 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24467 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24469 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24471 ndr_print_WERROR(ndr, "result", r->out.result);
24477 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24479 if (flags & NDR_IN) {
24481 if (flags & NDR_OUT) {
24482 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24484 return NDR_ERR_SUCCESS;
24487 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24489 if (flags & NDR_IN) {
24491 if (flags & NDR_OUT) {
24492 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24494 return NDR_ERR_SUCCESS;
24497 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24499 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24501 if (flags & NDR_SET_VALUES) {
24502 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24504 if (flags & NDR_IN) {
24505 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24509 if (flags & NDR_OUT) {
24510 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24512 ndr_print_WERROR(ndr, "result", r->out.result);
24518 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24520 if (flags & NDR_IN) {
24522 if (flags & NDR_OUT) {
24523 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24525 return NDR_ERR_SUCCESS;
24528 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24530 if (flags & NDR_IN) {
24532 if (flags & NDR_OUT) {
24533 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24535 return NDR_ERR_SUCCESS;
24538 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24540 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24542 if (flags & NDR_SET_VALUES) {
24543 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24545 if (flags & NDR_IN) {
24546 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24550 if (flags & NDR_OUT) {
24551 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24553 ndr_print_WERROR(ndr, "result", r->out.result);
24559 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24561 if (flags & NDR_IN) {
24562 if (r->in.handle == NULL) {
24563 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24565 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24567 if (flags & NDR_OUT) {
24568 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24570 return NDR_ERR_SUCCESS;
24573 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24575 TALLOC_CTX *_mem_save_handle_0;
24576 if (flags & NDR_IN) {
24577 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24578 NDR_PULL_ALLOC(ndr, r->in.handle);
24580 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24581 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24582 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24585 if (flags & NDR_OUT) {
24586 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24588 return NDR_ERR_SUCCESS;
24591 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24593 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24595 if (flags & NDR_SET_VALUES) {
24596 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24598 if (flags & NDR_IN) {
24599 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24601 ndr_print_ptr(ndr, "handle", r->in.handle);
24603 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24607 if (flags & NDR_OUT) {
24608 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24610 ndr_print_WERROR(ndr, "result", r->out.result);
24616 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24618 if (flags & NDR_IN) {
24620 if (flags & NDR_OUT) {
24621 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24623 return NDR_ERR_SUCCESS;
24626 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24628 if (flags & NDR_IN) {
24630 if (flags & NDR_OUT) {
24631 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24633 return NDR_ERR_SUCCESS;
24636 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24638 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24640 if (flags & NDR_SET_VALUES) {
24641 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24643 if (flags & NDR_IN) {
24644 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24648 if (flags & NDR_OUT) {
24649 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24651 ndr_print_WERROR(ndr, "result", r->out.result);
24657 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
24659 if (flags & NDR_IN) {
24660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24663 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));
24664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24665 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24668 if (r->in.buffer) {
24669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24670 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24673 if (flags & NDR_OUT) {
24674 if (r->out.handle == NULL) {
24675 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24677 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24680 return NDR_ERR_SUCCESS;
24683 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
24685 uint32_t _ptr_buffer;
24686 TALLOC_CTX *_mem_save_buffer_0;
24687 TALLOC_CTX *_mem_save_handle_0;
24688 if (flags & NDR_IN) {
24689 ZERO_STRUCT(r->out);
24691 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24692 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24693 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24694 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));
24696 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24697 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));
24698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24699 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24701 if (r->in.bufsize > 512) {
24702 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24706 NDR_PULL_ALLOC(ndr, r->in.buffer);
24708 r->in.buffer = NULL;
24710 if (r->in.buffer) {
24711 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24712 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24713 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24714 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24715 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24718 NDR_PULL_ALLOC(ndr, r->out.handle);
24719 ZERO_STRUCTP(r->out.handle);
24720 if (r->in.buffer) {
24721 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24724 if (flags & NDR_OUT) {
24725 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24726 NDR_PULL_ALLOC(ndr, r->out.handle);
24728 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24729 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24730 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24732 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24734 return NDR_ERR_SUCCESS;
24737 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24739 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24741 if (flags & NDR_SET_VALUES) {
24742 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24744 if (flags & NDR_IN) {
24745 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24747 ndr_print_string(ndr, "server_name", r->in.server_name);
24748 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24749 ndr_print_winreg_Type(ndr, "type", r->in.type);
24750 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24751 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24753 if (r->in.buffer) {
24754 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24759 if (flags & NDR_OUT) {
24760 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24762 ndr_print_ptr(ndr, "handle", r->out.handle);
24764 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24766 ndr_print_WERROR(ndr, "result", r->out.result);
24772 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24774 if (flags & NDR_IN) {
24775 if (r->in.handle == NULL) {
24776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24778 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24779 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24782 if (r->in.buffer) {
24783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24784 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24787 if (flags & NDR_OUT) {
24788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24790 return NDR_ERR_SUCCESS;
24793 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24795 uint32_t _ptr_buffer;
24796 TALLOC_CTX *_mem_save_handle_0;
24797 TALLOC_CTX *_mem_save_buffer_0;
24798 if (flags & NDR_IN) {
24799 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24800 NDR_PULL_ALLOC(ndr, r->in.handle);
24802 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24803 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24804 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24806 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24808 if (r->in.bufsize > 512) {
24809 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24813 NDR_PULL_ALLOC(ndr, r->in.buffer);
24815 r->in.buffer = NULL;
24817 if (r->in.buffer) {
24818 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24819 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24820 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24821 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24822 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24825 if (r->in.buffer) {
24826 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24829 if (flags & NDR_OUT) {
24830 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24832 return NDR_ERR_SUCCESS;
24835 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24837 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24839 if (flags & NDR_SET_VALUES) {
24840 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24842 if (flags & NDR_IN) {
24843 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24845 ndr_print_ptr(ndr, "handle", r->in.handle);
24847 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24849 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24850 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24851 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24853 if (r->in.buffer) {
24854 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24859 if (flags & NDR_OUT) {
24860 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24862 ndr_print_WERROR(ndr, "result", r->out.result);
24868 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24870 if (flags & NDR_IN) {
24871 if (r->in.handle == NULL) {
24872 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24874 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24876 if (flags & NDR_OUT) {
24877 if (r->out.handle == NULL) {
24878 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24880 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24881 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24883 return NDR_ERR_SUCCESS;
24886 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24888 TALLOC_CTX *_mem_save_handle_0;
24889 if (flags & NDR_IN) {
24890 ZERO_STRUCT(r->out);
24892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24893 NDR_PULL_ALLOC(ndr, r->in.handle);
24895 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24896 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24897 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24899 NDR_PULL_ALLOC(ndr, r->out.handle);
24900 *r->out.handle = *r->in.handle;
24902 if (flags & NDR_OUT) {
24903 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24904 NDR_PULL_ALLOC(ndr, r->out.handle);
24906 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24907 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24908 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24910 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24912 return NDR_ERR_SUCCESS;
24915 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24917 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24919 if (flags & NDR_SET_VALUES) {
24920 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24922 if (flags & NDR_IN) {
24923 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24925 ndr_print_ptr(ndr, "handle", r->in.handle);
24927 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24931 if (flags & NDR_OUT) {
24932 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24934 ndr_print_ptr(ndr, "handle", r->out.handle);
24936 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24938 ndr_print_WERROR(ndr, "result", r->out.result);
24944 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24946 if (flags & NDR_IN) {
24948 if (flags & NDR_OUT) {
24949 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24951 return NDR_ERR_SUCCESS;
24954 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24956 if (flags & NDR_IN) {
24958 if (flags & NDR_OUT) {
24959 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24961 return NDR_ERR_SUCCESS;
24964 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24966 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24968 if (flags & NDR_SET_VALUES) {
24969 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24971 if (flags & NDR_IN) {
24972 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24976 if (flags & NDR_OUT) {
24977 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24979 ndr_print_WERROR(ndr, "result", r->out.result);
24985 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24987 if (flags & NDR_IN) {
24989 if (flags & NDR_OUT) {
24990 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24992 return NDR_ERR_SUCCESS;
24995 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24997 if (flags & NDR_IN) {
24999 if (flags & NDR_OUT) {
25000 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25002 return NDR_ERR_SUCCESS;
25005 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25007 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
25009 if (flags & NDR_SET_VALUES) {
25010 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25012 if (flags & NDR_IN) {
25013 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
25017 if (flags & NDR_OUT) {
25018 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25020 ndr_print_WERROR(ndr, "result", r->out.result);
25026 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
25028 if (flags & NDR_IN) {
25030 if (flags & NDR_OUT) {
25031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25033 return NDR_ERR_SUCCESS;
25036 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
25038 if (flags & NDR_IN) {
25040 if (flags & NDR_OUT) {
25041 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25043 return NDR_ERR_SUCCESS;
25046 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
25048 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
25050 if (flags & NDR_SET_VALUES) {
25051 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25053 if (flags & NDR_IN) {
25054 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
25058 if (flags & NDR_OUT) {
25059 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
25061 ndr_print_WERROR(ndr, "result", r->out.result);
25067 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
25069 if (flags & NDR_IN) {
25071 if (flags & NDR_OUT) {
25072 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25074 return NDR_ERR_SUCCESS;
25077 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
25079 if (flags & NDR_IN) {
25081 if (flags & NDR_OUT) {
25082 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25084 return NDR_ERR_SUCCESS;
25087 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
25089 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
25091 if (flags & NDR_SET_VALUES) {
25092 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25094 if (flags & NDR_IN) {
25095 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
25099 if (flags & NDR_OUT) {
25100 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
25102 ndr_print_WERROR(ndr, "result", r->out.result);
25108 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25110 if (flags & NDR_IN) {
25111 if (r->in.handle == NULL) {
25112 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25114 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25115 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
25117 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
25118 if (r->in.local_machine) {
25119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25122 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));
25124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
25126 if (r->in.notify_options) {
25127 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25130 if (flags & NDR_OUT) {
25131 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25133 return NDR_ERR_SUCCESS;
25136 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25138 uint32_t _ptr_local_machine;
25139 uint32_t _ptr_notify_options;
25140 TALLOC_CTX *_mem_save_handle_0;
25141 TALLOC_CTX *_mem_save_local_machine_0;
25142 TALLOC_CTX *_mem_save_notify_options_0;
25143 if (flags & NDR_IN) {
25144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25145 NDR_PULL_ALLOC(ndr, r->in.handle);
25147 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25148 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25149 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25151 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
25153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
25154 if (_ptr_local_machine) {
25155 NDR_PULL_ALLOC(ndr, r->in.local_machine);
25157 r->in.local_machine = NULL;
25159 if (r->in.local_machine) {
25160 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
25161 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
25162 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
25163 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
25164 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
25165 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));
25167 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
25168 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));
25169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
25171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25172 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
25173 if (_ptr_notify_options) {
25174 NDR_PULL_ALLOC(ndr, r->in.notify_options);
25176 r->in.notify_options = NULL;
25178 if (r->in.notify_options) {
25179 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25180 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
25181 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
25185 if (flags & NDR_OUT) {
25186 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25188 return NDR_ERR_SUCCESS;
25191 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25193 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25195 if (flags & NDR_SET_VALUES) {
25196 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25198 if (flags & NDR_IN) {
25199 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25201 ndr_print_ptr(ndr, "handle", r->in.handle);
25203 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25205 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25206 ndr_print_uint32(ndr, "options", r->in.options);
25207 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
25209 if (r->in.local_machine) {
25210 ndr_print_string(ndr, "local_machine", r->in.local_machine);
25213 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25214 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
25216 if (r->in.notify_options) {
25217 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
25222 if (flags & NDR_OUT) {
25223 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25225 ndr_print_WERROR(ndr, "result", r->out.result);
25231 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25233 if (flags & NDR_IN) {
25234 if (r->in.handle == NULL) {
25235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25237 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
25239 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
25241 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25242 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25244 if (flags & NDR_OUT) {
25245 if (r->out.reply_result == NULL) {
25246 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25248 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
25249 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25251 return NDR_ERR_SUCCESS;
25254 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
25256 TALLOC_CTX *_mem_save_handle_0;
25257 TALLOC_CTX *_mem_save_reply_result_0;
25258 if (flags & NDR_IN) {
25259 ZERO_STRUCT(r->out);
25261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25262 NDR_PULL_ALLOC(ndr, r->in.handle);
25264 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25265 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25266 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25268 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
25269 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
25271 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25272 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25273 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25274 ZERO_STRUCTP(r->out.reply_result);
25276 if (flags & NDR_OUT) {
25277 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25278 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25280 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
25281 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
25282 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
25283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
25284 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25286 return NDR_ERR_SUCCESS;
25289 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25291 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
25293 if (flags & NDR_SET_VALUES) {
25294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25296 if (flags & NDR_IN) {
25297 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
25299 ndr_print_ptr(ndr, "handle", r->in.handle);
25301 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25303 ndr_print_uint32(ndr, "color", r->in.color);
25304 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25305 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
25306 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
25307 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
25310 if (flags & NDR_OUT) {
25311 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
25313 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
25315 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
25317 ndr_print_WERROR(ndr, "result", r->out.result);
25323 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25325 if (flags & NDR_IN) {
25326 if (r->in.handle == NULL) {
25327 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25329 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
25331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
25332 if (r->in.options) {
25333 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25336 if (flags & NDR_OUT) {
25337 if (r->out.info == NULL) {
25338 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25340 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
25341 if (*r->out.info) {
25342 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25344 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25346 return NDR_ERR_SUCCESS;
25349 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
25351 uint32_t _ptr_options;
25352 uint32_t _ptr_info;
25353 TALLOC_CTX *_mem_save_handle_0;
25354 TALLOC_CTX *_mem_save_options_0;
25355 TALLOC_CTX *_mem_save_info_0;
25356 TALLOC_CTX *_mem_save_info_1;
25357 if (flags & NDR_IN) {
25358 ZERO_STRUCT(r->out);
25360 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25361 NDR_PULL_ALLOC(ndr, r->in.handle);
25363 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25364 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25365 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25367 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
25368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
25369 if (_ptr_options) {
25370 NDR_PULL_ALLOC(ndr, r->in.options);
25372 r->in.options = NULL;
25374 if (r->in.options) {
25375 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25376 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25377 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25380 NDR_PULL_ALLOC(ndr, r->out.info);
25381 ZERO_STRUCTP(r->out.info);
25383 if (flags & NDR_OUT) {
25384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25385 NDR_PULL_ALLOC(ndr, r->out.info);
25387 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25388 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25391 NDR_PULL_ALLOC(ndr, *r->out.info);
25393 *r->out.info = NULL;
25395 if (*r->out.info) {
25396 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25397 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25398 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25402 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25404 return NDR_ERR_SUCCESS;
25407 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25409 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25411 if (flags & NDR_SET_VALUES) {
25412 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25414 if (flags & NDR_IN) {
25415 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25417 ndr_print_ptr(ndr, "handle", r->in.handle);
25419 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25421 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25422 ndr_print_ptr(ndr, "options", r->in.options);
25424 if (r->in.options) {
25425 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25430 if (flags & NDR_OUT) {
25431 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25433 ndr_print_ptr(ndr, "info", r->out.info);
25435 ndr_print_ptr(ndr, "info", *r->out.info);
25437 if (*r->out.info) {
25438 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25442 ndr_print_WERROR(ndr, "result", r->out.result);
25448 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25450 if (flags & NDR_IN) {
25452 if (flags & NDR_OUT) {
25453 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25455 return NDR_ERR_SUCCESS;
25458 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25460 if (flags & NDR_IN) {
25462 if (flags & NDR_OUT) {
25463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25465 return NDR_ERR_SUCCESS;
25468 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25470 ndr_print_struct(ndr, name, "spoolss_44");
25472 if (flags & NDR_SET_VALUES) {
25473 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25475 if (flags & NDR_IN) {
25476 ndr_print_struct(ndr, "in", "spoolss_44");
25480 if (flags & NDR_OUT) {
25481 ndr_print_struct(ndr, "out", "spoolss_44");
25483 ndr_print_WERROR(ndr, "result", r->out.result);
25489 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25491 if (flags & NDR_IN) {
25492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25493 if (r->in.printername) {
25494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25497 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25499 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25500 if (r->in.datatype) {
25501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25506 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25507 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25509 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25510 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25512 if (flags & NDR_OUT) {
25513 if (r->out.handle == NULL) {
25514 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25516 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25517 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25519 return NDR_ERR_SUCCESS;
25522 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25524 uint32_t _ptr_printername;
25525 uint32_t _ptr_datatype;
25526 TALLOC_CTX *_mem_save_printername_0;
25527 TALLOC_CTX *_mem_save_datatype_0;
25528 TALLOC_CTX *_mem_save_handle_0;
25529 if (flags & NDR_IN) {
25530 ZERO_STRUCT(r->out);
25532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25533 if (_ptr_printername) {
25534 NDR_PULL_ALLOC(ndr, r->in.printername);
25536 r->in.printername = NULL;
25538 if (r->in.printername) {
25539 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25540 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25541 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25542 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25543 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25544 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));
25546 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25547 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25551 if (_ptr_datatype) {
25552 NDR_PULL_ALLOC(ndr, r->in.datatype);
25554 r->in.datatype = NULL;
25556 if (r->in.datatype) {
25557 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25558 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25559 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25560 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25561 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25562 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));
25564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25568 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25569 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25571 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25572 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25573 NDR_PULL_ALLOC(ndr, r->out.handle);
25574 ZERO_STRUCTP(r->out.handle);
25576 if (flags & NDR_OUT) {
25577 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25578 NDR_PULL_ALLOC(ndr, r->out.handle);
25580 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25581 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25582 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25586 return NDR_ERR_SUCCESS;
25589 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25591 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25593 if (flags & NDR_SET_VALUES) {
25594 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25596 if (flags & NDR_IN) {
25597 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25599 ndr_print_ptr(ndr, "printername", r->in.printername);
25601 if (r->in.printername) {
25602 ndr_print_string(ndr, "printername", r->in.printername);
25605 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25607 if (r->in.datatype) {
25608 ndr_print_string(ndr, "datatype", r->in.datatype);
25611 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25612 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25613 ndr_print_uint32(ndr, "level", r->in.level);
25614 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25615 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25618 if (flags & NDR_OUT) {
25619 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25621 ndr_print_ptr(ndr, "handle", r->out.handle);
25623 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25625 ndr_print_WERROR(ndr, "result", r->out.result);
25631 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
25633 if (flags & NDR_IN) {
25634 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25635 if (r->in.server) {
25636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25641 if (r->in.info_ctr == NULL) {
25642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25644 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25645 if (r->in.devmode_ctr == NULL) {
25646 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25648 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25649 if (r->in.secdesc_ctr == NULL) {
25650 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25652 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25653 if (r->in.userlevel_ctr == NULL) {
25654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25656 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25658 if (flags & NDR_OUT) {
25659 if (r->out.handle == NULL) {
25660 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25662 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25663 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25665 return NDR_ERR_SUCCESS;
25668 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
25670 uint32_t _ptr_server;
25671 TALLOC_CTX *_mem_save_server_0;
25672 TALLOC_CTX *_mem_save_info_ctr_0;
25673 TALLOC_CTX *_mem_save_devmode_ctr_0;
25674 TALLOC_CTX *_mem_save_secdesc_ctr_0;
25675 TALLOC_CTX *_mem_save_userlevel_ctr_0;
25676 TALLOC_CTX *_mem_save_handle_0;
25677 if (flags & NDR_IN) {
25678 ZERO_STRUCT(r->out);
25680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25682 NDR_PULL_ALLOC(ndr, r->in.server);
25684 r->in.server = NULL;
25686 if (r->in.server) {
25687 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25688 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25689 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25690 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25691 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
25692 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));
25694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
25695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
25696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25699 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25701 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25702 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25703 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25706 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25708 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25709 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25710 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25713 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25715 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25716 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25717 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25719 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25720 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
25722 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25723 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
25724 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25726 NDR_PULL_ALLOC(ndr, r->out.handle);
25727 ZERO_STRUCTP(r->out.handle);
25729 if (flags & NDR_OUT) {
25730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25731 NDR_PULL_ALLOC(ndr, r->out.handle);
25733 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25734 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25735 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25737 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25739 return NDR_ERR_SUCCESS;
25742 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25744 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25746 if (flags & NDR_SET_VALUES) {
25747 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25749 if (flags & NDR_IN) {
25750 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25752 ndr_print_ptr(ndr, "server", r->in.server);
25754 if (r->in.server) {
25755 ndr_print_string(ndr, "server", r->in.server);
25758 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25760 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25762 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25764 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25766 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25768 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25770 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25772 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25776 if (flags & NDR_OUT) {
25777 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25779 ndr_print_ptr(ndr, "handle", r->out.handle);
25781 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25783 ndr_print_WERROR(ndr, "result", r->out.result);
25789 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25791 if (flags & NDR_IN) {
25793 if (flags & NDR_OUT) {
25794 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25796 return NDR_ERR_SUCCESS;
25799 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25801 if (flags & NDR_IN) {
25803 if (flags & NDR_OUT) {
25804 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25806 return NDR_ERR_SUCCESS;
25809 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25811 ndr_print_struct(ndr, name, "spoolss_47");
25813 if (flags & NDR_SET_VALUES) {
25814 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25816 if (flags & NDR_IN) {
25817 ndr_print_struct(ndr, "in", "spoolss_47");
25821 if (flags & NDR_OUT) {
25822 ndr_print_struct(ndr, "out", "spoolss_47");
25824 ndr_print_WERROR(ndr, "result", r->out.result);
25830 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25832 if (flags & NDR_IN) {
25833 if (r->in.handle == NULL) {
25834 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25836 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25841 if (flags & NDR_OUT) {
25842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25843 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25844 if (r->out.value_needed == NULL) {
25845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25848 if (r->out.type == NULL) {
25849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25851 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
25853 uint32_t _flags_save_uint8 = ndr->flags;
25854 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
25855 if (r->out.data == NULL) {
25856 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25859 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
25860 ndr->flags = _flags_save_uint8;
25862 if (r->out.data_needed == NULL) {
25863 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25866 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25868 return NDR_ERR_SUCCESS;
25871 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25873 TALLOC_CTX *_mem_save_handle_0;
25874 TALLOC_CTX *_mem_save_value_needed_0;
25875 TALLOC_CTX *_mem_save_type_0;
25876 TALLOC_CTX *_mem_save_data_needed_0;
25877 if (flags & NDR_IN) {
25878 ZERO_STRUCT(r->out);
25880 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25881 NDR_PULL_ALLOC(ndr, r->in.handle);
25883 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25884 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25885 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25890 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25891 ZERO_STRUCTP(r->out.value_needed);
25892 NDR_PULL_ALLOC(ndr, r->out.type);
25893 ZERO_STRUCTP(r->out.type);
25894 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
25895 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
25896 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25897 ZERO_STRUCTP(r->out.data_needed);
25899 if (flags & NDR_OUT) {
25900 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25901 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));
25902 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25903 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25905 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25906 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25909 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25910 NDR_PULL_ALLOC(ndr, r->out.type);
25912 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25913 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25914 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
25915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25917 uint32_t _flags_save_uint8 = ndr->flags;
25918 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
25919 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
25920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25921 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
25923 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
25924 ndr->flags = _flags_save_uint8;
25926 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25927 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25929 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25930 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25933 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25934 if (r->out.value_name) {
25935 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25938 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
25941 return NDR_ERR_SUCCESS;
25944 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25946 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25948 if (flags & NDR_SET_VALUES) {
25949 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25951 if (flags & NDR_IN) {
25952 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25954 ndr_print_ptr(ndr, "handle", r->in.handle);
25956 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25958 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25959 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25960 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25963 if (flags & NDR_OUT) {
25964 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25966 ndr_print_string(ndr, "value_name", r->out.value_name);
25967 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25969 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25971 ndr_print_ptr(ndr, "type", r->out.type);
25973 ndr_print_winreg_Type(ndr, "type", *r->out.type);
25975 ndr_print_ptr(ndr, "data", r->out.data);
25977 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
25979 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25981 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25983 ndr_print_WERROR(ndr, "result", r->out.result);
25989 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25991 if (flags & NDR_IN) {
25992 if (r->in.handle == NULL) {
25993 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25995 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25999 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));
26001 if (flags & NDR_OUT) {
26002 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26004 return NDR_ERR_SUCCESS;
26007 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
26009 TALLOC_CTX *_mem_save_handle_0;
26010 if (flags & NDR_IN) {
26011 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26012 NDR_PULL_ALLOC(ndr, r->in.handle);
26014 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26015 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26016 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26018 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26019 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26020 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26021 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));
26023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26024 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));
26026 if (flags & NDR_OUT) {
26027 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26029 return NDR_ERR_SUCCESS;
26032 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
26034 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
26036 if (flags & NDR_SET_VALUES) {
26037 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26039 if (flags & NDR_IN) {
26040 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
26042 ndr_print_ptr(ndr, "handle", r->in.handle);
26044 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26046 ndr_print_string(ndr, "value_name", r->in.value_name);
26049 if (flags & NDR_OUT) {
26050 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
26052 ndr_print_WERROR(ndr, "result", r->out.result);
26058 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
26060 if (flags & NDR_IN) {
26062 if (flags & NDR_OUT) {
26063 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26065 return NDR_ERR_SUCCESS;
26068 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
26070 if (flags & NDR_IN) {
26072 if (flags & NDR_OUT) {
26073 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26075 return NDR_ERR_SUCCESS;
26078 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
26080 ndr_print_struct(ndr, name, "spoolss_4a");
26082 if (flags & NDR_SET_VALUES) {
26083 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26085 if (flags & NDR_IN) {
26086 ndr_print_struct(ndr, "in", "spoolss_4a");
26090 if (flags & NDR_OUT) {
26091 ndr_print_struct(ndr, "out", "spoolss_4a");
26093 ndr_print_WERROR(ndr, "result", r->out.result);
26099 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
26101 if (flags & NDR_IN) {
26103 if (flags & NDR_OUT) {
26104 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26106 return NDR_ERR_SUCCESS;
26109 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
26111 if (flags & NDR_IN) {
26113 if (flags & NDR_OUT) {
26114 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26116 return NDR_ERR_SUCCESS;
26119 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
26121 ndr_print_struct(ndr, name, "spoolss_4b");
26123 if (flags & NDR_SET_VALUES) {
26124 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26126 if (flags & NDR_IN) {
26127 ndr_print_struct(ndr, "in", "spoolss_4b");
26131 if (flags & NDR_OUT) {
26132 ndr_print_struct(ndr, "out", "spoolss_4b");
26134 ndr_print_WERROR(ndr, "result", r->out.result);
26140 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
26142 if (flags & NDR_IN) {
26144 if (flags & NDR_OUT) {
26145 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26147 return NDR_ERR_SUCCESS;
26150 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
26152 if (flags & NDR_IN) {
26154 if (flags & NDR_OUT) {
26155 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26157 return NDR_ERR_SUCCESS;
26160 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
26162 ndr_print_struct(ndr, name, "spoolss_4c");
26164 if (flags & NDR_SET_VALUES) {
26165 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26167 if (flags & NDR_IN) {
26168 ndr_print_struct(ndr, "in", "spoolss_4c");
26172 if (flags & NDR_OUT) {
26173 ndr_print_struct(ndr, "out", "spoolss_4c");
26175 ndr_print_WERROR(ndr, "result", r->out.result);
26181 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
26183 if (flags & NDR_IN) {
26184 if (r->in.handle == NULL) {
26185 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26187 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26191 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));
26192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26195 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));
26196 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26197 if (r->in.buffer == NULL) {
26198 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26201 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
26202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26204 if (flags & NDR_OUT) {
26205 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26207 return NDR_ERR_SUCCESS;
26210 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
26212 TALLOC_CTX *_mem_save_handle_0;
26213 if (flags & NDR_IN) {
26214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26215 NDR_PULL_ALLOC(ndr, r->in.handle);
26217 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26218 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26219 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26221 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26222 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26223 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26224 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));
26226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26227 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));
26228 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26229 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26230 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26231 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));
26233 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26234 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));
26235 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26236 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26237 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26238 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26240 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26242 if (r->in.buffer) {
26243 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
26246 if (flags & NDR_OUT) {
26247 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26249 return NDR_ERR_SUCCESS;
26252 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
26254 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
26256 if (flags & NDR_SET_VALUES) {
26257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26259 if (flags & NDR_IN) {
26260 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
26262 ndr_print_ptr(ndr, "handle", r->in.handle);
26264 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26266 ndr_print_string(ndr, "key_name", r->in.key_name);
26267 ndr_print_string(ndr, "value_name", r->in.value_name);
26268 ndr_print_winreg_Type(ndr, "type", r->in.type);
26269 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26271 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
26273 ndr_print_uint32(ndr, "offered", r->in.offered);
26276 if (flags & NDR_OUT) {
26277 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
26279 ndr_print_WERROR(ndr, "result", r->out.result);
26285 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
26287 if (flags & NDR_IN) {
26288 if (r->in.handle == NULL) {
26289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26291 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26295 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));
26296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26299 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));
26300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26302 if (flags & NDR_OUT) {
26303 if (r->out.type == NULL) {
26304 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26306 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26307 if (r->out.buffer == NULL) {
26308 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26311 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26312 if (r->out.needed == NULL) {
26313 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26316 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26318 return NDR_ERR_SUCCESS;
26321 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26323 TALLOC_CTX *_mem_save_handle_0;
26324 TALLOC_CTX *_mem_save_type_0;
26325 TALLOC_CTX *_mem_save_needed_0;
26326 if (flags & NDR_IN) {
26327 ZERO_STRUCT(r->out);
26329 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26330 NDR_PULL_ALLOC(ndr, r->in.handle);
26332 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26333 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26334 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26336 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26337 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26338 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26339 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));
26341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26342 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));
26343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26344 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26345 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26346 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));
26348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26349 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));
26350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26351 NDR_PULL_ALLOC(ndr, r->out.type);
26352 ZERO_STRUCTP(r->out.type);
26353 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26354 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26355 NDR_PULL_ALLOC(ndr, r->out.needed);
26356 ZERO_STRUCTP(r->out.needed);
26358 if (flags & NDR_OUT) {
26359 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26360 NDR_PULL_ALLOC(ndr, r->out.type);
26362 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26363 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26364 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26366 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26368 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26370 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26371 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26372 NDR_PULL_ALLOC(ndr, r->out.needed);
26374 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26375 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26376 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26378 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26379 if (r->out.buffer) {
26380 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26383 return NDR_ERR_SUCCESS;
26386 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
26388 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
26390 if (flags & NDR_SET_VALUES) {
26391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26393 if (flags & NDR_IN) {
26394 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26396 ndr_print_ptr(ndr, "handle", r->in.handle);
26398 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26400 ndr_print_string(ndr, "key_name", r->in.key_name);
26401 ndr_print_string(ndr, "value_name", r->in.value_name);
26402 ndr_print_uint32(ndr, "offered", r->in.offered);
26405 if (flags & NDR_OUT) {
26406 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26408 ndr_print_ptr(ndr, "type", r->out.type);
26410 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26412 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26414 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26416 ndr_print_ptr(ndr, "needed", r->out.needed);
26418 ndr_print_uint32(ndr, "needed", *r->out.needed);
26420 ndr_print_WERROR(ndr, "result", r->out.result);
26426 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
26428 if (flags & NDR_IN) {
26429 if (r->in.handle == NULL) {
26430 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26432 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26436 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));
26437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26439 if (flags & NDR_OUT) {
26440 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26441 if (r->out.needed == NULL) {
26442 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26445 if (r->out.count == NULL) {
26446 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26449 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26451 return NDR_ERR_SUCCESS;
26454 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
26456 TALLOC_CTX *_mem_save_handle_0;
26457 TALLOC_CTX *_mem_save_needed_0;
26458 TALLOC_CTX *_mem_save_count_0;
26459 if (flags & NDR_IN) {
26460 ZERO_STRUCT(r->out);
26462 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26463 NDR_PULL_ALLOC(ndr, r->in.handle);
26465 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26466 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26467 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26469 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26470 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26471 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26472 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));
26474 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26475 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));
26476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26477 NDR_PULL_ALLOC(ndr, r->out.needed);
26478 ZERO_STRUCTP(r->out.needed);
26479 NDR_PULL_ALLOC(ndr, r->out.count);
26480 ZERO_STRUCTP(r->out.count);
26482 if (flags & NDR_OUT) {
26483 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
26484 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26485 NDR_PULL_ALLOC(ndr, r->out.needed);
26487 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26488 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26491 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26492 NDR_PULL_ALLOC(ndr, r->out.count);
26494 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26495 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26496 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26500 return NDR_ERR_SUCCESS;
26503 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
26505 uint32_t cntr_info_0;
26506 if (flags & NDR_IN) {
26507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26509 if (flags & NDR_OUT) {
26510 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26511 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26513 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26514 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26517 return NDR_ERR_SUCCESS;
26520 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
26522 uint32_t cntr_info_0;
26523 TALLOC_CTX *_mem_save_info_0;
26524 if (flags & NDR_IN) {
26525 ZERO_STRUCT(r->out);
26527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26529 if (flags & NDR_OUT) {
26530 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26531 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26532 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26533 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26534 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26536 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26537 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26541 return NDR_ERR_SUCCESS;
26544 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26546 uint32_t cntr_info_2;
26547 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26549 if (flags & NDR_SET_VALUES) {
26550 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26552 if (flags & NDR_IN) {
26553 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26555 ndr_print_ptr(ndr, "handle", r->in.handle);
26557 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26559 ndr_print_string(ndr, "key_name", r->in.key_name);
26560 ndr_print_uint32(ndr, "offered", r->in.offered);
26563 if (flags & NDR_OUT) {
26564 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26566 ndr_print_ptr(ndr, "count", r->out.count);
26568 ndr_print_uint32(ndr, "count", *r->out.count);
26570 ndr_print_ptr(ndr, "info", r->out.info);
26572 ndr_print_ptr(ndr, "info", *r->out.info);
26574 if (*r->out.info) {
26575 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26577 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26579 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26580 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
26588 ndr_print_ptr(ndr, "needed", r->out.needed);
26590 ndr_print_uint32(ndr, "needed", *r->out.needed);
26592 ndr_print_WERROR(ndr, "result", r->out.result);
26598 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26600 if (flags & NDR_IN) {
26601 if (r->in.handle == NULL) {
26602 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26604 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26608 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));
26609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26611 if (flags & NDR_OUT) {
26613 uint32_t _flags_save_string_array = ndr->flags;
26614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26615 if (r->out.key_buffer == NULL) {
26616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26618 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.key_buffer));
26619 if (*r->out.key_buffer) {
26621 struct ndr_push *_ndr_key_buffer;
26622 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26623 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer, NDR_SCALARS, *r->out.key_buffer));
26624 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26627 ndr->flags = _flags_save_string_array;
26629 if (r->out.needed == NULL) {
26630 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26633 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26635 return NDR_ERR_SUCCESS;
26638 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
26640 uint32_t _ptr_key_buffer;
26641 TALLOC_CTX *_mem_save_handle_0;
26642 TALLOC_CTX *_mem_save_key_buffer_0;
26643 TALLOC_CTX *_mem_save_key_buffer_1;
26644 TALLOC_CTX *_mem_save_needed_0;
26645 if (flags & NDR_IN) {
26646 ZERO_STRUCT(r->out);
26648 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26649 NDR_PULL_ALLOC(ndr, r->in.handle);
26651 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26652 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26653 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26655 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26656 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26657 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26658 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));
26660 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26661 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));
26662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26663 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26664 ZERO_STRUCTP(r->out.key_buffer);
26665 NDR_PULL_ALLOC(ndr, r->out.needed);
26666 ZERO_STRUCTP(r->out.needed);
26668 if (flags & NDR_OUT) {
26670 uint32_t _flags_save_string_array = ndr->flags;
26671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26672 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26673 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26675 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26676 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
26677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_key_buffer));
26678 if (_ptr_key_buffer) {
26679 NDR_PULL_ALLOC(ndr, *r->out.key_buffer);
26681 *r->out.key_buffer = NULL;
26683 if (*r->out.key_buffer) {
26684 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26685 NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_buffer, 0);
26687 struct ndr_pull *_ndr_key_buffer;
26688 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26689 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer, NDR_SCALARS, r->out.key_buffer));
26690 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
26695 ndr->flags = _flags_save_string_array;
26697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26698 NDR_PULL_ALLOC(ndr, r->out.needed);
26700 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26701 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26704 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26706 return NDR_ERR_SUCCESS;
26709 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
26711 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
26713 if (flags & NDR_SET_VALUES) {
26714 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26716 if (flags & NDR_IN) {
26717 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
26719 ndr_print_ptr(ndr, "handle", r->in.handle);
26721 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26723 ndr_print_string(ndr, "key_name", r->in.key_name);
26724 ndr_print_uint32(ndr, "offered", r->in.offered);
26727 if (flags & NDR_OUT) {
26728 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26730 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26732 ndr_print_ptr(ndr, "key_buffer", *r->out.key_buffer);
26734 if (*r->out.key_buffer) {
26735 ndr_print_string_array(ndr, "key_buffer", *r->out.key_buffer);
26739 ndr_print_ptr(ndr, "needed", r->out.needed);
26741 ndr_print_uint32(ndr, "needed", *r->out.needed);
26743 ndr_print_WERROR(ndr, "result", r->out.result);
26749 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
26751 if (flags & NDR_IN) {
26752 if (r->in.handle == NULL) {
26753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26755 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26759 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));
26760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26763 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));
26765 if (flags & NDR_OUT) {
26766 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26768 return NDR_ERR_SUCCESS;
26771 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
26773 TALLOC_CTX *_mem_save_handle_0;
26774 if (flags & NDR_IN) {
26775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26776 NDR_PULL_ALLOC(ndr, r->in.handle);
26778 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26779 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26780 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26782 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26783 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26784 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26785 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));
26787 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26788 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));
26789 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26790 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26791 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26792 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));
26794 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26795 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));
26797 if (flags & NDR_OUT) {
26798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26800 return NDR_ERR_SUCCESS;
26803 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
26805 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
26807 if (flags & NDR_SET_VALUES) {
26808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26810 if (flags & NDR_IN) {
26811 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26813 ndr_print_ptr(ndr, "handle", r->in.handle);
26815 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26817 ndr_print_string(ndr, "key_name", r->in.key_name);
26818 ndr_print_string(ndr, "value_name", r->in.value_name);
26821 if (flags & NDR_OUT) {
26822 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26824 ndr_print_WERROR(ndr, "result", r->out.result);
26830 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26832 if (flags & NDR_IN) {
26833 if (r->in.handle == NULL) {
26834 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26836 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26840 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));
26842 if (flags & NDR_OUT) {
26843 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26845 return NDR_ERR_SUCCESS;
26848 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26850 TALLOC_CTX *_mem_save_handle_0;
26851 if (flags & NDR_IN) {
26852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26853 NDR_PULL_ALLOC(ndr, r->in.handle);
26855 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26856 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26857 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26859 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26860 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26861 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26862 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));
26864 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26865 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));
26867 if (flags & NDR_OUT) {
26868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26870 return NDR_ERR_SUCCESS;
26873 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26875 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26877 if (flags & NDR_SET_VALUES) {
26878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26880 if (flags & NDR_IN) {
26881 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26883 ndr_print_ptr(ndr, "handle", r->in.handle);
26885 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26887 ndr_print_string(ndr, "key_name", r->in.key_name);
26890 if (flags & NDR_OUT) {
26891 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26893 ndr_print_WERROR(ndr, "result", r->out.result);
26899 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26901 if (flags & NDR_IN) {
26903 if (flags & NDR_OUT) {
26904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26906 return NDR_ERR_SUCCESS;
26909 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26911 if (flags & NDR_IN) {
26913 if (flags & NDR_OUT) {
26914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26916 return NDR_ERR_SUCCESS;
26919 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26921 ndr_print_struct(ndr, name, "spoolss_53");
26923 if (flags & NDR_SET_VALUES) {
26924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26926 if (flags & NDR_IN) {
26927 ndr_print_struct(ndr, "in", "spoolss_53");
26931 if (flags & NDR_OUT) {
26932 ndr_print_struct(ndr, "out", "spoolss_53");
26934 ndr_print_WERROR(ndr, "result", r->out.result);
26940 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26942 if (flags & NDR_IN) {
26943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26944 if (r->in.server) {
26945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26948 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26953 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26958 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26961 if (flags & NDR_OUT) {
26962 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26964 return NDR_ERR_SUCCESS;
26967 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26969 uint32_t _ptr_server;
26970 TALLOC_CTX *_mem_save_server_0;
26971 if (flags & NDR_IN) {
26972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26974 NDR_PULL_ALLOC(ndr, r->in.server);
26976 r->in.server = NULL;
26978 if (r->in.server) {
26979 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26980 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26981 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26982 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26983 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26984 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));
26986 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26987 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26990 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26991 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26992 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26993 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));
26995 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26996 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26997 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26998 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26999 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
27000 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));
27002 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
27003 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
27004 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
27005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
27007 if (flags & NDR_OUT) {
27008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27010 return NDR_ERR_SUCCESS;
27013 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27015 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
27017 if (flags & NDR_SET_VALUES) {
27018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27020 if (flags & NDR_IN) {
27021 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
27023 ndr_print_ptr(ndr, "server", r->in.server);
27025 if (r->in.server) {
27026 ndr_print_string(ndr, "server", r->in.server);
27029 ndr_print_string(ndr, "architecture", r->in.architecture);
27030 ndr_print_string(ndr, "driver", r->in.driver);
27031 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
27032 ndr_print_uint32(ndr, "version", r->in.version);
27035 if (flags & NDR_OUT) {
27036 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
27038 ndr_print_WERROR(ndr, "result", r->out.result);
27044 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
27046 if (flags & NDR_IN) {
27048 if (flags & NDR_OUT) {
27049 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27051 return NDR_ERR_SUCCESS;
27054 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
27056 if (flags & NDR_IN) {
27058 if (flags & NDR_OUT) {
27059 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27061 return NDR_ERR_SUCCESS;
27064 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
27066 ndr_print_struct(ndr, name, "spoolss_55");
27068 if (flags & NDR_SET_VALUES) {
27069 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27071 if (flags & NDR_IN) {
27072 ndr_print_struct(ndr, "in", "spoolss_55");
27076 if (flags & NDR_OUT) {
27077 ndr_print_struct(ndr, "out", "spoolss_55");
27079 ndr_print_WERROR(ndr, "result", r->out.result);
27085 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
27087 if (flags & NDR_IN) {
27089 if (flags & NDR_OUT) {
27090 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27092 return NDR_ERR_SUCCESS;
27095 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
27097 if (flags & NDR_IN) {
27099 if (flags & NDR_OUT) {
27100 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27102 return NDR_ERR_SUCCESS;
27105 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
27107 ndr_print_struct(ndr, name, "spoolss_56");
27109 if (flags & NDR_SET_VALUES) {
27110 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27112 if (flags & NDR_IN) {
27113 ndr_print_struct(ndr, "in", "spoolss_56");
27117 if (flags & NDR_OUT) {
27118 ndr_print_struct(ndr, "out", "spoolss_56");
27120 ndr_print_WERROR(ndr, "result", r->out.result);
27126 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
27128 if (flags & NDR_IN) {
27130 if (flags & NDR_OUT) {
27131 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27133 return NDR_ERR_SUCCESS;
27136 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
27138 if (flags & NDR_IN) {
27140 if (flags & NDR_OUT) {
27141 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27143 return NDR_ERR_SUCCESS;
27146 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
27148 ndr_print_struct(ndr, name, "spoolss_57");
27150 if (flags & NDR_SET_VALUES) {
27151 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27153 if (flags & NDR_IN) {
27154 ndr_print_struct(ndr, "in", "spoolss_57");
27158 if (flags & NDR_OUT) {
27159 ndr_print_struct(ndr, "out", "spoolss_57");
27161 ndr_print_WERROR(ndr, "result", r->out.result);
27167 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
27169 if (flags & NDR_IN) {
27170 if (r->in.handle == NULL) {
27171 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27173 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27177 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));
27178 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
27179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
27180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27181 if (r->in.status_code == NULL) {
27182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
27186 if (flags & NDR_OUT) {
27187 if (r->out.out_data == NULL) {
27188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27191 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
27192 if (r->out.needed == NULL) {
27193 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27196 if (r->out.status_code == NULL) {
27197 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
27200 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27202 return NDR_ERR_SUCCESS;
27205 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
27207 TALLOC_CTX *_mem_save_handle_0;
27208 TALLOC_CTX *_mem_save_needed_0;
27209 TALLOC_CTX *_mem_save_status_code_0;
27210 if (flags & NDR_IN) {
27211 ZERO_STRUCT(r->out);
27213 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27214 NDR_PULL_ALLOC(ndr, r->in.handle);
27216 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27217 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27218 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27220 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
27221 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
27222 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
27223 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));
27225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
27226 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));
27227 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
27228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
27229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
27230 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27231 NDR_PULL_ALLOC(ndr, r->in.status_code);
27233 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27234 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
27235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
27236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27237 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
27238 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
27239 NDR_PULL_ALLOC(ndr, r->out.needed);
27240 ZERO_STRUCTP(r->out.needed);
27241 NDR_PULL_ALLOC(ndr, r->out.status_code);
27242 *r->out.status_code = *r->in.status_code;
27244 if (flags & NDR_OUT) {
27245 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
27246 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27247 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
27249 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
27250 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27251 NDR_PULL_ALLOC(ndr, r->out.needed);
27253 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27254 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27258 NDR_PULL_ALLOC(ndr, r->out.status_code);
27260 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27261 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
27262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
27263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27264 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27265 if (r->out.out_data) {
27266 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
27269 return NDR_ERR_SUCCESS;
27272 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
27274 ndr_print_struct(ndr, name, "spoolss_XcvData");
27276 if (flags & NDR_SET_VALUES) {
27277 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27279 if (flags & NDR_IN) {
27280 ndr_print_struct(ndr, "in", "spoolss_XcvData");
27282 ndr_print_ptr(ndr, "handle", r->in.handle);
27284 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27286 ndr_print_string(ndr, "function_name", r->in.function_name);
27287 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
27288 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
27289 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
27290 ndr_print_ptr(ndr, "status_code", r->in.status_code);
27292 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
27296 if (flags & NDR_OUT) {
27297 ndr_print_struct(ndr, "out", "spoolss_XcvData");
27299 ndr_print_ptr(ndr, "out_data", r->out.out_data);
27301 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
27303 ndr_print_ptr(ndr, "needed", r->out.needed);
27305 ndr_print_uint32(ndr, "needed", *r->out.needed);
27307 ndr_print_ptr(ndr, "status_code", r->out.status_code);
27309 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
27311 ndr_print_WERROR(ndr, "result", r->out.result);
27317 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
27319 if (flags & NDR_IN) {
27320 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
27321 if (r->in.servername) {
27322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27327 if (r->in.info_ctr == NULL) {
27328 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27330 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27331 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
27333 if (flags & NDR_OUT) {
27334 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27336 return NDR_ERR_SUCCESS;
27339 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
27341 uint32_t _ptr_servername;
27342 TALLOC_CTX *_mem_save_servername_0;
27343 TALLOC_CTX *_mem_save_info_ctr_0;
27344 if (flags & NDR_IN) {
27345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27346 if (_ptr_servername) {
27347 NDR_PULL_ALLOC(ndr, r->in.servername);
27349 r->in.servername = NULL;
27351 if (r->in.servername) {
27352 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27353 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27354 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27355 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27356 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
27357 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));
27359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
27360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
27361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27364 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27366 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27367 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27368 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27370 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
27372 if (flags & NDR_OUT) {
27373 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27375 return NDR_ERR_SUCCESS;
27378 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
27380 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
27382 if (flags & NDR_SET_VALUES) {
27383 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27385 if (flags & NDR_IN) {
27386 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
27388 ndr_print_ptr(ndr, "servername", r->in.servername);
27390 if (r->in.servername) {
27391 ndr_print_string(ndr, "servername", r->in.servername);
27394 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27396 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27398 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
27401 if (flags & NDR_OUT) {
27402 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
27404 ndr_print_WERROR(ndr, "result", r->out.result);
27410 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
27412 if (flags & NDR_IN) {
27414 if (flags & NDR_OUT) {
27415 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27417 return NDR_ERR_SUCCESS;
27420 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
27422 if (flags & NDR_IN) {
27424 if (flags & NDR_OUT) {
27425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27427 return NDR_ERR_SUCCESS;
27430 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
27432 ndr_print_struct(ndr, name, "spoolss_5a");
27434 if (flags & NDR_SET_VALUES) {
27435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27437 if (flags & NDR_IN) {
27438 ndr_print_struct(ndr, "in", "spoolss_5a");
27442 if (flags & NDR_OUT) {
27443 ndr_print_struct(ndr, "out", "spoolss_5a");
27445 ndr_print_WERROR(ndr, "result", r->out.result);
27451 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
27453 if (flags & NDR_IN) {
27455 if (flags & NDR_OUT) {
27456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27458 return NDR_ERR_SUCCESS;
27461 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27463 if (flags & NDR_IN) {
27465 if (flags & NDR_OUT) {
27466 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27468 return NDR_ERR_SUCCESS;
27471 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27473 ndr_print_struct(ndr, name, "spoolss_5b");
27475 if (flags & NDR_SET_VALUES) {
27476 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27478 if (flags & NDR_IN) {
27479 ndr_print_struct(ndr, "in", "spoolss_5b");
27483 if (flags & NDR_OUT) {
27484 ndr_print_struct(ndr, "out", "spoolss_5b");
27486 ndr_print_WERROR(ndr, "result", r->out.result);
27492 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27494 if (flags & NDR_IN) {
27496 if (flags & NDR_OUT) {
27497 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27499 return NDR_ERR_SUCCESS;
27502 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27504 if (flags & NDR_IN) {
27506 if (flags & NDR_OUT) {
27507 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27509 return NDR_ERR_SUCCESS;
27512 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27514 ndr_print_struct(ndr, name, "spoolss_5c");
27516 if (flags & NDR_SET_VALUES) {
27517 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27519 if (flags & NDR_IN) {
27520 ndr_print_struct(ndr, "in", "spoolss_5c");
27524 if (flags & NDR_OUT) {
27525 ndr_print_struct(ndr, "out", "spoolss_5c");
27527 ndr_print_WERROR(ndr, "result", r->out.result);
27533 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27535 if (flags & NDR_IN) {
27537 if (flags & NDR_OUT) {
27538 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27540 return NDR_ERR_SUCCESS;
27543 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27545 if (flags & NDR_IN) {
27547 if (flags & NDR_OUT) {
27548 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27550 return NDR_ERR_SUCCESS;
27553 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27555 ndr_print_struct(ndr, name, "spoolss_5d");
27557 if (flags & NDR_SET_VALUES) {
27558 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27560 if (flags & NDR_IN) {
27561 ndr_print_struct(ndr, "in", "spoolss_5d");
27565 if (flags & NDR_OUT) {
27566 ndr_print_struct(ndr, "out", "spoolss_5d");
27568 ndr_print_WERROR(ndr, "result", r->out.result);
27574 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27576 if (flags & NDR_IN) {
27578 if (flags & NDR_OUT) {
27579 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27581 return NDR_ERR_SUCCESS;
27584 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27586 if (flags & NDR_IN) {
27588 if (flags & NDR_OUT) {
27589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27591 return NDR_ERR_SUCCESS;
27594 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27596 ndr_print_struct(ndr, name, "spoolss_5e");
27598 if (flags & NDR_SET_VALUES) {
27599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27601 if (flags & NDR_IN) {
27602 ndr_print_struct(ndr, "in", "spoolss_5e");
27606 if (flags & NDR_OUT) {
27607 ndr_print_struct(ndr, "out", "spoolss_5e");
27609 ndr_print_WERROR(ndr, "result", r->out.result);
27615 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27617 if (flags & NDR_IN) {
27619 if (flags & NDR_OUT) {
27620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27622 return NDR_ERR_SUCCESS;
27625 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27627 if (flags & NDR_IN) {
27629 if (flags & NDR_OUT) {
27630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27632 return NDR_ERR_SUCCESS;
27635 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
27637 ndr_print_struct(ndr, name, "spoolss_5f");
27639 if (flags & NDR_SET_VALUES) {
27640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27642 if (flags & NDR_IN) {
27643 ndr_print_struct(ndr, "in", "spoolss_5f");
27647 if (flags & NDR_OUT) {
27648 ndr_print_struct(ndr, "out", "spoolss_5f");
27650 ndr_print_WERROR(ndr, "result", r->out.result);
27656 static const struct ndr_interface_call spoolss_calls[] = {
27658 "spoolss_EnumPrinters",
27659 sizeof(struct spoolss_EnumPrinters),
27660 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
27661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
27662 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
27666 "spoolss_OpenPrinter",
27667 sizeof(struct spoolss_OpenPrinter),
27668 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
27669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
27670 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
27675 sizeof(struct spoolss_SetJob),
27676 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
27677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
27678 (ndr_print_function_t) ndr_print_spoolss_SetJob,
27683 sizeof(struct spoolss_GetJob),
27684 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
27685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
27686 (ndr_print_function_t) ndr_print_spoolss_GetJob,
27690 "spoolss_EnumJobs",
27691 sizeof(struct spoolss_EnumJobs),
27692 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
27693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
27694 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
27698 "spoolss_AddPrinter",
27699 sizeof(struct spoolss_AddPrinter),
27700 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
27701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
27702 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
27706 "spoolss_DeletePrinter",
27707 sizeof(struct spoolss_DeletePrinter),
27708 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
27709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
27710 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
27714 "spoolss_SetPrinter",
27715 sizeof(struct spoolss_SetPrinter),
27716 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
27717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
27718 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
27722 "spoolss_GetPrinter",
27723 sizeof(struct spoolss_GetPrinter),
27724 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
27725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
27726 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
27730 "spoolss_AddPrinterDriver",
27731 sizeof(struct spoolss_AddPrinterDriver),
27732 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
27733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
27734 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
27738 "spoolss_EnumPrinterDrivers",
27739 sizeof(struct spoolss_EnumPrinterDrivers),
27740 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
27741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
27742 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
27746 "spoolss_GetPrinterDriver",
27747 sizeof(struct spoolss_GetPrinterDriver),
27748 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
27749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
27750 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
27754 "spoolss_GetPrinterDriverDirectory",
27755 sizeof(struct spoolss_GetPrinterDriverDirectory),
27756 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
27757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
27758 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
27762 "spoolss_DeletePrinterDriver",
27763 sizeof(struct spoolss_DeletePrinterDriver),
27764 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
27765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
27766 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
27770 "spoolss_AddPrintProcessor",
27771 sizeof(struct spoolss_AddPrintProcessor),
27772 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
27773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
27774 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
27778 "spoolss_EnumPrintProcessors",
27779 sizeof(struct spoolss_EnumPrintProcessors),
27780 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
27781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
27782 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
27786 "spoolss_GetPrintProcessorDirectory",
27787 sizeof(struct spoolss_GetPrintProcessorDirectory),
27788 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
27789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
27790 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
27794 "spoolss_StartDocPrinter",
27795 sizeof(struct spoolss_StartDocPrinter),
27796 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
27797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
27798 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
27802 "spoolss_StartPagePrinter",
27803 sizeof(struct spoolss_StartPagePrinter),
27804 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
27805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
27806 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
27810 "spoolss_WritePrinter",
27811 sizeof(struct spoolss_WritePrinter),
27812 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27814 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27818 "spoolss_EndPagePrinter",
27819 sizeof(struct spoolss_EndPagePrinter),
27820 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27822 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27826 "spoolss_AbortPrinter",
27827 sizeof(struct spoolss_AbortPrinter),
27828 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27830 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27834 "spoolss_ReadPrinter",
27835 sizeof(struct spoolss_ReadPrinter),
27836 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27838 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27842 "spoolss_EndDocPrinter",
27843 sizeof(struct spoolss_EndDocPrinter),
27844 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27846 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27851 sizeof(struct spoolss_AddJob),
27852 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27854 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27858 "spoolss_ScheduleJob",
27859 sizeof(struct spoolss_ScheduleJob),
27860 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27862 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27866 "spoolss_GetPrinterData",
27867 sizeof(struct spoolss_GetPrinterData),
27868 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27870 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27874 "spoolss_SetPrinterData",
27875 sizeof(struct spoolss_SetPrinterData),
27876 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27878 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27882 "spoolss_WaitForPrinterChange",
27883 sizeof(struct spoolss_WaitForPrinterChange),
27884 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27886 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27890 "spoolss_ClosePrinter",
27891 sizeof(struct spoolss_ClosePrinter),
27892 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27894 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27899 sizeof(struct spoolss_AddForm),
27900 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27902 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27906 "spoolss_DeleteForm",
27907 sizeof(struct spoolss_DeleteForm),
27908 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27910 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27915 sizeof(struct spoolss_GetForm),
27916 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27918 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27923 sizeof(struct spoolss_SetForm),
27924 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27926 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27930 "spoolss_EnumForms",
27931 sizeof(struct spoolss_EnumForms),
27932 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27934 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27938 "spoolss_EnumPorts",
27939 sizeof(struct spoolss_EnumPorts),
27940 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27942 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27946 "spoolss_EnumMonitors",
27947 sizeof(struct spoolss_EnumMonitors),
27948 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27950 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27955 sizeof(struct spoolss_AddPort),
27956 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27958 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27962 "spoolss_ConfigurePort",
27963 sizeof(struct spoolss_ConfigurePort),
27964 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27966 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27970 "spoolss_DeletePort",
27971 sizeof(struct spoolss_DeletePort),
27972 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27974 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27978 "spoolss_CreatePrinterIC",
27979 sizeof(struct spoolss_CreatePrinterIC),
27980 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27982 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27986 "spoolss_PlayGDIScriptOnPrinterIC",
27987 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27988 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27990 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27994 "spoolss_DeletePrinterIC",
27995 sizeof(struct spoolss_DeletePrinterIC),
27996 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27998 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
28002 "spoolss_AddPrinterConnection",
28003 sizeof(struct spoolss_AddPrinterConnection),
28004 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
28005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
28006 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
28010 "spoolss_DeletePrinterConnection",
28011 sizeof(struct spoolss_DeletePrinterConnection),
28012 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
28013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
28014 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
28018 "spoolss_PrinterMessageBox",
28019 sizeof(struct spoolss_PrinterMessageBox),
28020 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
28021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
28022 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
28026 "spoolss_AddMonitor",
28027 sizeof(struct spoolss_AddMonitor),
28028 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
28029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
28030 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
28034 "spoolss_DeleteMonitor",
28035 sizeof(struct spoolss_DeleteMonitor),
28036 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
28037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
28038 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
28042 "spoolss_DeletePrintProcessor",
28043 sizeof(struct spoolss_DeletePrintProcessor),
28044 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
28045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
28046 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
28050 "spoolss_AddPrintProvidor",
28051 sizeof(struct spoolss_AddPrintProvidor),
28052 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
28053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
28054 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
28058 "spoolss_DeletePrintProvidor",
28059 sizeof(struct spoolss_DeletePrintProvidor),
28060 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
28061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
28062 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
28066 "spoolss_EnumPrintProcDataTypes",
28067 sizeof(struct spoolss_EnumPrintProcDataTypes),
28068 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
28069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
28070 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
28074 "spoolss_ResetPrinter",
28075 sizeof(struct spoolss_ResetPrinter),
28076 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
28077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
28078 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
28082 "spoolss_GetPrinterDriver2",
28083 sizeof(struct spoolss_GetPrinterDriver2),
28084 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
28085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
28086 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
28090 "spoolss_FindFirstPrinterChangeNotification",
28091 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
28092 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
28093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
28094 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
28098 "spoolss_FindNextPrinterChangeNotification",
28099 sizeof(struct spoolss_FindNextPrinterChangeNotification),
28100 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
28101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
28102 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
28106 "spoolss_FindClosePrinterNotify",
28107 sizeof(struct spoolss_FindClosePrinterNotify),
28108 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
28109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
28110 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
28114 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
28115 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
28116 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28118 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28122 "spoolss_ReplyOpenPrinter",
28123 sizeof(struct spoolss_ReplyOpenPrinter),
28124 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
28125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
28126 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
28130 "spoolss_RouterReplyPrinter",
28131 sizeof(struct spoolss_RouterReplyPrinter),
28132 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
28133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
28134 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
28138 "spoolss_ReplyClosePrinter",
28139 sizeof(struct spoolss_ReplyClosePrinter),
28140 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
28141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
28142 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
28146 "spoolss_AddPortEx",
28147 sizeof(struct spoolss_AddPortEx),
28148 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
28149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
28150 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
28154 "spoolss_RouterFindFirstPrinterChangeNotification",
28155 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
28156 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
28157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
28158 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
28162 "spoolss_SpoolerInit",
28163 sizeof(struct spoolss_SpoolerInit),
28164 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
28165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
28166 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
28170 "spoolss_ResetPrinterEx",
28171 sizeof(struct spoolss_ResetPrinterEx),
28172 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
28173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
28174 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
28178 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
28179 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
28180 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28182 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28186 "spoolss_RouterReplyPrinterEx",
28187 sizeof(struct spoolss_RouterReplyPrinterEx),
28188 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
28189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
28190 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
28194 "spoolss_RouterRefreshPrinterChangeNotify",
28195 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
28196 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
28197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
28198 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
28203 sizeof(struct spoolss_44),
28204 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
28205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
28206 (ndr_print_function_t) ndr_print_spoolss_44,
28210 "spoolss_OpenPrinterEx",
28211 sizeof(struct spoolss_OpenPrinterEx),
28212 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
28213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
28214 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
28218 "spoolss_AddPrinterEx",
28219 sizeof(struct spoolss_AddPrinterEx),
28220 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
28221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
28222 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
28227 sizeof(struct spoolss_47),
28228 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
28229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
28230 (ndr_print_function_t) ndr_print_spoolss_47,
28234 "spoolss_EnumPrinterData",
28235 sizeof(struct spoolss_EnumPrinterData),
28236 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
28237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
28238 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
28242 "spoolss_DeletePrinterData",
28243 sizeof(struct spoolss_DeletePrinterData),
28244 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
28245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
28246 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
28251 sizeof(struct spoolss_4a),
28252 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
28253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
28254 (ndr_print_function_t) ndr_print_spoolss_4a,
28259 sizeof(struct spoolss_4b),
28260 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
28261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
28262 (ndr_print_function_t) ndr_print_spoolss_4b,
28267 sizeof(struct spoolss_4c),
28268 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
28269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
28270 (ndr_print_function_t) ndr_print_spoolss_4c,
28274 "spoolss_SetPrinterDataEx",
28275 sizeof(struct spoolss_SetPrinterDataEx),
28276 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
28277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
28278 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
28282 "spoolss_GetPrinterDataEx",
28283 sizeof(struct spoolss_GetPrinterDataEx),
28284 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
28285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
28286 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
28290 "spoolss_EnumPrinterDataEx",
28291 sizeof(struct spoolss_EnumPrinterDataEx),
28292 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
28293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
28294 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
28298 "spoolss_EnumPrinterKey",
28299 sizeof(struct spoolss_EnumPrinterKey),
28300 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
28301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
28302 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
28306 "spoolss_DeletePrinterDataEx",
28307 sizeof(struct spoolss_DeletePrinterDataEx),
28308 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
28309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
28310 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
28314 "spoolss_DeletePrinterKey",
28315 sizeof(struct spoolss_DeletePrinterKey),
28316 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
28317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
28318 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
28323 sizeof(struct spoolss_53),
28324 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
28325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
28326 (ndr_print_function_t) ndr_print_spoolss_53,
28330 "spoolss_DeletePrinterDriverEx",
28331 sizeof(struct spoolss_DeletePrinterDriverEx),
28332 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
28333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
28334 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
28339 sizeof(struct spoolss_55),
28340 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
28341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
28342 (ndr_print_function_t) ndr_print_spoolss_55,
28347 sizeof(struct spoolss_56),
28348 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
28349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
28350 (ndr_print_function_t) ndr_print_spoolss_56,
28355 sizeof(struct spoolss_57),
28356 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
28357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
28358 (ndr_print_function_t) ndr_print_spoolss_57,
28363 sizeof(struct spoolss_XcvData),
28364 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
28365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
28366 (ndr_print_function_t) ndr_print_spoolss_XcvData,
28370 "spoolss_AddPrinterDriverEx",
28371 sizeof(struct spoolss_AddPrinterDriverEx),
28372 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
28373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
28374 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
28379 sizeof(struct spoolss_5a),
28380 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
28381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
28382 (ndr_print_function_t) ndr_print_spoolss_5a,
28387 sizeof(struct spoolss_5b),
28388 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
28389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
28390 (ndr_print_function_t) ndr_print_spoolss_5b,
28395 sizeof(struct spoolss_5c),
28396 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
28397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
28398 (ndr_print_function_t) ndr_print_spoolss_5c,
28403 sizeof(struct spoolss_5d),
28404 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
28405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
28406 (ndr_print_function_t) ndr_print_spoolss_5d,
28411 sizeof(struct spoolss_5e),
28412 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
28413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
28414 (ndr_print_function_t) ndr_print_spoolss_5e,
28419 sizeof(struct spoolss_5f),
28420 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
28421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
28422 (ndr_print_function_t) ndr_print_spoolss_5f,
28425 { NULL, 0, NULL, NULL, NULL, false }
28428 static const char * const spoolss_endpoint_strings[] = {
28429 "ncacn_np:[\\pipe\\spoolss]",
28432 static const struct ndr_interface_string_array spoolss_endpoints = {
28434 .names = spoolss_endpoint_strings
28437 static const char * const spoolss_authservice_strings[] = {
28441 static const struct ndr_interface_string_array spoolss_authservices = {
28443 .names = spoolss_authservice_strings
28447 const struct ndr_interface_table ndr_table_spoolss = {
28450 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28451 NDR_SPOOLSS_VERSION
28453 .helpstring = NDR_SPOOLSS_HELPSTRING,
28455 .calls = spoolss_calls,
28456 .endpoints = &spoolss_endpoints,
28457 .authservices = &spoolss_authservices