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 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16969 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16970 return NDR_ERR_SUCCESS;
16973 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16976 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16978 return NDR_ERR_SUCCESS;
16981 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16983 const char *val = NULL;
16986 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16987 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16988 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16989 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16990 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16991 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16992 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16993 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16994 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16995 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16996 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
16997 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
16998 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16999 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
17000 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
17001 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
17002 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
17003 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
17004 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
17005 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
17006 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
17007 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
17008 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
17009 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
17010 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
17011 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
17013 ndr_print_enum(ndr, name, "ENUM", val, r);
17016 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17018 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17019 return NDR_ERR_SUCCESS;
17022 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17025 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17027 return NDR_ERR_SUCCESS;
17030 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17032 const char *val = NULL;
17035 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17036 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17038 ndr_print_enum(ndr, name, "ENUM", val, r);
17041 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17043 uint32_t cntr_fields_1;
17044 if (ndr_flags & NDR_SCALARS) {
17045 NDR_CHECK(ndr_push_align(ndr, 4));
17046 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17047 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17051 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17053 if (ndr_flags & NDR_BUFFERS) {
17055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17056 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17057 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
17061 return NDR_ERR_SUCCESS;
17064 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17066 uint32_t _ptr_fields;
17067 uint32_t cntr_fields_1;
17068 TALLOC_CTX *_mem_save_fields_0;
17069 TALLOC_CTX *_mem_save_fields_1;
17070 if (ndr_flags & NDR_SCALARS) {
17071 NDR_CHECK(ndr_pull_align(ndr, 4));
17072 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17073 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17074 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17079 NDR_PULL_ALLOC(ndr, r->fields);
17084 if (ndr_flags & NDR_BUFFERS) {
17086 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17087 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17088 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17089 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17090 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17091 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17092 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17093 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17099 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17102 return NDR_ERR_SUCCESS;
17105 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17107 uint32_t cntr_fields_1;
17108 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17110 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17111 ndr_print_uint16(ndr, "u1", r->u1);
17112 ndr_print_uint32(ndr, "u2", r->u2);
17113 ndr_print_uint32(ndr, "u3", r->u3);
17114 ndr_print_uint32(ndr, "count", r->count);
17115 ndr_print_ptr(ndr, "fields", r->fields);
17118 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17120 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17122 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17123 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
17133 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17136 return NDR_ERR_SUCCESS;
17139 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17144 return NDR_ERR_SUCCESS;
17147 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17149 ndr_print_uint32(ndr, name, r);
17151 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17155 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17157 uint32_t cntr_types_1;
17158 if (ndr_flags & NDR_SCALARS) {
17159 NDR_CHECK(ndr_push_align(ndr, 4));
17160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17161 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17163 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17165 if (ndr_flags & NDR_BUFFERS) {
17167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17168 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17169 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17171 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17172 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17176 return NDR_ERR_SUCCESS;
17179 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17181 uint32_t _ptr_types;
17182 uint32_t cntr_types_1;
17183 TALLOC_CTX *_mem_save_types_0;
17184 TALLOC_CTX *_mem_save_types_1;
17185 if (ndr_flags & NDR_SCALARS) {
17186 NDR_CHECK(ndr_pull_align(ndr, 4));
17187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17188 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17192 NDR_PULL_ALLOC(ndr, r->types);
17197 if (ndr_flags & NDR_BUFFERS) {
17199 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17200 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17201 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17202 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17203 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17204 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17205 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17206 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17208 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17209 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17215 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17218 return NDR_ERR_SUCCESS;
17221 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17223 uint32_t cntr_types_1;
17224 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17226 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17227 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17228 ndr_print_uint32(ndr, "count", r->count);
17229 ndr_print_ptr(ndr, "types", r->types);
17232 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17234 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17236 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17237 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17247 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17249 if (ndr_flags & NDR_SCALARS) {
17250 NDR_CHECK(ndr_push_align(ndr, 4));
17251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17254 if (ndr_flags & NDR_BUFFERS) {
17256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17260 return NDR_ERR_SUCCESS;
17263 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17265 uint32_t _ptr_string;
17266 TALLOC_CTX *_mem_save_string_0;
17267 if (ndr_flags & NDR_SCALARS) {
17268 NDR_CHECK(ndr_pull_align(ndr, 4));
17269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17272 NDR_PULL_ALLOC(ndr, r->string);
17277 if (ndr_flags & NDR_BUFFERS) {
17279 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17280 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17281 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17282 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17286 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17289 return NDR_ERR_SUCCESS;
17292 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17294 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17296 ndr_print_uint32(ndr, "size", r->size);
17297 ndr_print_ptr(ndr, "string", r->string);
17300 ndr_print_string(ndr, "string", r->string);
17306 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17309 return NDR_ERR_SUCCESS;
17312 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17317 return NDR_ERR_SUCCESS;
17320 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17322 const char *val = NULL;
17325 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17326 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17327 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17328 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17329 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17331 ndr_print_enum(ndr, name, "ENUM", val, r);
17334 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17336 if (ndr_flags & NDR_SCALARS) {
17337 int level = ndr_push_get_switch_value(ndr, r);
17338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17341 uint32_t cntr_integer_0;
17342 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17348 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17352 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17356 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17360 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17364 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17367 if (ndr_flags & NDR_BUFFERS) {
17368 int level = ndr_push_get_switch_value(ndr, r);
17374 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17378 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17382 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17386 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17390 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17393 return NDR_ERR_SUCCESS;
17396 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17400 level = ndr_pull_get_switch_value(ndr, r);
17401 if (ndr_flags & NDR_SCALARS) {
17402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17403 if (_level != level) {
17404 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17408 uint32_t cntr_integer_0;
17409 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17415 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17419 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17423 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17427 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17431 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17434 if (ndr_flags & NDR_BUFFERS) {
17440 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17444 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17448 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17452 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17456 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17459 return NDR_ERR_SUCCESS;
17462 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17465 uint32_t cntr_integer_0;
17466 level = ndr_print_get_switch_value(ndr, r);
17467 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17470 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17472 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17474 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17475 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17483 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17487 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17491 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17495 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17499 ndr_print_bad_level(ndr, name, level);
17503 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17505 if (ndr_flags & NDR_SCALARS) {
17506 NDR_CHECK(ndr_push_align(ndr, 4));
17507 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17508 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17509 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17511 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17512 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17514 if (ndr_flags & NDR_BUFFERS) {
17515 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17517 return NDR_ERR_SUCCESS;
17520 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17522 if (ndr_flags & NDR_SCALARS) {
17523 NDR_CHECK(ndr_pull_align(ndr, 4));
17524 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17525 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17526 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17528 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17529 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17531 if (ndr_flags & NDR_BUFFERS) {
17532 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17534 return NDR_ERR_SUCCESS;
17537 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17539 ndr_print_struct(ndr, name, "spoolss_Notify");
17541 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17542 ndr_print_spoolss_Field(ndr, "field", r->field);
17543 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17544 ndr_print_uint32(ndr, "job_id", r->job_id);
17545 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17546 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17550 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17552 uint32_t cntr_notifies_0;
17553 if (ndr_flags & NDR_SCALARS) {
17554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17555 NDR_CHECK(ndr_push_align(ndr, 4));
17556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17559 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17560 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17563 if (ndr_flags & NDR_BUFFERS) {
17564 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17565 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17568 return NDR_ERR_SUCCESS;
17571 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17573 uint32_t cntr_notifies_0;
17574 TALLOC_CTX *_mem_save_notifies_0;
17575 if (ndr_flags & NDR_SCALARS) {
17576 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17577 NDR_CHECK(ndr_pull_align(ndr, 4));
17578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17581 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17582 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17583 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17584 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17585 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17589 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17592 if (ndr_flags & NDR_BUFFERS) {
17593 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17594 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17595 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17596 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17600 return NDR_ERR_SUCCESS;
17603 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17605 uint32_t cntr_notifies_0;
17606 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17608 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17609 ndr_print_uint32(ndr, "flags", r->flags);
17610 ndr_print_uint32(ndr, "count", r->count);
17611 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17613 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17615 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17616 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17624 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17626 if (ndr_flags & NDR_SCALARS) {
17627 int level = ndr_push_get_switch_value(ndr, r);
17628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17635 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17638 if (ndr_flags & NDR_BUFFERS) {
17639 int level = ndr_push_get_switch_value(ndr, r);
17643 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17648 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17651 return NDR_ERR_SUCCESS;
17654 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17658 TALLOC_CTX *_mem_save_info0_0;
17659 level = ndr_pull_get_switch_value(ndr, r);
17660 if (ndr_flags & NDR_SCALARS) {
17661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17662 if (_level != level) {
17663 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17667 uint32_t _ptr_info0;
17668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17670 NDR_PULL_ALLOC(ndr, r->info0);
17677 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17680 if (ndr_flags & NDR_BUFFERS) {
17684 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17685 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17686 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17692 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17695 return NDR_ERR_SUCCESS;
17698 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17701 level = ndr_print_get_switch_value(ndr, r);
17702 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17705 ndr_print_ptr(ndr, "info0", r->info0);
17708 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17714 ndr_print_bad_level(ndr, name, level);
17718 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17721 return NDR_ERR_SUCCESS;
17724 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17729 return NDR_ERR_SUCCESS;
17732 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17734 ndr_print_uint32(ndr, name, r);
17736 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17737 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17738 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17742 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17744 if (ndr_flags & NDR_SCALARS) {
17745 NDR_CHECK(ndr_push_align(ndr, 4));
17746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17750 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17751 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17752 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17754 if (ndr_flags & NDR_BUFFERS) {
17756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17759 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17765 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17768 return NDR_ERR_SUCCESS;
17771 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17773 uint32_t _ptr_client;
17774 TALLOC_CTX *_mem_save_client_0;
17775 uint32_t _ptr_user;
17776 TALLOC_CTX *_mem_save_user_0;
17777 if (ndr_flags & NDR_SCALARS) {
17778 NDR_CHECK(ndr_pull_align(ndr, 4));
17779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17780 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17782 NDR_PULL_ALLOC(ndr, r->client);
17786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17788 NDR_PULL_ALLOC(ndr, r->user);
17792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17793 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17794 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17795 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17797 if (ndr_flags & NDR_BUFFERS) {
17799 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17800 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17801 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17802 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17803 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17804 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));
17806 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17807 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17811 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17812 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17813 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17814 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17815 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17816 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));
17818 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17819 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17823 return NDR_ERR_SUCCESS;
17826 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17828 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17830 ndr_print_uint32(ndr, "size", r->size);
17831 ndr_print_ptr(ndr, "client", r->client);
17834 ndr_print_string(ndr, "client", r->client);
17837 ndr_print_ptr(ndr, "user", r->user);
17840 ndr_print_string(ndr, "user", r->user);
17843 ndr_print_uint32(ndr, "build", r->build);
17844 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17845 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17846 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17850 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17852 if (ndr_flags & NDR_SCALARS) {
17853 NDR_CHECK(ndr_push_align(ndr, 4));
17854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17856 if (ndr_flags & NDR_BUFFERS) {
17858 return NDR_ERR_SUCCESS;
17861 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17863 if (ndr_flags & NDR_SCALARS) {
17864 NDR_CHECK(ndr_pull_align(ndr, 4));
17865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17867 if (ndr_flags & NDR_BUFFERS) {
17869 return NDR_ERR_SUCCESS;
17872 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17874 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17876 ndr_print_uint32(ndr, "not_used", r->not_used);
17880 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17882 if (ndr_flags & NDR_SCALARS) {
17883 NDR_CHECK(ndr_push_align(ndr, 4));
17884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17887 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17890 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17891 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17892 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17893 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17895 if (ndr_flags & NDR_BUFFERS) {
17897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17909 return NDR_ERR_SUCCESS;
17912 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17914 uint32_t _ptr_client;
17915 TALLOC_CTX *_mem_save_client_0;
17916 uint32_t _ptr_user;
17917 TALLOC_CTX *_mem_save_user_0;
17918 if (ndr_flags & NDR_SCALARS) {
17919 NDR_CHECK(ndr_pull_align(ndr, 4));
17920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17922 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17925 NDR_PULL_ALLOC(ndr, r->client);
17929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17931 NDR_PULL_ALLOC(ndr, r->user);
17935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17936 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17937 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17938 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17939 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17941 if (ndr_flags & NDR_BUFFERS) {
17943 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17944 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17945 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17946 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17947 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17948 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));
17950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17951 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17955 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17956 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17957 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17958 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17959 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17960 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));
17962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17967 return NDR_ERR_SUCCESS;
17970 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17972 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17974 ndr_print_uint32(ndr, "size", r->size);
17975 ndr_print_uint32(ndr, "flags", r->flags);
17976 ndr_print_uint32(ndr, "size2", r->size2);
17977 ndr_print_ptr(ndr, "client", r->client);
17980 ndr_print_string(ndr, "client", r->client);
17983 ndr_print_ptr(ndr, "user", r->user);
17986 ndr_print_string(ndr, "user", r->user);
17989 ndr_print_uint32(ndr, "build", r->build);
17990 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17991 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17992 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17993 ndr_print_udlong(ndr, "reserved", r->reserved);
17997 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
17999 if (ndr_flags & NDR_SCALARS) {
18000 int level = ndr_push_get_switch_value(ndr, r);
18001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18016 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18019 if (ndr_flags & NDR_BUFFERS) {
18020 int level = ndr_push_get_switch_value(ndr, r);
18024 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18030 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18036 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18041 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18044 return NDR_ERR_SUCCESS;
18047 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18051 TALLOC_CTX *_mem_save_level1_0;
18052 TALLOC_CTX *_mem_save_level2_0;
18053 TALLOC_CTX *_mem_save_level3_0;
18054 level = ndr_pull_get_switch_value(ndr, r);
18055 if (ndr_flags & NDR_SCALARS) {
18056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18057 if (_level != level) {
18058 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18062 uint32_t _ptr_level1;
18063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18065 NDR_PULL_ALLOC(ndr, r->level1);
18072 uint32_t _ptr_level2;
18073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18075 NDR_PULL_ALLOC(ndr, r->level2);
18082 uint32_t _ptr_level3;
18083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18085 NDR_PULL_ALLOC(ndr, r->level3);
18092 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18095 if (ndr_flags & NDR_BUFFERS) {
18099 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18100 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18101 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18108 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18109 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18110 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18117 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18118 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18119 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18125 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18128 return NDR_ERR_SUCCESS;
18131 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18134 level = ndr_print_get_switch_value(ndr, r);
18135 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18138 ndr_print_ptr(ndr, "level1", r->level1);
18141 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18147 ndr_print_ptr(ndr, "level2", r->level2);
18150 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18156 ndr_print_ptr(ndr, "level3", r->level3);
18159 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18165 ndr_print_bad_level(ndr, name, level);
18169 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18171 if (ndr_flags & NDR_SCALARS) {
18172 NDR_CHECK(ndr_push_align(ndr, 4));
18173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18174 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18175 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18177 if (ndr_flags & NDR_BUFFERS) {
18178 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18180 return NDR_ERR_SUCCESS;
18183 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18185 if (ndr_flags & NDR_SCALARS) {
18186 NDR_CHECK(ndr_pull_align(ndr, 4));
18187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18188 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18189 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18191 if (ndr_flags & NDR_BUFFERS) {
18192 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18194 return NDR_ERR_SUCCESS;
18197 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18199 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18201 ndr_print_uint32(ndr, "level", r->level);
18202 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18203 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18207 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18210 return NDR_ERR_SUCCESS;
18213 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18218 return NDR_ERR_SUCCESS;
18221 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18223 ndr_print_uint32(ndr, name, r);
18225 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18226 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18234 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
18236 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18237 if (ndr_flags & NDR_SCALARS) {
18238 NDR_CHECK(ndr_push_align(ndr, 4));
18239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18241 uint32_t _flags_save_string = ndr->flags;
18242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18243 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
18244 ndr->flags = _flags_save_string;
18246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
18247 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
18248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
18249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
18251 if (ndr_flags & NDR_BUFFERS) {
18252 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18254 uint32_t _flags_save_string = ndr->flags;
18255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18256 if (r->value_name) {
18257 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
18258 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
18260 ndr->flags = _flags_save_string;
18263 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
18265 struct ndr_push *_ndr_data;
18266 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18267 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
18268 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18269 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18273 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18274 return NDR_ERR_SUCCESS;
18277 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
18279 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18280 uint32_t _ptr_value_name;
18281 TALLOC_CTX *_mem_save_value_name_0;
18282 uint32_t _ptr_data;
18283 TALLOC_CTX *_mem_save_data_0;
18284 if (ndr_flags & NDR_SCALARS) {
18285 NDR_CHECK(ndr_pull_align(ndr, 4));
18286 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18288 uint32_t _flags_save_string = ndr->flags;
18289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
18291 if (_ptr_value_name) {
18292 NDR_PULL_ALLOC(ndr, r->value_name);
18293 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
18295 r->value_name = NULL;
18297 ndr->flags = _flags_save_string;
18299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
18300 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
18301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
18303 NDR_PULL_ALLOC(ndr, r->data);
18304 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
18308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
18310 if (ndr_flags & NDR_BUFFERS) {
18311 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18313 uint32_t _flags_save_string = ndr->flags;
18314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18315 if (r->value_name) {
18316 uint32_t _relative_save_offset;
18317 _relative_save_offset = ndr->offset;
18318 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
18319 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18320 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
18321 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
18322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
18323 ndr->offset = _relative_save_offset;
18325 ndr->flags = _flags_save_string;
18328 uint32_t _relative_save_offset;
18329 _relative_save_offset = ndr->offset;
18330 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
18331 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
18332 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
18334 struct ndr_pull *_ndr_data;
18335 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18336 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
18337 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18338 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
18341 ndr->offset = _relative_save_offset;
18344 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18345 return NDR_ERR_SUCCESS;
18348 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
18350 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
18352 ndr_print_ptr(ndr, "value_name", r->value_name);
18354 if (r->value_name) {
18355 ndr_print_string(ndr, "value_name", r->value_name);
18358 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
18359 ndr_print_winreg_Type(ndr, "type", r->type);
18360 ndr_print_ptr(ndr, "data", r->data);
18363 ndr_print_set_switch_value(ndr, r->data, r->type);
18364 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
18367 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);
18371 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
18373 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
18376 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18379 return NDR_ERR_SUCCESS;
18382 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18387 return NDR_ERR_SUCCESS;
18390 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18392 ndr_print_uint32(ndr, name, r);
18394 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18395 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18396 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18400 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18403 return NDR_ERR_SUCCESS;
18406 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18411 return NDR_ERR_SUCCESS;
18414 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18416 const char *val = NULL;
18419 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18420 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18422 ndr_print_enum(ndr, name, "ENUM", val, r);
18425 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18427 if (ndr_flags & NDR_SCALARS) {
18428 NDR_CHECK(ndr_push_align(ndr, 4));
18429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18431 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18438 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18445 if (ndr_flags & NDR_BUFFERS) {
18447 return NDR_ERR_SUCCESS;
18450 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18452 if (ndr_flags & NDR_SCALARS) {
18453 NDR_CHECK(ndr_pull_align(ndr, 4));
18454 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18456 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18459 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18460 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18463 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18464 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18470 if (ndr_flags & NDR_BUFFERS) {
18472 return NDR_ERR_SUCCESS;
18475 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18477 ndr_print_struct(ndr, name, "spoolss_PortData1");
18479 ndr_print_string(ndr, "portname", r->portname);
18480 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18481 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18482 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18483 ndr_print_uint32(ndr, "reserved", r->reserved);
18484 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18485 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18486 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18487 ndr_print_string(ndr, "queue", r->queue);
18488 ndr_print_string(ndr, "ip_address", r->ip_address);
18489 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18490 ndr_print_string(ndr, "device_type", r->device_type);
18491 ndr_print_uint32(ndr, "port_number", r->port_number);
18492 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18493 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18497 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18499 if (ndr_flags & NDR_SCALARS) {
18500 NDR_CHECK(ndr_push_align(ndr, 4));
18501 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18503 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18509 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18510 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18516 if (ndr_flags & NDR_BUFFERS) {
18518 return NDR_ERR_SUCCESS;
18521 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18523 if (ndr_flags & NDR_SCALARS) {
18524 NDR_CHECK(ndr_pull_align(ndr, 4));
18525 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18527 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18530 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18534 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18540 if (ndr_flags & NDR_BUFFERS) {
18542 return NDR_ERR_SUCCESS;
18545 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18547 ndr_print_struct(ndr, name, "spoolss_PortData2");
18549 ndr_print_string(ndr, "portname", r->portname);
18550 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18551 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18552 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18553 ndr_print_uint32(ndr, "reserved", r->reserved);
18554 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18555 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18556 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18557 ndr_print_string(ndr, "queue", r->queue);
18558 ndr_print_string(ndr, "device_type", r->device_type);
18559 ndr_print_uint32(ndr, "port_number", r->port_number);
18560 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18561 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18562 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18566 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18568 if (ndr_flags & NDR_SCALARS) {
18569 NDR_CHECK(ndr_push_align(ndr, 4));
18571 uint32_t _flags_save_string = ndr->flags;
18572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18574 ndr->flags = _flags_save_string;
18577 if (ndr_flags & NDR_BUFFERS) {
18579 return NDR_ERR_SUCCESS;
18582 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18584 if (ndr_flags & NDR_SCALARS) {
18585 NDR_CHECK(ndr_pull_align(ndr, 4));
18587 uint32_t _flags_save_string = ndr->flags;
18588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18589 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18590 ndr->flags = _flags_save_string;
18593 if (ndr_flags & NDR_BUFFERS) {
18595 return NDR_ERR_SUCCESS;
18598 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18600 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18602 ndr_print_string(ndr, "dll_name", r->dll_name);
18606 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18609 return NDR_ERR_SUCCESS;
18612 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18617 return NDR_ERR_SUCCESS;
18620 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18622 ndr_print_uint32(ndr, name, r);
18624 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18625 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18626 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18627 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18628 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18629 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18630 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18631 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18635 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18637 if (flags & NDR_IN) {
18638 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18639 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18640 if (r->in.server) {
18641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18644 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18648 if (r->in.buffer) {
18649 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18653 if (flags & NDR_OUT) {
18654 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18656 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18658 if (r->out.needed == NULL) {
18659 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18662 if (r->out.count == NULL) {
18663 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18666 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18668 return NDR_ERR_SUCCESS;
18671 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18673 uint32_t _ptr_server;
18674 uint32_t _ptr_buffer;
18675 uint32_t _ptr_info;
18676 TALLOC_CTX *_mem_save_server_0;
18677 TALLOC_CTX *_mem_save_buffer_0;
18678 TALLOC_CTX *_mem_save_info_0;
18679 TALLOC_CTX *_mem_save_needed_0;
18680 TALLOC_CTX *_mem_save_count_0;
18681 if (flags & NDR_IN) {
18682 ZERO_STRUCT(r->out);
18684 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18687 NDR_PULL_ALLOC(ndr, r->in.server);
18689 r->in.server = NULL;
18691 if (r->in.server) {
18692 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18693 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18694 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18695 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18696 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18697 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));
18699 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18700 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18706 NDR_PULL_ALLOC(ndr, r->in.buffer);
18708 r->in.buffer = NULL;
18710 if (r->in.buffer) {
18711 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18712 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18713 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18717 NDR_PULL_ALLOC(ndr, r->out.needed);
18718 ZERO_STRUCTP(r->out.needed);
18719 NDR_PULL_ALLOC(ndr, r->out.count);
18720 ZERO_STRUCTP(r->out.count);
18722 if (flags & NDR_OUT) {
18723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18725 NDR_PULL_ALLOC(ndr, r->out.info);
18727 r->out.info = NULL;
18730 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18731 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18732 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18735 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18736 NDR_PULL_ALLOC(ndr, r->out.needed);
18738 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18739 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18742 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18743 NDR_PULL_ALLOC(ndr, r->out.count);
18745 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18746 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18749 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18751 return NDR_ERR_SUCCESS;
18754 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18756 uint32_t cntr_info_0;
18757 if (flags & NDR_IN) {
18758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18761 if (flags & NDR_OUT) {
18762 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18763 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18764 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18766 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18767 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18770 return NDR_ERR_SUCCESS;
18773 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18775 uint32_t cntr_info_0;
18776 TALLOC_CTX *_mem_save_info_0;
18777 if (flags & NDR_IN) {
18778 ZERO_STRUCT(r->out);
18780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18783 if (flags & NDR_OUT) {
18784 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18785 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18786 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18787 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18788 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18789 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18791 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18792 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18796 return NDR_ERR_SUCCESS;
18799 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18801 uint32_t cntr_info_2;
18802 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18804 if (flags & NDR_SET_VALUES) {
18805 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18807 if (flags & NDR_IN) {
18808 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18810 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18811 ndr_print_ptr(ndr, "server", r->in.server);
18813 if (r->in.server) {
18814 ndr_print_string(ndr, "server", r->in.server);
18817 ndr_print_uint32(ndr, "level", r->in.level);
18818 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18820 if (r->in.buffer) {
18821 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18824 ndr_print_uint32(ndr, "offered", r->in.offered);
18827 if (flags & NDR_OUT) {
18828 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18830 ndr_print_ptr(ndr, "count", r->out.count);
18832 ndr_print_uint32(ndr, "count", *r->out.count);
18834 ndr_print_ptr(ndr, "info", r->out.info);
18836 ndr_print_ptr(ndr, "info", *r->out.info);
18838 if (*r->out.info) {
18839 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18841 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
18843 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
18844 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
18845 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
18853 ndr_print_ptr(ndr, "needed", r->out.needed);
18855 ndr_print_uint32(ndr, "needed", *r->out.needed);
18857 ndr_print_WERROR(ndr, "result", r->out.result);
18863 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18865 if (flags & NDR_IN) {
18866 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18867 if (r->in.printername) {
18868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18874 if (r->in.datatype) {
18875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18878 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18880 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18881 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18883 if (flags & NDR_OUT) {
18884 if (r->out.handle == NULL) {
18885 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18887 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18888 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18890 return NDR_ERR_SUCCESS;
18893 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18895 uint32_t _ptr_printername;
18896 uint32_t _ptr_datatype;
18897 TALLOC_CTX *_mem_save_printername_0;
18898 TALLOC_CTX *_mem_save_datatype_0;
18899 TALLOC_CTX *_mem_save_handle_0;
18900 if (flags & NDR_IN) {
18901 ZERO_STRUCT(r->out);
18903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18904 if (_ptr_printername) {
18905 NDR_PULL_ALLOC(ndr, r->in.printername);
18907 r->in.printername = NULL;
18909 if (r->in.printername) {
18910 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18911 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18912 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18913 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18914 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18915 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));
18917 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18918 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18922 if (_ptr_datatype) {
18923 NDR_PULL_ALLOC(ndr, r->in.datatype);
18925 r->in.datatype = NULL;
18927 if (r->in.datatype) {
18928 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18929 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18930 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18931 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18932 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18933 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));
18935 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18936 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18939 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18940 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18941 NDR_PULL_ALLOC(ndr, r->out.handle);
18942 ZERO_STRUCTP(r->out.handle);
18944 if (flags & NDR_OUT) {
18945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18946 NDR_PULL_ALLOC(ndr, r->out.handle);
18948 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18949 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18950 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18952 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18954 return NDR_ERR_SUCCESS;
18957 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18959 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18961 if (flags & NDR_SET_VALUES) {
18962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18964 if (flags & NDR_IN) {
18965 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18967 ndr_print_ptr(ndr, "printername", r->in.printername);
18969 if (r->in.printername) {
18970 ndr_print_string(ndr, "printername", r->in.printername);
18973 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18975 if (r->in.datatype) {
18976 ndr_print_string(ndr, "datatype", r->in.datatype);
18979 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18980 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18983 if (flags & NDR_OUT) {
18984 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18986 ndr_print_ptr(ndr, "handle", r->out.handle);
18988 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18990 ndr_print_WERROR(ndr, "result", r->out.result);
18996 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18998 if (flags & NDR_IN) {
18999 if (r->in.handle == NULL) {
19000 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19002 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19006 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19008 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19010 if (flags & NDR_OUT) {
19011 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19013 return NDR_ERR_SUCCESS;
19016 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19019 TALLOC_CTX *_mem_save_handle_0;
19020 TALLOC_CTX *_mem_save_ctr_0;
19021 if (flags & NDR_IN) {
19022 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19023 NDR_PULL_ALLOC(ndr, r->in.handle);
19025 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19026 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19027 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19032 NDR_PULL_ALLOC(ndr, r->in.ctr);
19037 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19038 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
19039 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
19042 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
19044 if (flags & NDR_OUT) {
19045 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19047 return NDR_ERR_SUCCESS;
19050 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
19052 ndr_print_struct(ndr, name, "spoolss_SetJob");
19054 if (flags & NDR_SET_VALUES) {
19055 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19057 if (flags & NDR_IN) {
19058 ndr_print_struct(ndr, "in", "spoolss_SetJob");
19060 ndr_print_ptr(ndr, "handle", r->in.handle);
19062 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19064 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19065 ndr_print_ptr(ndr, "ctr", r->in.ctr);
19068 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
19071 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
19074 if (flags & NDR_OUT) {
19075 ndr_print_struct(ndr, "out", "spoolss_SetJob");
19077 ndr_print_WERROR(ndr, "result", r->out.result);
19083 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
19085 if (flags & NDR_IN) {
19086 if (r->in.handle == NULL) {
19087 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19089 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19093 if (r->in.buffer) {
19094 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19098 if (flags & NDR_OUT) {
19099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19102 struct ndr_push *_ndr_info;
19103 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19104 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19105 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19106 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19109 if (r->out.needed == NULL) {
19110 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19113 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19115 return NDR_ERR_SUCCESS;
19118 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
19120 uint32_t _ptr_buffer;
19121 uint32_t _ptr_info;
19122 TALLOC_CTX *_mem_save_handle_0;
19123 TALLOC_CTX *_mem_save_buffer_0;
19124 TALLOC_CTX *_mem_save_info_0;
19125 TALLOC_CTX *_mem_save_needed_0;
19126 if (flags & NDR_IN) {
19127 ZERO_STRUCT(r->out);
19129 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19130 NDR_PULL_ALLOC(ndr, r->in.handle);
19132 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19133 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19134 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19140 NDR_PULL_ALLOC(ndr, r->in.buffer);
19142 r->in.buffer = NULL;
19144 if (r->in.buffer) {
19145 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19146 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19147 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19151 NDR_PULL_ALLOC(ndr, r->out.needed);
19152 ZERO_STRUCTP(r->out.needed);
19154 if (flags & NDR_OUT) {
19155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19157 NDR_PULL_ALLOC(ndr, r->out.info);
19159 r->out.info = NULL;
19162 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19163 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19165 struct ndr_pull *_ndr_info;
19166 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19167 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19168 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19169 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19173 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19174 NDR_PULL_ALLOC(ndr, r->out.needed);
19176 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19177 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19180 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19182 return NDR_ERR_SUCCESS;
19185 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19187 ndr_print_struct(ndr, name, "spoolss_GetJob");
19189 if (flags & NDR_SET_VALUES) {
19190 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19192 if (flags & NDR_IN) {
19193 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19195 ndr_print_ptr(ndr, "handle", r->in.handle);
19197 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19199 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19200 ndr_print_uint32(ndr, "level", r->in.level);
19201 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19203 if (r->in.buffer) {
19204 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19207 ndr_print_uint32(ndr, "offered", r->in.offered);
19210 if (flags & NDR_OUT) {
19211 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19213 ndr_print_ptr(ndr, "info", r->out.info);
19216 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19217 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19220 ndr_print_ptr(ndr, "needed", r->out.needed);
19222 ndr_print_uint32(ndr, "needed", *r->out.needed);
19224 ndr_print_WERROR(ndr, "result", r->out.result);
19230 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19232 if (flags & NDR_IN) {
19233 if (r->in.handle == NULL) {
19234 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19236 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19240 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19241 if (r->in.buffer) {
19242 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19246 if (flags & NDR_OUT) {
19247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19249 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19251 if (r->out.needed == NULL) {
19252 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19255 if (r->out.count == NULL) {
19256 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19261 return NDR_ERR_SUCCESS;
19264 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19266 uint32_t _ptr_buffer;
19267 uint32_t _ptr_info;
19268 TALLOC_CTX *_mem_save_handle_0;
19269 TALLOC_CTX *_mem_save_buffer_0;
19270 TALLOC_CTX *_mem_save_info_0;
19271 TALLOC_CTX *_mem_save_needed_0;
19272 TALLOC_CTX *_mem_save_count_0;
19273 if (flags & NDR_IN) {
19274 ZERO_STRUCT(r->out);
19276 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19277 NDR_PULL_ALLOC(ndr, r->in.handle);
19279 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19280 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19281 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19283 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19288 NDR_PULL_ALLOC(ndr, r->in.buffer);
19290 r->in.buffer = NULL;
19292 if (r->in.buffer) {
19293 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19294 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19295 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19299 NDR_PULL_ALLOC(ndr, r->out.needed);
19300 ZERO_STRUCTP(r->out.needed);
19301 NDR_PULL_ALLOC(ndr, r->out.count);
19302 ZERO_STRUCTP(r->out.count);
19304 if (flags & NDR_OUT) {
19305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19307 NDR_PULL_ALLOC(ndr, r->out.info);
19309 r->out.info = NULL;
19312 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19313 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19314 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19318 NDR_PULL_ALLOC(ndr, r->out.needed);
19320 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19321 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19325 NDR_PULL_ALLOC(ndr, r->out.count);
19327 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19328 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19333 return NDR_ERR_SUCCESS;
19336 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19338 uint32_t cntr_info_0;
19339 if (flags & NDR_IN) {
19340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19343 if (flags & NDR_OUT) {
19344 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19345 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19346 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19348 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19349 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19352 return NDR_ERR_SUCCESS;
19355 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19357 uint32_t cntr_info_0;
19358 TALLOC_CTX *_mem_save_info_0;
19359 if (flags & NDR_IN) {
19360 ZERO_STRUCT(r->out);
19362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19365 if (flags & NDR_OUT) {
19366 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19367 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19368 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19369 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19370 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19371 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19373 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19374 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19378 return NDR_ERR_SUCCESS;
19381 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19383 uint32_t cntr_info_2;
19384 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19386 if (flags & NDR_SET_VALUES) {
19387 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19389 if (flags & NDR_IN) {
19390 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19392 ndr_print_ptr(ndr, "handle", r->in.handle);
19394 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19396 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19397 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19398 ndr_print_uint32(ndr, "level", r->in.level);
19399 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19401 if (r->in.buffer) {
19402 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19405 ndr_print_uint32(ndr, "offered", r->in.offered);
19408 if (flags & NDR_OUT) {
19409 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19411 ndr_print_ptr(ndr, "count", r->out.count);
19413 ndr_print_uint32(ndr, "count", *r->out.count);
19415 ndr_print_ptr(ndr, "info", r->out.info);
19417 ndr_print_ptr(ndr, "info", *r->out.info);
19419 if (*r->out.info) {
19420 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19422 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19424 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19425 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19426 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19434 ndr_print_ptr(ndr, "needed", r->out.needed);
19436 ndr_print_uint32(ndr, "needed", *r->out.needed);
19438 ndr_print_WERROR(ndr, "result", r->out.result);
19444 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19446 if (flags & NDR_IN) {
19448 if (flags & NDR_OUT) {
19449 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19451 return NDR_ERR_SUCCESS;
19454 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19456 if (flags & NDR_IN) {
19458 if (flags & NDR_OUT) {
19459 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19461 return NDR_ERR_SUCCESS;
19464 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19466 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19468 if (flags & NDR_SET_VALUES) {
19469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19471 if (flags & NDR_IN) {
19472 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19476 if (flags & NDR_OUT) {
19477 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19479 ndr_print_WERROR(ndr, "result", r->out.result);
19485 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19487 if (flags & NDR_IN) {
19488 if (r->in.handle == NULL) {
19489 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19491 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19493 if (flags & NDR_OUT) {
19494 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19496 return NDR_ERR_SUCCESS;
19499 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19501 TALLOC_CTX *_mem_save_handle_0;
19502 if (flags & NDR_IN) {
19503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19504 NDR_PULL_ALLOC(ndr, r->in.handle);
19506 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19507 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19508 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19511 if (flags & NDR_OUT) {
19512 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19514 return NDR_ERR_SUCCESS;
19517 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19519 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19521 if (flags & NDR_SET_VALUES) {
19522 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19524 if (flags & NDR_IN) {
19525 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19527 ndr_print_ptr(ndr, "handle", r->in.handle);
19529 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19533 if (flags & NDR_OUT) {
19534 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19536 ndr_print_WERROR(ndr, "result", r->out.result);
19542 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19544 if (flags & NDR_IN) {
19545 if (r->in.handle == NULL) {
19546 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19548 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19549 if (r->in.info_ctr == NULL) {
19550 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19552 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19553 if (r->in.devmode_ctr == NULL) {
19554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19556 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19557 if (r->in.secdesc_ctr == NULL) {
19558 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19560 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19561 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19563 if (flags & NDR_OUT) {
19564 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19566 return NDR_ERR_SUCCESS;
19569 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19571 TALLOC_CTX *_mem_save_handle_0;
19572 TALLOC_CTX *_mem_save_info_ctr_0;
19573 TALLOC_CTX *_mem_save_devmode_ctr_0;
19574 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19575 if (flags & NDR_IN) {
19576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19577 NDR_PULL_ALLOC(ndr, r->in.handle);
19579 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19580 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19581 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19583 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19584 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19586 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19587 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19588 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19590 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19591 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19593 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19594 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19595 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19597 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19598 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19600 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19601 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19602 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19604 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19606 if (flags & NDR_OUT) {
19607 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19609 return NDR_ERR_SUCCESS;
19612 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19614 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19616 if (flags & NDR_SET_VALUES) {
19617 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19619 if (flags & NDR_IN) {
19620 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19622 ndr_print_ptr(ndr, "handle", r->in.handle);
19624 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19626 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19628 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19630 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19632 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19634 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19636 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19638 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19641 if (flags & NDR_OUT) {
19642 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19644 ndr_print_WERROR(ndr, "result", r->out.result);
19650 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19652 if (flags & NDR_IN) {
19653 if (r->in.handle == NULL) {
19654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19656 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19658 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19659 if (r->in.buffer) {
19660 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19664 if (flags & NDR_OUT) {
19665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19668 struct ndr_push *_ndr_info;
19669 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19670 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19671 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19672 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19675 if (r->out.needed == NULL) {
19676 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19679 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19681 return NDR_ERR_SUCCESS;
19684 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19686 uint32_t _ptr_buffer;
19687 uint32_t _ptr_info;
19688 TALLOC_CTX *_mem_save_handle_0;
19689 TALLOC_CTX *_mem_save_buffer_0;
19690 TALLOC_CTX *_mem_save_info_0;
19691 TALLOC_CTX *_mem_save_needed_0;
19692 if (flags & NDR_IN) {
19693 ZERO_STRUCT(r->out);
19695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19696 NDR_PULL_ALLOC(ndr, r->in.handle);
19698 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19699 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19700 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19705 NDR_PULL_ALLOC(ndr, r->in.buffer);
19707 r->in.buffer = NULL;
19709 if (r->in.buffer) {
19710 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19711 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19712 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19716 NDR_PULL_ALLOC(ndr, r->out.needed);
19717 ZERO_STRUCTP(r->out.needed);
19719 if (flags & NDR_OUT) {
19720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19722 NDR_PULL_ALLOC(ndr, r->out.info);
19724 r->out.info = NULL;
19727 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19728 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19730 struct ndr_pull *_ndr_info;
19731 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19732 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19733 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19734 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19739 NDR_PULL_ALLOC(ndr, r->out.needed);
19741 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19742 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19745 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19747 return NDR_ERR_SUCCESS;
19750 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19752 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19754 if (flags & NDR_SET_VALUES) {
19755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19757 if (flags & NDR_IN) {
19758 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19760 ndr_print_ptr(ndr, "handle", r->in.handle);
19762 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19764 ndr_print_uint32(ndr, "level", r->in.level);
19765 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19767 if (r->in.buffer) {
19768 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19771 ndr_print_uint32(ndr, "offered", r->in.offered);
19774 if (flags & NDR_OUT) {
19775 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19777 ndr_print_ptr(ndr, "info", r->out.info);
19780 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19781 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19784 ndr_print_ptr(ndr, "needed", r->out.needed);
19786 ndr_print_uint32(ndr, "needed", *r->out.needed);
19788 ndr_print_WERROR(ndr, "result", r->out.result);
19794 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19796 if (flags & NDR_IN) {
19797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19798 if (r->in.servername) {
19799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19802 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19804 if (r->in.info_ctr == NULL) {
19805 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19807 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19809 if (flags & NDR_OUT) {
19810 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19812 return NDR_ERR_SUCCESS;
19815 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19817 uint32_t _ptr_servername;
19818 TALLOC_CTX *_mem_save_servername_0;
19819 TALLOC_CTX *_mem_save_info_ctr_0;
19820 if (flags & NDR_IN) {
19821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19822 if (_ptr_servername) {
19823 NDR_PULL_ALLOC(ndr, r->in.servername);
19825 r->in.servername = NULL;
19827 if (r->in.servername) {
19828 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19829 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19832 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19833 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));
19835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19840 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19842 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19843 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19844 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19847 if (flags & NDR_OUT) {
19848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19850 return NDR_ERR_SUCCESS;
19853 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19855 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19857 if (flags & NDR_SET_VALUES) {
19858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19860 if (flags & NDR_IN) {
19861 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19863 ndr_print_ptr(ndr, "servername", r->in.servername);
19865 if (r->in.servername) {
19866 ndr_print_string(ndr, "servername", r->in.servername);
19869 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19871 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19875 if (flags & NDR_OUT) {
19876 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19878 ndr_print_WERROR(ndr, "result", r->out.result);
19884 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19886 if (flags & NDR_IN) {
19887 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19888 if (r->in.server) {
19889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19892 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19895 if (r->in.environment) {
19896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19899 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19902 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19903 if (r->in.buffer) {
19904 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19908 if (flags & NDR_OUT) {
19909 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19911 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19913 if (r->out.needed == NULL) {
19914 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19917 if (r->out.count == NULL) {
19918 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19921 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19923 return NDR_ERR_SUCCESS;
19926 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19928 uint32_t _ptr_server;
19929 uint32_t _ptr_environment;
19930 uint32_t _ptr_buffer;
19931 uint32_t _ptr_info;
19932 TALLOC_CTX *_mem_save_server_0;
19933 TALLOC_CTX *_mem_save_environment_0;
19934 TALLOC_CTX *_mem_save_buffer_0;
19935 TALLOC_CTX *_mem_save_info_0;
19936 TALLOC_CTX *_mem_save_needed_0;
19937 TALLOC_CTX *_mem_save_count_0;
19938 if (flags & NDR_IN) {
19939 ZERO_STRUCT(r->out);
19941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19943 NDR_PULL_ALLOC(ndr, r->in.server);
19945 r->in.server = NULL;
19947 if (r->in.server) {
19948 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19949 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19950 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19951 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19952 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19953 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));
19955 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19956 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19960 if (_ptr_environment) {
19961 NDR_PULL_ALLOC(ndr, r->in.environment);
19963 r->in.environment = NULL;
19965 if (r->in.environment) {
19966 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19967 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19968 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19969 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19970 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19971 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));
19973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19978 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19980 NDR_PULL_ALLOC(ndr, r->in.buffer);
19982 r->in.buffer = NULL;
19984 if (r->in.buffer) {
19985 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19986 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19987 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19991 NDR_PULL_ALLOC(ndr, r->out.needed);
19992 ZERO_STRUCTP(r->out.needed);
19993 NDR_PULL_ALLOC(ndr, r->out.count);
19994 ZERO_STRUCTP(r->out.count);
19996 if (flags & NDR_OUT) {
19997 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19999 NDR_PULL_ALLOC(ndr, r->out.info);
20001 r->out.info = NULL;
20004 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20005 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20006 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20010 NDR_PULL_ALLOC(ndr, r->out.needed);
20012 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20013 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20016 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20017 NDR_PULL_ALLOC(ndr, r->out.count);
20019 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20020 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20023 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20025 return NDR_ERR_SUCCESS;
20028 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
20030 uint32_t cntr_info_0;
20031 if (flags & NDR_IN) {
20032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20035 if (flags & NDR_OUT) {
20036 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20037 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20038 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20040 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20041 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20044 return NDR_ERR_SUCCESS;
20047 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
20049 uint32_t cntr_info_0;
20050 TALLOC_CTX *_mem_save_info_0;
20051 if (flags & NDR_IN) {
20052 ZERO_STRUCT(r->out);
20054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20057 if (flags & NDR_OUT) {
20058 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20059 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20060 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20061 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20062 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20063 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20065 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20066 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20070 return NDR_ERR_SUCCESS;
20073 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
20075 uint32_t cntr_info_2;
20076 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
20078 if (flags & NDR_SET_VALUES) {
20079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20081 if (flags & NDR_IN) {
20082 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
20084 ndr_print_ptr(ndr, "server", r->in.server);
20086 if (r->in.server) {
20087 ndr_print_string(ndr, "server", r->in.server);
20090 ndr_print_ptr(ndr, "environment", r->in.environment);
20092 if (r->in.environment) {
20093 ndr_print_string(ndr, "environment", r->in.environment);
20096 ndr_print_uint32(ndr, "level", r->in.level);
20097 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20099 if (r->in.buffer) {
20100 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20103 ndr_print_uint32(ndr, "offered", r->in.offered);
20106 if (flags & NDR_OUT) {
20107 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
20109 ndr_print_ptr(ndr, "count", r->out.count);
20111 ndr_print_uint32(ndr, "count", *r->out.count);
20113 ndr_print_ptr(ndr, "info", r->out.info);
20115 ndr_print_ptr(ndr, "info", *r->out.info);
20117 if (*r->out.info) {
20118 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20120 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20122 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20123 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20124 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20132 ndr_print_ptr(ndr, "needed", r->out.needed);
20134 ndr_print_uint32(ndr, "needed", *r->out.needed);
20136 ndr_print_WERROR(ndr, "result", r->out.result);
20142 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
20144 if (flags & NDR_IN) {
20146 if (flags & NDR_OUT) {
20147 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20149 return NDR_ERR_SUCCESS;
20152 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
20154 if (flags & NDR_IN) {
20156 if (flags & NDR_OUT) {
20157 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20159 return NDR_ERR_SUCCESS;
20162 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
20164 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
20166 if (flags & NDR_SET_VALUES) {
20167 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20169 if (flags & NDR_IN) {
20170 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
20174 if (flags & NDR_OUT) {
20175 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
20177 ndr_print_WERROR(ndr, "result", r->out.result);
20183 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20185 if (flags & NDR_IN) {
20186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20187 if (r->in.server) {
20188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20191 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20194 if (r->in.environment) {
20195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20198 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20201 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20202 if (r->in.buffer) {
20203 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20207 if (flags & NDR_OUT) {
20208 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20211 struct ndr_push *_ndr_info;
20212 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20213 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20214 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20215 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20218 if (r->out.needed == NULL) {
20219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20222 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20224 return NDR_ERR_SUCCESS;
20227 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20229 uint32_t _ptr_server;
20230 uint32_t _ptr_environment;
20231 uint32_t _ptr_buffer;
20232 uint32_t _ptr_info;
20233 TALLOC_CTX *_mem_save_server_0;
20234 TALLOC_CTX *_mem_save_environment_0;
20235 TALLOC_CTX *_mem_save_buffer_0;
20236 TALLOC_CTX *_mem_save_info_0;
20237 TALLOC_CTX *_mem_save_needed_0;
20238 if (flags & NDR_IN) {
20239 ZERO_STRUCT(r->out);
20241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20243 NDR_PULL_ALLOC(ndr, r->in.server);
20245 r->in.server = NULL;
20247 if (r->in.server) {
20248 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20249 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20250 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20251 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20252 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20253 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));
20255 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20256 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20260 if (_ptr_environment) {
20261 NDR_PULL_ALLOC(ndr, r->in.environment);
20263 r->in.environment = NULL;
20265 if (r->in.environment) {
20266 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20267 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20268 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20269 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20270 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20271 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));
20273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20280 NDR_PULL_ALLOC(ndr, r->in.buffer);
20282 r->in.buffer = NULL;
20284 if (r->in.buffer) {
20285 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20286 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20287 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20291 NDR_PULL_ALLOC(ndr, r->out.needed);
20292 ZERO_STRUCTP(r->out.needed);
20294 if (flags & NDR_OUT) {
20295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20297 NDR_PULL_ALLOC(ndr, r->out.info);
20299 r->out.info = NULL;
20302 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20303 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20305 struct ndr_pull *_ndr_info;
20306 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20307 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20308 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20309 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20314 NDR_PULL_ALLOC(ndr, r->out.needed);
20316 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20317 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20320 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20322 return NDR_ERR_SUCCESS;
20325 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20327 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20329 if (flags & NDR_SET_VALUES) {
20330 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20332 if (flags & NDR_IN) {
20333 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20335 ndr_print_ptr(ndr, "server", r->in.server);
20337 if (r->in.server) {
20338 ndr_print_string(ndr, "server", r->in.server);
20341 ndr_print_ptr(ndr, "environment", r->in.environment);
20343 if (r->in.environment) {
20344 ndr_print_string(ndr, "environment", r->in.environment);
20347 ndr_print_uint32(ndr, "level", r->in.level);
20348 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20350 if (r->in.buffer) {
20351 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20354 ndr_print_uint32(ndr, "offered", r->in.offered);
20357 if (flags & NDR_OUT) {
20358 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20360 ndr_print_ptr(ndr, "info", r->out.info);
20363 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20364 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20367 ndr_print_ptr(ndr, "needed", r->out.needed);
20369 ndr_print_uint32(ndr, "needed", *r->out.needed);
20371 ndr_print_WERROR(ndr, "result", r->out.result);
20377 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20379 if (flags & NDR_IN) {
20380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20381 if (r->in.server) {
20382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20390 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20396 if (flags & NDR_OUT) {
20397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20399 return NDR_ERR_SUCCESS;
20402 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20404 uint32_t _ptr_server;
20405 TALLOC_CTX *_mem_save_server_0;
20406 if (flags & NDR_IN) {
20407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20409 NDR_PULL_ALLOC(ndr, r->in.server);
20411 r->in.server = NULL;
20413 if (r->in.server) {
20414 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20415 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20416 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20417 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20418 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20419 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));
20421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20425 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20426 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20427 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20428 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));
20430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20432 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20433 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20434 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20435 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));
20437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20440 if (flags & NDR_OUT) {
20441 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20443 return NDR_ERR_SUCCESS;
20446 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20448 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20450 if (flags & NDR_SET_VALUES) {
20451 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20453 if (flags & NDR_IN) {
20454 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20456 ndr_print_ptr(ndr, "server", r->in.server);
20458 if (r->in.server) {
20459 ndr_print_string(ndr, "server", r->in.server);
20462 ndr_print_string(ndr, "architecture", r->in.architecture);
20463 ndr_print_string(ndr, "driver", r->in.driver);
20466 if (flags & NDR_OUT) {
20467 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20469 ndr_print_WERROR(ndr, "result", r->out.result);
20475 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20477 if (flags & NDR_IN) {
20478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20479 if (r->in.server) {
20480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20492 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));
20493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20496 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));
20498 if (flags & NDR_OUT) {
20499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20501 return NDR_ERR_SUCCESS;
20504 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20506 uint32_t _ptr_server;
20507 TALLOC_CTX *_mem_save_server_0;
20508 if (flags & NDR_IN) {
20509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20511 NDR_PULL_ALLOC(ndr, r->in.server);
20513 r->in.server = NULL;
20515 if (r->in.server) {
20516 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20517 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20518 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20519 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20520 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20521 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));
20523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20528 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20529 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20530 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));
20532 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20534 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20535 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20536 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20537 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));
20539 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20540 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));
20541 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20542 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20543 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20544 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));
20546 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20547 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));
20549 if (flags & NDR_OUT) {
20550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20552 return NDR_ERR_SUCCESS;
20555 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20557 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20559 if (flags & NDR_SET_VALUES) {
20560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20562 if (flags & NDR_IN) {
20563 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20565 ndr_print_ptr(ndr, "server", r->in.server);
20567 if (r->in.server) {
20568 ndr_print_string(ndr, "server", r->in.server);
20571 ndr_print_string(ndr, "architecture", r->in.architecture);
20572 ndr_print_string(ndr, "path_name", r->in.path_name);
20573 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20576 if (flags & NDR_OUT) {
20577 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20579 ndr_print_WERROR(ndr, "result", r->out.result);
20585 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20587 if (flags & NDR_IN) {
20588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20589 if (r->in.servername) {
20590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20595 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20596 if (r->in.environment) {
20597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20600 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20604 if (r->in.buffer) {
20605 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20609 if (flags & NDR_OUT) {
20610 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20612 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20614 if (r->out.needed == NULL) {
20615 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20618 if (r->out.count == NULL) {
20619 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20622 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20624 return NDR_ERR_SUCCESS;
20627 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20629 uint32_t _ptr_servername;
20630 uint32_t _ptr_environment;
20631 uint32_t _ptr_buffer;
20632 uint32_t _ptr_info;
20633 TALLOC_CTX *_mem_save_servername_0;
20634 TALLOC_CTX *_mem_save_environment_0;
20635 TALLOC_CTX *_mem_save_buffer_0;
20636 TALLOC_CTX *_mem_save_info_0;
20637 TALLOC_CTX *_mem_save_needed_0;
20638 TALLOC_CTX *_mem_save_count_0;
20639 if (flags & NDR_IN) {
20640 ZERO_STRUCT(r->out);
20642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20643 if (_ptr_servername) {
20644 NDR_PULL_ALLOC(ndr, r->in.servername);
20646 r->in.servername = NULL;
20648 if (r->in.servername) {
20649 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20650 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20651 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20652 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20653 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20654 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));
20656 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20657 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20660 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20661 if (_ptr_environment) {
20662 NDR_PULL_ALLOC(ndr, r->in.environment);
20664 r->in.environment = NULL;
20666 if (r->in.environment) {
20667 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20668 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20669 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20670 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20671 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20672 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));
20674 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20675 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20681 NDR_PULL_ALLOC(ndr, r->in.buffer);
20683 r->in.buffer = NULL;
20685 if (r->in.buffer) {
20686 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20687 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20688 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20692 NDR_PULL_ALLOC(ndr, r->out.needed);
20693 ZERO_STRUCTP(r->out.needed);
20694 NDR_PULL_ALLOC(ndr, r->out.count);
20695 ZERO_STRUCTP(r->out.count);
20697 if (flags & NDR_OUT) {
20698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20700 NDR_PULL_ALLOC(ndr, r->out.info);
20702 r->out.info = NULL;
20705 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20706 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20707 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20710 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20711 NDR_PULL_ALLOC(ndr, r->out.needed);
20713 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20714 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20717 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20718 NDR_PULL_ALLOC(ndr, r->out.count);
20720 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20721 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20724 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20726 return NDR_ERR_SUCCESS;
20729 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20731 uint32_t cntr_info_0;
20732 if (flags & NDR_IN) {
20733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20736 if (flags & NDR_OUT) {
20737 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20738 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20739 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20741 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20742 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20745 return NDR_ERR_SUCCESS;
20748 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20750 uint32_t cntr_info_0;
20751 TALLOC_CTX *_mem_save_info_0;
20752 if (flags & NDR_IN) {
20753 ZERO_STRUCT(r->out);
20755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20758 if (flags & NDR_OUT) {
20759 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20760 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20761 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20762 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20763 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20764 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20766 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20767 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20771 return NDR_ERR_SUCCESS;
20774 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20776 uint32_t cntr_info_2;
20777 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20779 if (flags & NDR_SET_VALUES) {
20780 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20782 if (flags & NDR_IN) {
20783 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20785 ndr_print_ptr(ndr, "servername", r->in.servername);
20787 if (r->in.servername) {
20788 ndr_print_string(ndr, "servername", r->in.servername);
20791 ndr_print_ptr(ndr, "environment", r->in.environment);
20793 if (r->in.environment) {
20794 ndr_print_string(ndr, "environment", r->in.environment);
20797 ndr_print_uint32(ndr, "level", r->in.level);
20798 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20800 if (r->in.buffer) {
20801 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20804 ndr_print_uint32(ndr, "offered", r->in.offered);
20807 if (flags & NDR_OUT) {
20808 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20810 ndr_print_ptr(ndr, "count", r->out.count);
20812 ndr_print_uint32(ndr, "count", *r->out.count);
20814 ndr_print_ptr(ndr, "info", r->out.info);
20816 ndr_print_ptr(ndr, "info", *r->out.info);
20818 if (*r->out.info) {
20819 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20821 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20823 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20824 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20825 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20833 ndr_print_ptr(ndr, "needed", r->out.needed);
20835 ndr_print_uint32(ndr, "needed", *r->out.needed);
20837 ndr_print_WERROR(ndr, "result", r->out.result);
20843 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20845 if (flags & NDR_IN) {
20846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20847 if (r->in.server) {
20848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20851 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20854 if (r->in.environment) {
20855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20861 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20862 if (r->in.buffer) {
20863 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20867 if (flags & NDR_OUT) {
20868 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20871 struct ndr_push *_ndr_info;
20872 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20873 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20874 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20875 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20878 if (r->out.needed == NULL) {
20879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20882 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20884 return NDR_ERR_SUCCESS;
20887 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20889 uint32_t _ptr_server;
20890 uint32_t _ptr_environment;
20891 uint32_t _ptr_buffer;
20892 uint32_t _ptr_info;
20893 TALLOC_CTX *_mem_save_server_0;
20894 TALLOC_CTX *_mem_save_environment_0;
20895 TALLOC_CTX *_mem_save_buffer_0;
20896 TALLOC_CTX *_mem_save_info_0;
20897 TALLOC_CTX *_mem_save_needed_0;
20898 if (flags & NDR_IN) {
20899 ZERO_STRUCT(r->out);
20901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20903 NDR_PULL_ALLOC(ndr, r->in.server);
20905 r->in.server = NULL;
20907 if (r->in.server) {
20908 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20909 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20910 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20911 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20912 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20913 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));
20915 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20916 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20920 if (_ptr_environment) {
20921 NDR_PULL_ALLOC(ndr, r->in.environment);
20923 r->in.environment = NULL;
20925 if (r->in.environment) {
20926 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20927 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20928 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20929 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20930 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20931 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));
20933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20940 NDR_PULL_ALLOC(ndr, r->in.buffer);
20942 r->in.buffer = NULL;
20944 if (r->in.buffer) {
20945 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20946 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20947 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20951 NDR_PULL_ALLOC(ndr, r->out.needed);
20952 ZERO_STRUCTP(r->out.needed);
20954 if (flags & NDR_OUT) {
20955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20957 NDR_PULL_ALLOC(ndr, r->out.info);
20959 r->out.info = NULL;
20962 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20963 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20965 struct ndr_pull *_ndr_info;
20966 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20967 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20968 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20969 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20973 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20974 NDR_PULL_ALLOC(ndr, r->out.needed);
20976 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20977 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20980 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20982 return NDR_ERR_SUCCESS;
20985 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20987 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20989 if (flags & NDR_SET_VALUES) {
20990 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20992 if (flags & NDR_IN) {
20993 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20995 ndr_print_ptr(ndr, "server", r->in.server);
20997 if (r->in.server) {
20998 ndr_print_string(ndr, "server", r->in.server);
21001 ndr_print_ptr(ndr, "environment", r->in.environment);
21003 if (r->in.environment) {
21004 ndr_print_string(ndr, "environment", r->in.environment);
21007 ndr_print_uint32(ndr, "level", r->in.level);
21008 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21010 if (r->in.buffer) {
21011 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21014 ndr_print_uint32(ndr, "offered", r->in.offered);
21017 if (flags & NDR_OUT) {
21018 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
21020 ndr_print_ptr(ndr, "info", r->out.info);
21023 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21024 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
21027 ndr_print_ptr(ndr, "needed", r->out.needed);
21029 ndr_print_uint32(ndr, "needed", *r->out.needed);
21031 ndr_print_WERROR(ndr, "result", r->out.result);
21037 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
21039 if (flags & NDR_IN) {
21040 if (r->in.handle == NULL) {
21041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21043 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21045 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21046 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21048 if (flags & NDR_OUT) {
21049 if (r->out.job_id == NULL) {
21050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
21053 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21055 return NDR_ERR_SUCCESS;
21058 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
21060 TALLOC_CTX *_mem_save_handle_0;
21061 TALLOC_CTX *_mem_save_job_id_0;
21062 if (flags & NDR_IN) {
21063 ZERO_STRUCT(r->out);
21065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21066 NDR_PULL_ALLOC(ndr, r->in.handle);
21068 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21069 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21070 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21073 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21074 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21075 NDR_PULL_ALLOC(ndr, r->out.job_id);
21076 ZERO_STRUCTP(r->out.job_id);
21078 if (flags & NDR_OUT) {
21079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21080 NDR_PULL_ALLOC(ndr, r->out.job_id);
21082 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
21083 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
21084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
21085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
21086 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21088 return NDR_ERR_SUCCESS;
21091 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
21093 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
21095 if (flags & NDR_SET_VALUES) {
21096 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21098 if (flags & NDR_IN) {
21099 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
21101 ndr_print_ptr(ndr, "handle", r->in.handle);
21103 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21105 ndr_print_uint32(ndr, "level", r->in.level);
21106 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21107 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
21110 if (flags & NDR_OUT) {
21111 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
21113 ndr_print_ptr(ndr, "job_id", r->out.job_id);
21115 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
21117 ndr_print_WERROR(ndr, "result", r->out.result);
21123 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
21125 if (flags & NDR_IN) {
21126 if (r->in.handle == NULL) {
21127 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21129 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21131 if (flags & NDR_OUT) {
21132 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21134 return NDR_ERR_SUCCESS;
21137 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
21139 TALLOC_CTX *_mem_save_handle_0;
21140 if (flags & NDR_IN) {
21141 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21142 NDR_PULL_ALLOC(ndr, r->in.handle);
21144 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21145 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21146 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21149 if (flags & NDR_OUT) {
21150 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21152 return NDR_ERR_SUCCESS;
21155 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
21157 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
21159 if (flags & NDR_SET_VALUES) {
21160 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21162 if (flags & NDR_IN) {
21163 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
21165 ndr_print_ptr(ndr, "handle", r->in.handle);
21167 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21171 if (flags & NDR_OUT) {
21172 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
21174 ndr_print_WERROR(ndr, "result", r->out.result);
21180 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
21182 if (flags & NDR_IN) {
21183 if (r->in.handle == NULL) {
21184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21186 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21187 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
21190 if (flags & NDR_OUT) {
21191 if (r->out.num_written == NULL) {
21192 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
21195 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21197 return NDR_ERR_SUCCESS;
21200 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
21202 TALLOC_CTX *_mem_save_handle_0;
21203 TALLOC_CTX *_mem_save_num_written_0;
21204 if (flags & NDR_IN) {
21205 ZERO_STRUCT(r->out);
21207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21208 NDR_PULL_ALLOC(ndr, r->in.handle);
21210 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21211 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21212 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21214 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21216 NDR_PULL_ALLOC(ndr, r->out.num_written);
21217 ZERO_STRUCTP(r->out.num_written);
21219 if (flags & NDR_OUT) {
21220 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21221 NDR_PULL_ALLOC(ndr, r->out.num_written);
21223 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21224 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21229 return NDR_ERR_SUCCESS;
21232 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21234 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21236 if (flags & NDR_SET_VALUES) {
21237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21239 if (flags & NDR_IN) {
21240 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21242 ndr_print_ptr(ndr, "handle", r->in.handle);
21244 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21246 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21247 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21250 if (flags & NDR_OUT) {
21251 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21253 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21255 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21257 ndr_print_WERROR(ndr, "result", r->out.result);
21263 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
21265 if (flags & NDR_IN) {
21266 if (r->in.handle == NULL) {
21267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21269 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21271 if (flags & NDR_OUT) {
21272 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21274 return NDR_ERR_SUCCESS;
21277 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
21279 TALLOC_CTX *_mem_save_handle_0;
21280 if (flags & NDR_IN) {
21281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21282 NDR_PULL_ALLOC(ndr, r->in.handle);
21284 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21285 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21286 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21289 if (flags & NDR_OUT) {
21290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21292 return NDR_ERR_SUCCESS;
21295 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21297 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
21299 if (flags & NDR_SET_VALUES) {
21300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21302 if (flags & NDR_IN) {
21303 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
21305 ndr_print_ptr(ndr, "handle", r->in.handle);
21307 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21311 if (flags & NDR_OUT) {
21312 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
21314 ndr_print_WERROR(ndr, "result", r->out.result);
21320 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
21322 if (flags & NDR_IN) {
21323 if (r->in.handle == NULL) {
21324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21326 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21328 if (flags & NDR_OUT) {
21329 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21331 return NDR_ERR_SUCCESS;
21334 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21336 TALLOC_CTX *_mem_save_handle_0;
21337 if (flags & NDR_IN) {
21338 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21339 NDR_PULL_ALLOC(ndr, r->in.handle);
21341 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21342 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21343 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21346 if (flags & NDR_OUT) {
21347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21349 return NDR_ERR_SUCCESS;
21352 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21354 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21356 if (flags & NDR_SET_VALUES) {
21357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21359 if (flags & NDR_IN) {
21360 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21362 ndr_print_ptr(ndr, "handle", r->in.handle);
21364 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21368 if (flags & NDR_OUT) {
21369 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21371 ndr_print_WERROR(ndr, "result", r->out.result);
21377 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21379 if (flags & NDR_IN) {
21380 if (r->in.handle == NULL) {
21381 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21383 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21386 if (flags & NDR_OUT) {
21387 if (r->out.data == NULL) {
21388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21391 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21392 if (r->out._data_size == NULL) {
21393 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21398 return NDR_ERR_SUCCESS;
21401 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21403 TALLOC_CTX *_mem_save_handle_0;
21404 TALLOC_CTX *_mem_save__data_size_0;
21405 if (flags & NDR_IN) {
21406 ZERO_STRUCT(r->out);
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);
21415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21416 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21417 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21418 NDR_PULL_ALLOC(ndr, r->out._data_size);
21419 ZERO_STRUCTP(r->out._data_size);
21421 if (flags & NDR_OUT) {
21422 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21423 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21424 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21426 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21427 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21428 NDR_PULL_ALLOC(ndr, r->out._data_size);
21430 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21431 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21434 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21436 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21439 return NDR_ERR_SUCCESS;
21442 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21444 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21446 if (flags & NDR_SET_VALUES) {
21447 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21449 if (flags & NDR_IN) {
21450 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21452 ndr_print_ptr(ndr, "handle", r->in.handle);
21454 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21456 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21459 if (flags & NDR_OUT) {
21460 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21462 ndr_print_ptr(ndr, "data", r->out.data);
21464 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21466 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21468 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21470 ndr_print_WERROR(ndr, "result", r->out.result);
21476 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21478 if (flags & NDR_IN) {
21479 if (r->in.handle == NULL) {
21480 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21482 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21484 if (flags & NDR_OUT) {
21485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21487 return NDR_ERR_SUCCESS;
21490 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21492 TALLOC_CTX *_mem_save_handle_0;
21493 if (flags & NDR_IN) {
21494 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21495 NDR_PULL_ALLOC(ndr, r->in.handle);
21497 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21498 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21499 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21502 if (flags & NDR_OUT) {
21503 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21505 return NDR_ERR_SUCCESS;
21508 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21510 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21512 if (flags & NDR_SET_VALUES) {
21513 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21515 if (flags & NDR_IN) {
21516 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21518 ndr_print_ptr(ndr, "handle", r->in.handle);
21520 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21524 if (flags & NDR_OUT) {
21525 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21527 ndr_print_WERROR(ndr, "result", r->out.result);
21533 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21535 if (flags & NDR_IN) {
21536 if (r->in.handle == NULL) {
21537 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21539 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21541 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21542 if (r->in.buffer) {
21543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21544 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21548 if (flags & NDR_OUT) {
21549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21550 if (r->out.buffer) {
21551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21552 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21554 if (r->out.needed == NULL) {
21555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21558 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21560 return NDR_ERR_SUCCESS;
21563 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21565 uint32_t _ptr_buffer;
21566 TALLOC_CTX *_mem_save_handle_0;
21567 TALLOC_CTX *_mem_save_buffer_0;
21568 TALLOC_CTX *_mem_save_needed_0;
21569 if (flags & NDR_IN) {
21570 ZERO_STRUCT(r->out);
21572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21573 NDR_PULL_ALLOC(ndr, r->in.handle);
21575 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21576 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21577 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21582 NDR_PULL_ALLOC(ndr, r->in.buffer);
21584 r->in.buffer = NULL;
21586 if (r->in.buffer) {
21587 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21588 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21589 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21590 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21591 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21595 NDR_PULL_ALLOC(ndr, r->out.needed);
21596 ZERO_STRUCTP(r->out.needed);
21597 if (r->in.buffer) {
21598 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21601 if (flags & NDR_OUT) {
21602 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21604 NDR_PULL_ALLOC(ndr, r->out.buffer);
21606 r->out.buffer = NULL;
21608 if (r->out.buffer) {
21609 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21610 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21611 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21612 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21613 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21616 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21617 NDR_PULL_ALLOC(ndr, r->out.needed);
21619 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21620 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21623 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21624 if (r->out.buffer) {
21625 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21628 return NDR_ERR_SUCCESS;
21631 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21633 ndr_print_struct(ndr, name, "spoolss_AddJob");
21635 if (flags & NDR_SET_VALUES) {
21636 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21638 if (flags & NDR_IN) {
21639 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21641 ndr_print_ptr(ndr, "handle", r->in.handle);
21643 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21645 ndr_print_uint32(ndr, "level", r->in.level);
21646 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21648 if (r->in.buffer) {
21649 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21652 ndr_print_uint32(ndr, "offered", r->in.offered);
21655 if (flags & NDR_OUT) {
21656 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21658 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21660 if (r->out.buffer) {
21661 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21664 ndr_print_ptr(ndr, "needed", r->out.needed);
21666 ndr_print_uint32(ndr, "needed", *r->out.needed);
21668 ndr_print_WERROR(ndr, "result", r->out.result);
21674 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21676 if (flags & NDR_IN) {
21677 if (r->in.handle == NULL) {
21678 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21680 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21683 if (flags & NDR_OUT) {
21684 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21686 return NDR_ERR_SUCCESS;
21689 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21691 TALLOC_CTX *_mem_save_handle_0;
21692 if (flags & NDR_IN) {
21693 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21694 NDR_PULL_ALLOC(ndr, r->in.handle);
21696 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21697 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21698 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21702 if (flags & NDR_OUT) {
21703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21705 return NDR_ERR_SUCCESS;
21708 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21710 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21712 if (flags & NDR_SET_VALUES) {
21713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21715 if (flags & NDR_IN) {
21716 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21718 ndr_print_ptr(ndr, "handle", r->in.handle);
21720 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21722 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21725 if (flags & NDR_OUT) {
21726 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21728 ndr_print_WERROR(ndr, "result", r->out.result);
21734 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21736 if (flags & NDR_IN) {
21737 if (r->in.handle == NULL) {
21738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21740 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21744 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));
21745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21747 if (flags & NDR_OUT) {
21748 if (r->out.type == NULL) {
21749 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21751 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
21752 if (r->out.data == NULL) {
21753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21755 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
21756 if (r->out.needed == NULL) {
21757 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21760 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21762 return NDR_ERR_SUCCESS;
21765 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21767 TALLOC_CTX *_mem_save_handle_0;
21768 TALLOC_CTX *_mem_save_type_0;
21769 TALLOC_CTX *_mem_save_data_0;
21770 TALLOC_CTX *_mem_save_needed_0;
21771 if (flags & NDR_IN) {
21772 ZERO_STRUCT(r->out);
21774 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21775 NDR_PULL_ALLOC(ndr, r->in.handle);
21777 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21778 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21779 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21781 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21782 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21783 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21784 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));
21786 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21787 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));
21788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21789 NDR_PULL_ALLOC(ndr, r->out.type);
21790 ZERO_STRUCTP(r->out.type);
21791 NDR_PULL_ALLOC(ndr, r->out.data);
21792 ZERO_STRUCTP(r->out.data);
21793 NDR_PULL_ALLOC(ndr, r->out.needed);
21794 ZERO_STRUCTP(r->out.needed);
21796 if (flags & NDR_OUT) {
21797 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21798 NDR_PULL_ALLOC(ndr, r->out.type);
21800 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21801 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21802 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
21803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21804 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21805 NDR_PULL_ALLOC(ndr, r->out.data);
21807 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21808 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
21809 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
21811 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21812 NDR_PULL_ALLOC(ndr, r->out.needed);
21814 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21815 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21818 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21820 return NDR_ERR_SUCCESS;
21823 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21825 if (flags & NDR_IN) {
21826 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21828 if (flags & NDR_OUT) {
21829 if (r->out.data == NULL) {
21830 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21832 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
21833 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21835 return NDR_ERR_SUCCESS;
21838 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21840 TALLOC_CTX *_mem_save_data_0;
21841 if (flags & NDR_IN) {
21842 ZERO_STRUCT(r->out);
21844 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
21845 NDR_PULL_ALLOC(ndr, r->out.data);
21846 ZERO_STRUCTP(r->out.data);
21848 if (flags & NDR_OUT) {
21849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21850 NDR_PULL_ALLOC(ndr, r->out.data);
21852 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21853 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
21854 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
21855 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
21858 return NDR_ERR_SUCCESS;
21861 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21863 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21865 if (flags & NDR_SET_VALUES) {
21866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21868 if (flags & NDR_IN) {
21869 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21871 ndr_print_ptr(ndr, "handle", r->in.handle);
21873 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21875 ndr_print_string(ndr, "value_name", r->in.value_name);
21876 ndr_print_uint32(ndr, "offered", r->in.offered);
21879 if (flags & NDR_OUT) {
21880 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21882 ndr_print_ptr(ndr, "type", r->out.type);
21884 ndr_print_winreg_Type(ndr, "type", *r->out.type);
21886 ndr_print_ptr(ndr, "data", r->out.data);
21888 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
21889 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
21891 ndr_print_ptr(ndr, "needed", r->out.needed);
21893 ndr_print_uint32(ndr, "needed", *r->out.needed);
21895 ndr_print_WERROR(ndr, "result", r->out.result);
21901 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21903 if (flags & NDR_IN) {
21904 if (r->in.handle == NULL) {
21905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21907 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21911 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));
21912 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21913 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21916 if (flags & NDR_OUT) {
21917 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21919 return NDR_ERR_SUCCESS;
21922 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
21924 if (flags & NDR_IN) {
21925 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21927 if (flags & NDR_OUT) {
21928 if (r->out.data == NULL) {
21929 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21931 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
21932 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21934 return NDR_ERR_SUCCESS;
21937 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21939 TALLOC_CTX *_mem_save_handle_0;
21940 if (flags & NDR_IN) {
21941 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21942 NDR_PULL_ALLOC(ndr, r->in.handle);
21944 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21945 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21946 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21948 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21949 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21950 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21951 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));
21953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21954 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));
21955 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
21957 struct ndr_pull *_ndr_data;
21958 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21959 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21960 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21961 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21965 if (flags & NDR_OUT) {
21966 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21968 return NDR_ERR_SUCCESS;
21971 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21973 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21975 if (flags & NDR_SET_VALUES) {
21976 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21978 if (flags & NDR_IN) {
21979 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21981 ndr_print_ptr(ndr, "handle", r->in.handle);
21983 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21985 ndr_print_string(ndr, "value_name", r->in.value_name);
21986 ndr_print_winreg_Type(ndr, "type", r->in.type);
21987 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21988 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21989 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);
21992 if (flags & NDR_OUT) {
21993 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21995 ndr_print_WERROR(ndr, "result", r->out.result);
22001 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
22003 if (flags & NDR_IN) {
22005 if (flags & NDR_OUT) {
22006 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22008 return NDR_ERR_SUCCESS;
22011 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
22013 if (flags & NDR_IN) {
22015 if (flags & NDR_OUT) {
22016 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22018 return NDR_ERR_SUCCESS;
22021 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
22023 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
22025 if (flags & NDR_SET_VALUES) {
22026 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22028 if (flags & NDR_IN) {
22029 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
22033 if (flags & NDR_OUT) {
22034 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
22036 ndr_print_WERROR(ndr, "result", r->out.result);
22042 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
22044 if (flags & NDR_IN) {
22045 if (r->in.handle == NULL) {
22046 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22048 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22050 if (flags & NDR_OUT) {
22051 if (r->out.handle == NULL) {
22052 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22054 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22055 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22057 return NDR_ERR_SUCCESS;
22060 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
22062 TALLOC_CTX *_mem_save_handle_0;
22063 if (flags & NDR_IN) {
22064 ZERO_STRUCT(r->out);
22066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22067 NDR_PULL_ALLOC(ndr, r->in.handle);
22069 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22070 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22071 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22073 NDR_PULL_ALLOC(ndr, r->out.handle);
22074 *r->out.handle = *r->in.handle;
22076 if (flags & NDR_OUT) {
22077 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22078 NDR_PULL_ALLOC(ndr, r->out.handle);
22080 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22081 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
22082 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22084 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22086 return NDR_ERR_SUCCESS;
22089 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
22091 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
22093 if (flags & NDR_SET_VALUES) {
22094 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22096 if (flags & NDR_IN) {
22097 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
22099 ndr_print_ptr(ndr, "handle", r->in.handle);
22101 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22105 if (flags & NDR_OUT) {
22106 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
22108 ndr_print_ptr(ndr, "handle", r->out.handle);
22110 ndr_print_policy_handle(ndr, "handle", r->out.handle);
22112 ndr_print_WERROR(ndr, "result", r->out.result);
22118 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
22120 if (flags & NDR_IN) {
22121 if (r->in.handle == NULL) {
22122 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22124 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22126 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22127 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22129 if (flags & NDR_OUT) {
22130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22132 return NDR_ERR_SUCCESS;
22135 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
22137 TALLOC_CTX *_mem_save_handle_0;
22138 if (flags & NDR_IN) {
22139 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22140 NDR_PULL_ALLOC(ndr, r->in.handle);
22142 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22143 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22144 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22147 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22148 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22150 if (flags & NDR_OUT) {
22151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22153 return NDR_ERR_SUCCESS;
22156 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
22158 ndr_print_struct(ndr, name, "spoolss_AddForm");
22160 if (flags & NDR_SET_VALUES) {
22161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22163 if (flags & NDR_IN) {
22164 ndr_print_struct(ndr, "in", "spoolss_AddForm");
22166 ndr_print_ptr(ndr, "handle", r->in.handle);
22168 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22170 ndr_print_uint32(ndr, "level", r->in.level);
22171 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22172 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22175 if (flags & NDR_OUT) {
22176 ndr_print_struct(ndr, "out", "spoolss_AddForm");
22178 ndr_print_WERROR(ndr, "result", r->out.result);
22184 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
22186 if (flags & NDR_IN) {
22187 if (r->in.handle == NULL) {
22188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22190 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22194 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));
22196 if (flags & NDR_OUT) {
22197 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22199 return NDR_ERR_SUCCESS;
22202 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22204 TALLOC_CTX *_mem_save_handle_0;
22205 if (flags & NDR_IN) {
22206 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22207 NDR_PULL_ALLOC(ndr, r->in.handle);
22209 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22210 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22211 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22213 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22214 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22215 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22216 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));
22218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22219 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));
22221 if (flags & NDR_OUT) {
22222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22224 return NDR_ERR_SUCCESS;
22227 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
22229 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
22231 if (flags & NDR_SET_VALUES) {
22232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22234 if (flags & NDR_IN) {
22235 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
22237 ndr_print_ptr(ndr, "handle", r->in.handle);
22239 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22241 ndr_print_string(ndr, "form_name", r->in.form_name);
22244 if (flags & NDR_OUT) {
22245 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22247 ndr_print_WERROR(ndr, "result", r->out.result);
22253 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22255 if (flags & NDR_IN) {
22256 if (r->in.handle == NULL) {
22257 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22259 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22263 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));
22264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22266 if (r->in.buffer) {
22267 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22271 if (flags & NDR_OUT) {
22272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22275 struct ndr_push *_ndr_info;
22276 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22277 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22278 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22279 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22282 if (r->out.needed == NULL) {
22283 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22286 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22288 return NDR_ERR_SUCCESS;
22291 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22293 uint32_t _ptr_buffer;
22294 uint32_t _ptr_info;
22295 TALLOC_CTX *_mem_save_handle_0;
22296 TALLOC_CTX *_mem_save_buffer_0;
22297 TALLOC_CTX *_mem_save_info_0;
22298 TALLOC_CTX *_mem_save_needed_0;
22299 if (flags & NDR_IN) {
22300 ZERO_STRUCT(r->out);
22302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22303 NDR_PULL_ALLOC(ndr, r->in.handle);
22305 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22306 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22307 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22309 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22310 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22311 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22312 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));
22314 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22315 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));
22316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22319 NDR_PULL_ALLOC(ndr, r->in.buffer);
22321 r->in.buffer = NULL;
22323 if (r->in.buffer) {
22324 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22325 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22326 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22330 NDR_PULL_ALLOC(ndr, r->out.needed);
22331 ZERO_STRUCTP(r->out.needed);
22333 if (flags & NDR_OUT) {
22334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22336 NDR_PULL_ALLOC(ndr, r->out.info);
22338 r->out.info = NULL;
22341 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22342 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22344 struct ndr_pull *_ndr_info;
22345 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22346 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22347 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22348 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22352 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22353 NDR_PULL_ALLOC(ndr, r->out.needed);
22355 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22356 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22359 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22361 return NDR_ERR_SUCCESS;
22364 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22366 ndr_print_struct(ndr, name, "spoolss_GetForm");
22368 if (flags & NDR_SET_VALUES) {
22369 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22371 if (flags & NDR_IN) {
22372 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22374 ndr_print_ptr(ndr, "handle", r->in.handle);
22376 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22378 ndr_print_string(ndr, "form_name", r->in.form_name);
22379 ndr_print_uint32(ndr, "level", r->in.level);
22380 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22382 if (r->in.buffer) {
22383 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22386 ndr_print_uint32(ndr, "offered", r->in.offered);
22389 if (flags & NDR_OUT) {
22390 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22392 ndr_print_ptr(ndr, "info", r->out.info);
22395 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22396 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22399 ndr_print_ptr(ndr, "needed", r->out.needed);
22401 ndr_print_uint32(ndr, "needed", *r->out.needed);
22403 ndr_print_WERROR(ndr, "result", r->out.result);
22409 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22411 if (flags & NDR_IN) {
22412 if (r->in.handle == NULL) {
22413 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22415 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22419 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));
22420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22421 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22422 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22424 if (flags & NDR_OUT) {
22425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22427 return NDR_ERR_SUCCESS;
22430 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22432 TALLOC_CTX *_mem_save_handle_0;
22433 if (flags & NDR_IN) {
22434 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22435 NDR_PULL_ALLOC(ndr, r->in.handle);
22437 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22438 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22439 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22441 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22442 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22443 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22444 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));
22446 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22447 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));
22448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22449 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22450 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22452 if (flags & NDR_OUT) {
22453 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22455 return NDR_ERR_SUCCESS;
22458 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22460 ndr_print_struct(ndr, name, "spoolss_SetForm");
22462 if (flags & NDR_SET_VALUES) {
22463 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22465 if (flags & NDR_IN) {
22466 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22468 ndr_print_ptr(ndr, "handle", r->in.handle);
22470 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22472 ndr_print_string(ndr, "form_name", r->in.form_name);
22473 ndr_print_uint32(ndr, "level", r->in.level);
22474 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22475 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22478 if (flags & NDR_OUT) {
22479 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22481 ndr_print_WERROR(ndr, "result", r->out.result);
22487 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22489 if (flags & NDR_IN) {
22490 if (r->in.handle == NULL) {
22491 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22493 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22495 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22496 if (r->in.buffer) {
22497 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22501 if (flags & NDR_OUT) {
22502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22504 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22506 if (r->out.needed == NULL) {
22507 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22510 if (r->out.count == NULL) {
22511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22514 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22516 return NDR_ERR_SUCCESS;
22519 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22521 uint32_t _ptr_buffer;
22522 uint32_t _ptr_info;
22523 TALLOC_CTX *_mem_save_handle_0;
22524 TALLOC_CTX *_mem_save_buffer_0;
22525 TALLOC_CTX *_mem_save_info_0;
22526 TALLOC_CTX *_mem_save_needed_0;
22527 TALLOC_CTX *_mem_save_count_0;
22528 if (flags & NDR_IN) {
22529 ZERO_STRUCT(r->out);
22531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22532 NDR_PULL_ALLOC(ndr, r->in.handle);
22534 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22535 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22536 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22541 NDR_PULL_ALLOC(ndr, r->in.buffer);
22543 r->in.buffer = NULL;
22545 if (r->in.buffer) {
22546 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22547 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22548 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22552 NDR_PULL_ALLOC(ndr, r->out.needed);
22553 ZERO_STRUCTP(r->out.needed);
22554 NDR_PULL_ALLOC(ndr, r->out.count);
22555 ZERO_STRUCTP(r->out.count);
22557 if (flags & NDR_OUT) {
22558 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22560 NDR_PULL_ALLOC(ndr, r->out.info);
22562 r->out.info = NULL;
22565 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22566 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22567 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22570 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22571 NDR_PULL_ALLOC(ndr, r->out.needed);
22573 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22574 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22577 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22578 NDR_PULL_ALLOC(ndr, r->out.count);
22580 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22581 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22586 return NDR_ERR_SUCCESS;
22589 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22591 uint32_t cntr_info_0;
22592 if (flags & NDR_IN) {
22593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22596 if (flags & NDR_OUT) {
22597 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22598 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22599 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22601 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22602 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22605 return NDR_ERR_SUCCESS;
22608 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22610 uint32_t cntr_info_0;
22611 TALLOC_CTX *_mem_save_info_0;
22612 if (flags & NDR_IN) {
22613 ZERO_STRUCT(r->out);
22615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22618 if (flags & NDR_OUT) {
22619 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22620 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22621 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22622 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22623 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22624 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22626 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22627 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22631 return NDR_ERR_SUCCESS;
22634 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22636 uint32_t cntr_info_2;
22637 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22639 if (flags & NDR_SET_VALUES) {
22640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22642 if (flags & NDR_IN) {
22643 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22645 ndr_print_ptr(ndr, "handle", r->in.handle);
22647 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22649 ndr_print_uint32(ndr, "level", r->in.level);
22650 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22652 if (r->in.buffer) {
22653 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22656 ndr_print_uint32(ndr, "offered", r->in.offered);
22659 if (flags & NDR_OUT) {
22660 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22662 ndr_print_ptr(ndr, "count", r->out.count);
22664 ndr_print_uint32(ndr, "count", *r->out.count);
22666 ndr_print_ptr(ndr, "info", r->out.info);
22668 ndr_print_ptr(ndr, "info", *r->out.info);
22670 if (*r->out.info) {
22671 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22673 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22675 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22676 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22677 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22685 ndr_print_ptr(ndr, "needed", r->out.needed);
22687 ndr_print_uint32(ndr, "needed", *r->out.needed);
22689 ndr_print_WERROR(ndr, "result", r->out.result);
22695 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22697 if (flags & NDR_IN) {
22698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22699 if (r->in.servername) {
22700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22707 if (r->in.buffer) {
22708 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22712 if (flags & NDR_OUT) {
22713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22715 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22717 if (r->out.needed == NULL) {
22718 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22721 if (r->out.count == NULL) {
22722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22725 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22727 return NDR_ERR_SUCCESS;
22730 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22732 uint32_t _ptr_servername;
22733 uint32_t _ptr_buffer;
22734 uint32_t _ptr_info;
22735 TALLOC_CTX *_mem_save_servername_0;
22736 TALLOC_CTX *_mem_save_buffer_0;
22737 TALLOC_CTX *_mem_save_info_0;
22738 TALLOC_CTX *_mem_save_needed_0;
22739 TALLOC_CTX *_mem_save_count_0;
22740 if (flags & NDR_IN) {
22741 ZERO_STRUCT(r->out);
22743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22744 if (_ptr_servername) {
22745 NDR_PULL_ALLOC(ndr, r->in.servername);
22747 r->in.servername = NULL;
22749 if (r->in.servername) {
22750 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22751 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22752 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22753 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22754 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22755 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));
22757 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22764 NDR_PULL_ALLOC(ndr, r->in.buffer);
22766 r->in.buffer = NULL;
22768 if (r->in.buffer) {
22769 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22770 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22771 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22775 NDR_PULL_ALLOC(ndr, r->out.needed);
22776 ZERO_STRUCTP(r->out.needed);
22777 NDR_PULL_ALLOC(ndr, r->out.count);
22778 ZERO_STRUCTP(r->out.count);
22780 if (flags & NDR_OUT) {
22781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22783 NDR_PULL_ALLOC(ndr, r->out.info);
22785 r->out.info = NULL;
22788 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22789 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22790 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22794 NDR_PULL_ALLOC(ndr, r->out.needed);
22796 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22797 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22800 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22801 NDR_PULL_ALLOC(ndr, r->out.count);
22803 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22804 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22807 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22809 return NDR_ERR_SUCCESS;
22812 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22814 uint32_t cntr_info_0;
22815 if (flags & NDR_IN) {
22816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22819 if (flags & NDR_OUT) {
22820 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22821 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22822 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22824 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22825 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22828 return NDR_ERR_SUCCESS;
22831 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22833 uint32_t cntr_info_0;
22834 TALLOC_CTX *_mem_save_info_0;
22835 if (flags & NDR_IN) {
22836 ZERO_STRUCT(r->out);
22838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22841 if (flags & NDR_OUT) {
22842 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22843 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22844 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22845 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22846 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22847 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22849 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22850 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22854 return NDR_ERR_SUCCESS;
22857 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22859 uint32_t cntr_info_2;
22860 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22862 if (flags & NDR_SET_VALUES) {
22863 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22865 if (flags & NDR_IN) {
22866 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22868 ndr_print_ptr(ndr, "servername", r->in.servername);
22870 if (r->in.servername) {
22871 ndr_print_string(ndr, "servername", r->in.servername);
22874 ndr_print_uint32(ndr, "level", r->in.level);
22875 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22877 if (r->in.buffer) {
22878 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22881 ndr_print_uint32(ndr, "offered", r->in.offered);
22884 if (flags & NDR_OUT) {
22885 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22887 ndr_print_ptr(ndr, "count", r->out.count);
22889 ndr_print_uint32(ndr, "count", *r->out.count);
22891 ndr_print_ptr(ndr, "info", r->out.info);
22893 ndr_print_ptr(ndr, "info", *r->out.info);
22895 if (*r->out.info) {
22896 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22898 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22900 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22901 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22902 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22910 ndr_print_ptr(ndr, "needed", r->out.needed);
22912 ndr_print_uint32(ndr, "needed", *r->out.needed);
22914 ndr_print_WERROR(ndr, "result", r->out.result);
22920 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22922 if (flags & NDR_IN) {
22923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22924 if (r->in.servername) {
22925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22928 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22931 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22932 if (r->in.buffer) {
22933 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22937 if (flags & NDR_OUT) {
22938 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22940 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22942 if (r->out.needed == NULL) {
22943 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22946 if (r->out.count == NULL) {
22947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22950 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22952 return NDR_ERR_SUCCESS;
22955 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22957 uint32_t _ptr_servername;
22958 uint32_t _ptr_buffer;
22959 uint32_t _ptr_info;
22960 TALLOC_CTX *_mem_save_servername_0;
22961 TALLOC_CTX *_mem_save_buffer_0;
22962 TALLOC_CTX *_mem_save_info_0;
22963 TALLOC_CTX *_mem_save_needed_0;
22964 TALLOC_CTX *_mem_save_count_0;
22965 if (flags & NDR_IN) {
22966 ZERO_STRUCT(r->out);
22968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22969 if (_ptr_servername) {
22970 NDR_PULL_ALLOC(ndr, r->in.servername);
22972 r->in.servername = NULL;
22974 if (r->in.servername) {
22975 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22976 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22977 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22978 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22979 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22980 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));
22982 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22983 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22989 NDR_PULL_ALLOC(ndr, r->in.buffer);
22991 r->in.buffer = NULL;
22993 if (r->in.buffer) {
22994 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22995 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22996 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23000 NDR_PULL_ALLOC(ndr, r->out.needed);
23001 ZERO_STRUCTP(r->out.needed);
23002 NDR_PULL_ALLOC(ndr, r->out.count);
23003 ZERO_STRUCTP(r->out.count);
23005 if (flags & NDR_OUT) {
23006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23008 NDR_PULL_ALLOC(ndr, r->out.info);
23010 r->out.info = NULL;
23013 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23014 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23015 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23019 NDR_PULL_ALLOC(ndr, r->out.needed);
23021 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23022 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23026 NDR_PULL_ALLOC(ndr, r->out.count);
23028 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23029 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23032 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23034 return NDR_ERR_SUCCESS;
23037 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
23039 uint32_t cntr_info_0;
23040 if (flags & NDR_IN) {
23041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23044 if (flags & NDR_OUT) {
23045 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23046 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23047 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23049 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23050 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23053 return NDR_ERR_SUCCESS;
23056 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
23058 uint32_t cntr_info_0;
23059 TALLOC_CTX *_mem_save_info_0;
23060 if (flags & NDR_IN) {
23061 ZERO_STRUCT(r->out);
23063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23066 if (flags & NDR_OUT) {
23067 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23068 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23069 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23070 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23071 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23072 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23074 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23075 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23079 return NDR_ERR_SUCCESS;
23082 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
23084 uint32_t cntr_info_2;
23085 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
23087 if (flags & NDR_SET_VALUES) {
23088 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23090 if (flags & NDR_IN) {
23091 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
23093 ndr_print_ptr(ndr, "servername", r->in.servername);
23095 if (r->in.servername) {
23096 ndr_print_string(ndr, "servername", r->in.servername);
23099 ndr_print_uint32(ndr, "level", r->in.level);
23100 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23102 if (r->in.buffer) {
23103 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23106 ndr_print_uint32(ndr, "offered", r->in.offered);
23109 if (flags & NDR_OUT) {
23110 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
23112 ndr_print_ptr(ndr, "count", r->out.count);
23114 ndr_print_uint32(ndr, "count", *r->out.count);
23116 ndr_print_ptr(ndr, "info", r->out.info);
23118 ndr_print_ptr(ndr, "info", *r->out.info);
23120 if (*r->out.info) {
23121 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23123 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23125 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23126 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23127 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23135 ndr_print_ptr(ndr, "needed", r->out.needed);
23137 ndr_print_uint32(ndr, "needed", *r->out.needed);
23139 ndr_print_WERROR(ndr, "result", r->out.result);
23145 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
23147 if (flags & NDR_IN) {
23148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
23149 if (r->in.server_name) {
23150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23153 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));
23155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
23156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23159 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));
23161 if (flags & NDR_OUT) {
23162 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23164 return NDR_ERR_SUCCESS;
23167 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23169 uint32_t _ptr_server_name;
23170 TALLOC_CTX *_mem_save_server_name_0;
23171 if (flags & NDR_IN) {
23172 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23173 if (_ptr_server_name) {
23174 NDR_PULL_ALLOC(ndr, r->in.server_name);
23176 r->in.server_name = NULL;
23178 if (r->in.server_name) {
23179 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23180 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23181 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23182 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23183 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23184 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));
23186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23187 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));
23188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23191 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23192 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23193 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23194 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));
23196 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23197 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));
23199 if (flags & NDR_OUT) {
23200 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23202 return NDR_ERR_SUCCESS;
23205 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
23207 ndr_print_struct(ndr, name, "spoolss_AddPort");
23209 if (flags & NDR_SET_VALUES) {
23210 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23212 if (flags & NDR_IN) {
23213 ndr_print_struct(ndr, "in", "spoolss_AddPort");
23215 ndr_print_ptr(ndr, "server_name", r->in.server_name);
23217 if (r->in.server_name) {
23218 ndr_print_string(ndr, "server_name", r->in.server_name);
23221 ndr_print_uint32(ndr, "unknown", r->in.unknown);
23222 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
23225 if (flags & NDR_OUT) {
23226 ndr_print_struct(ndr, "out", "spoolss_AddPort");
23228 ndr_print_WERROR(ndr, "result", r->out.result);
23234 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
23236 if (flags & NDR_IN) {
23238 if (flags & NDR_OUT) {
23239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23241 return NDR_ERR_SUCCESS;
23244 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23246 if (flags & NDR_IN) {
23248 if (flags & NDR_OUT) {
23249 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23251 return NDR_ERR_SUCCESS;
23254 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23256 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23258 if (flags & NDR_SET_VALUES) {
23259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23261 if (flags & NDR_IN) {
23262 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23266 if (flags & NDR_OUT) {
23267 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23269 ndr_print_WERROR(ndr, "result", r->out.result);
23275 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23277 if (flags & NDR_IN) {
23279 if (flags & NDR_OUT) {
23280 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23282 return NDR_ERR_SUCCESS;
23285 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23287 if (flags & NDR_IN) {
23289 if (flags & NDR_OUT) {
23290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23292 return NDR_ERR_SUCCESS;
23295 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23297 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23299 if (flags & NDR_SET_VALUES) {
23300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23302 if (flags & NDR_IN) {
23303 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23307 if (flags & NDR_OUT) {
23308 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23310 ndr_print_WERROR(ndr, "result", r->out.result);
23316 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23318 if (flags & NDR_IN) {
23320 if (flags & NDR_OUT) {
23321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23323 return NDR_ERR_SUCCESS;
23326 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23328 if (flags & NDR_IN) {
23330 if (flags & NDR_OUT) {
23331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23333 return NDR_ERR_SUCCESS;
23336 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23338 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23340 if (flags & NDR_SET_VALUES) {
23341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23343 if (flags & NDR_IN) {
23344 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23348 if (flags & NDR_OUT) {
23349 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23351 ndr_print_WERROR(ndr, "result", r->out.result);
23357 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23359 if (flags & NDR_IN) {
23361 if (flags & NDR_OUT) {
23362 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23364 return NDR_ERR_SUCCESS;
23367 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23369 if (flags & NDR_IN) {
23371 if (flags & NDR_OUT) {
23372 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23374 return NDR_ERR_SUCCESS;
23377 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23379 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23381 if (flags & NDR_SET_VALUES) {
23382 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23384 if (flags & NDR_IN) {
23385 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23389 if (flags & NDR_OUT) {
23390 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23392 ndr_print_WERROR(ndr, "result", r->out.result);
23398 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23400 if (flags & NDR_IN) {
23402 if (flags & NDR_OUT) {
23403 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23405 return NDR_ERR_SUCCESS;
23408 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23410 if (flags & NDR_IN) {
23412 if (flags & NDR_OUT) {
23413 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23415 return NDR_ERR_SUCCESS;
23418 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23420 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23422 if (flags & NDR_SET_VALUES) {
23423 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23425 if (flags & NDR_IN) {
23426 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23430 if (flags & NDR_OUT) {
23431 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23433 ndr_print_WERROR(ndr, "result", r->out.result);
23439 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23441 if (flags & NDR_IN) {
23443 if (flags & NDR_OUT) {
23444 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23446 return NDR_ERR_SUCCESS;
23449 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23451 if (flags & NDR_IN) {
23453 if (flags & NDR_OUT) {
23454 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23456 return NDR_ERR_SUCCESS;
23459 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23461 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23463 if (flags & NDR_SET_VALUES) {
23464 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23466 if (flags & NDR_IN) {
23467 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23471 if (flags & NDR_OUT) {
23472 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23474 ndr_print_WERROR(ndr, "result", r->out.result);
23480 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23482 if (flags & NDR_IN) {
23484 if (flags & NDR_OUT) {
23485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23487 return NDR_ERR_SUCCESS;
23490 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23492 if (flags & NDR_IN) {
23494 if (flags & NDR_OUT) {
23495 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23497 return NDR_ERR_SUCCESS;
23500 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23502 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23504 if (flags & NDR_SET_VALUES) {
23505 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23507 if (flags & NDR_IN) {
23508 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23512 if (flags & NDR_OUT) {
23513 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23515 ndr_print_WERROR(ndr, "result", r->out.result);
23521 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23523 if (flags & NDR_IN) {
23525 if (flags & NDR_OUT) {
23526 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23528 return NDR_ERR_SUCCESS;
23531 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23533 if (flags & NDR_IN) {
23535 if (flags & NDR_OUT) {
23536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23538 return NDR_ERR_SUCCESS;
23541 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23543 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23545 if (flags & NDR_SET_VALUES) {
23546 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23548 if (flags & NDR_IN) {
23549 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23553 if (flags & NDR_OUT) {
23554 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23556 ndr_print_WERROR(ndr, "result", r->out.result);
23562 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23564 if (flags & NDR_IN) {
23566 if (flags & NDR_OUT) {
23567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23569 return NDR_ERR_SUCCESS;
23572 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23574 if (flags & NDR_IN) {
23576 if (flags & NDR_OUT) {
23577 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23579 return NDR_ERR_SUCCESS;
23582 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23584 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23586 if (flags & NDR_SET_VALUES) {
23587 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23589 if (flags & NDR_IN) {
23590 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23594 if (flags & NDR_OUT) {
23595 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23597 ndr_print_WERROR(ndr, "result", r->out.result);
23603 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23605 if (flags & NDR_IN) {
23607 if (flags & NDR_OUT) {
23608 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23610 return NDR_ERR_SUCCESS;
23613 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23615 if (flags & NDR_IN) {
23617 if (flags & NDR_OUT) {
23618 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23620 return NDR_ERR_SUCCESS;
23623 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23625 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23627 if (flags & NDR_SET_VALUES) {
23628 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23630 if (flags & NDR_IN) {
23631 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23635 if (flags & NDR_OUT) {
23636 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23638 ndr_print_WERROR(ndr, "result", r->out.result);
23644 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23646 if (flags & NDR_IN) {
23648 if (flags & NDR_OUT) {
23649 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23651 return NDR_ERR_SUCCESS;
23654 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23656 if (flags & NDR_IN) {
23658 if (flags & NDR_OUT) {
23659 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23661 return NDR_ERR_SUCCESS;
23664 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23666 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23668 if (flags & NDR_SET_VALUES) {
23669 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23671 if (flags & NDR_IN) {
23672 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23676 if (flags & NDR_OUT) {
23677 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23679 ndr_print_WERROR(ndr, "result", r->out.result);
23685 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23687 if (flags & NDR_IN) {
23689 if (flags & NDR_OUT) {
23690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23692 return NDR_ERR_SUCCESS;
23695 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23697 if (flags & NDR_IN) {
23699 if (flags & NDR_OUT) {
23700 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23702 return NDR_ERR_SUCCESS;
23705 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23707 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23709 if (flags & NDR_SET_VALUES) {
23710 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23712 if (flags & NDR_IN) {
23713 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23717 if (flags & NDR_OUT) {
23718 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23720 ndr_print_WERROR(ndr, "result", r->out.result);
23726 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23728 if (flags & NDR_IN) {
23730 if (flags & NDR_OUT) {
23731 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23733 return NDR_ERR_SUCCESS;
23736 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23738 if (flags & NDR_IN) {
23740 if (flags & NDR_OUT) {
23741 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23743 return NDR_ERR_SUCCESS;
23746 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23748 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23750 if (flags & NDR_SET_VALUES) {
23751 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23753 if (flags & NDR_IN) {
23754 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23758 if (flags & NDR_OUT) {
23759 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23761 ndr_print_WERROR(ndr, "result", r->out.result);
23767 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
23769 if (flags & NDR_IN) {
23770 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23771 if (r->in.servername) {
23772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23775 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
23778 if (r->in.print_processor_name) {
23779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23782 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));
23784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23786 if (r->in.buffer) {
23787 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23791 if (flags & NDR_OUT) {
23792 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23794 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23796 if (r->out.needed == NULL) {
23797 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23800 if (r->out.count == NULL) {
23801 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23804 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23806 return NDR_ERR_SUCCESS;
23809 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
23811 uint32_t _ptr_servername;
23812 uint32_t _ptr_print_processor_name;
23813 uint32_t _ptr_buffer;
23814 uint32_t _ptr_info;
23815 TALLOC_CTX *_mem_save_servername_0;
23816 TALLOC_CTX *_mem_save_print_processor_name_0;
23817 TALLOC_CTX *_mem_save_buffer_0;
23818 TALLOC_CTX *_mem_save_info_0;
23819 TALLOC_CTX *_mem_save_needed_0;
23820 TALLOC_CTX *_mem_save_count_0;
23821 if (flags & NDR_IN) {
23822 ZERO_STRUCT(r->out);
23824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23825 if (_ptr_servername) {
23826 NDR_PULL_ALLOC(ndr, r->in.servername);
23828 r->in.servername = NULL;
23830 if (r->in.servername) {
23831 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23832 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23833 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23834 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23835 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23836 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));
23838 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23839 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
23843 if (_ptr_print_processor_name) {
23844 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
23846 r->in.print_processor_name = NULL;
23848 if (r->in.print_processor_name) {
23849 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23850 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
23851 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
23852 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
23853 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
23854 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));
23856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
23857 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));
23858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
23860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23863 NDR_PULL_ALLOC(ndr, r->in.buffer);
23865 r->in.buffer = NULL;
23867 if (r->in.buffer) {
23868 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23869 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23870 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23874 NDR_PULL_ALLOC(ndr, r->out.needed);
23875 ZERO_STRUCTP(r->out.needed);
23876 NDR_PULL_ALLOC(ndr, r->out.count);
23877 ZERO_STRUCTP(r->out.count);
23879 if (flags & NDR_OUT) {
23880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23882 NDR_PULL_ALLOC(ndr, r->out.info);
23884 r->out.info = NULL;
23887 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23888 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23889 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23893 NDR_PULL_ALLOC(ndr, r->out.needed);
23895 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23896 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23900 NDR_PULL_ALLOC(ndr, r->out.count);
23902 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23903 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23906 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23908 return NDR_ERR_SUCCESS;
23911 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
23913 uint32_t cntr_info_0;
23914 if (flags & NDR_IN) {
23915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23918 if (flags & NDR_OUT) {
23919 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23920 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23921 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23923 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23924 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23927 return NDR_ERR_SUCCESS;
23930 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
23932 uint32_t cntr_info_0;
23933 TALLOC_CTX *_mem_save_info_0;
23934 if (flags & NDR_IN) {
23935 ZERO_STRUCT(r->out);
23937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23940 if (flags & NDR_OUT) {
23941 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23942 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23943 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23944 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23945 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23946 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23948 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23949 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23953 return NDR_ERR_SUCCESS;
23956 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23958 uint32_t cntr_info_2;
23959 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23961 if (flags & NDR_SET_VALUES) {
23962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23964 if (flags & NDR_IN) {
23965 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23967 ndr_print_ptr(ndr, "servername", r->in.servername);
23969 if (r->in.servername) {
23970 ndr_print_string(ndr, "servername", r->in.servername);
23973 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
23975 if (r->in.print_processor_name) {
23976 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
23979 ndr_print_uint32(ndr, "level", r->in.level);
23980 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23982 if (r->in.buffer) {
23983 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23986 ndr_print_uint32(ndr, "offered", r->in.offered);
23989 if (flags & NDR_OUT) {
23990 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23992 ndr_print_ptr(ndr, "count", r->out.count);
23994 ndr_print_uint32(ndr, "count", *r->out.count);
23996 ndr_print_ptr(ndr, "info", r->out.info);
23998 ndr_print_ptr(ndr, "info", *r->out.info);
24000 if (*r->out.info) {
24001 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24003 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24005 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24006 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24007 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24015 ndr_print_ptr(ndr, "needed", r->out.needed);
24017 ndr_print_uint32(ndr, "needed", *r->out.needed);
24019 ndr_print_WERROR(ndr, "result", r->out.result);
24025 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
24027 if (flags & NDR_IN) {
24028 if (r->in.handle == NULL) {
24029 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24031 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
24033 if (r->in.data_type) {
24034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24037 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));
24039 if (r->in.devmode_ctr == NULL) {
24040 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24042 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24044 if (flags & NDR_OUT) {
24045 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24047 return NDR_ERR_SUCCESS;
24050 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
24052 uint32_t _ptr_data_type;
24053 TALLOC_CTX *_mem_save_handle_0;
24054 TALLOC_CTX *_mem_save_data_type_0;
24055 TALLOC_CTX *_mem_save_devmode_ctr_0;
24056 if (flags & NDR_IN) {
24057 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24058 NDR_PULL_ALLOC(ndr, r->in.handle);
24060 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24061 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24062 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
24065 if (_ptr_data_type) {
24066 NDR_PULL_ALLOC(ndr, r->in.data_type);
24068 r->in.data_type = NULL;
24070 if (r->in.data_type) {
24071 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24072 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
24073 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
24074 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
24075 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
24076 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));
24078 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
24079 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));
24080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
24082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24083 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24085 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24086 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24087 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24090 if (flags & NDR_OUT) {
24091 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24093 return NDR_ERR_SUCCESS;
24096 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
24098 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
24100 if (flags & NDR_SET_VALUES) {
24101 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24103 if (flags & NDR_IN) {
24104 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
24106 ndr_print_ptr(ndr, "handle", r->in.handle);
24108 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24110 ndr_print_ptr(ndr, "data_type", r->in.data_type);
24112 if (r->in.data_type) {
24113 ndr_print_string(ndr, "data_type", r->in.data_type);
24116 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24118 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24122 if (flags & NDR_OUT) {
24123 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
24125 ndr_print_WERROR(ndr, "result", r->out.result);
24131 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
24133 if (flags & NDR_IN) {
24134 if (r->in.handle == NULL) {
24135 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24137 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
24139 if (r->in.architecture) {
24140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24143 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24147 if (r->in.buffer) {
24148 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
24152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
24154 if (flags & NDR_OUT) {
24155 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24158 struct ndr_push *_ndr_info;
24159 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24160 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24161 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24162 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24165 if (r->out.needed == NULL) {
24166 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24169 if (r->out.server_major_version == NULL) {
24170 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
24173 if (r->out.server_minor_version == NULL) {
24174 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
24177 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24179 return NDR_ERR_SUCCESS;
24182 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24184 uint32_t _ptr_architecture;
24185 uint32_t _ptr_buffer;
24186 uint32_t _ptr_info;
24187 TALLOC_CTX *_mem_save_handle_0;
24188 TALLOC_CTX *_mem_save_architecture_0;
24189 TALLOC_CTX *_mem_save_buffer_0;
24190 TALLOC_CTX *_mem_save_info_0;
24191 TALLOC_CTX *_mem_save_needed_0;
24192 TALLOC_CTX *_mem_save_server_major_version_0;
24193 TALLOC_CTX *_mem_save_server_minor_version_0;
24194 if (flags & NDR_IN) {
24195 ZERO_STRUCT(r->out);
24197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24198 NDR_PULL_ALLOC(ndr, r->in.handle);
24200 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24201 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
24205 if (_ptr_architecture) {
24206 NDR_PULL_ALLOC(ndr, r->in.architecture);
24208 r->in.architecture = NULL;
24210 if (r->in.architecture) {
24211 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
24212 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24213 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24214 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24215 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24216 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));
24218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
24220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24225 NDR_PULL_ALLOC(ndr, r->in.buffer);
24227 r->in.buffer = NULL;
24229 if (r->in.buffer) {
24230 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24231 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24232 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
24237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
24238 NDR_PULL_ALLOC(ndr, r->out.needed);
24239 ZERO_STRUCTP(r->out.needed);
24240 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24241 ZERO_STRUCTP(r->out.server_major_version);
24242 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24243 ZERO_STRUCTP(r->out.server_minor_version);
24245 if (flags & NDR_OUT) {
24246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24248 NDR_PULL_ALLOC(ndr, r->out.info);
24250 r->out.info = NULL;
24253 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24254 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24256 struct ndr_pull *_ndr_info;
24257 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24258 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24259 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24260 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24264 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24265 NDR_PULL_ALLOC(ndr, r->out.needed);
24267 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24268 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24271 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24272 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24274 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24275 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24278 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24279 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24281 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24282 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24283 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24285 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24287 return NDR_ERR_SUCCESS;
24290 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24292 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24294 if (flags & NDR_SET_VALUES) {
24295 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24297 if (flags & NDR_IN) {
24298 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24300 ndr_print_ptr(ndr, "handle", r->in.handle);
24302 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24304 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24306 if (r->in.architecture) {
24307 ndr_print_string(ndr, "architecture", r->in.architecture);
24310 ndr_print_uint32(ndr, "level", r->in.level);
24311 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24313 if (r->in.buffer) {
24314 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24317 ndr_print_uint32(ndr, "offered", r->in.offered);
24318 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24319 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24322 if (flags & NDR_OUT) {
24323 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24325 ndr_print_ptr(ndr, "info", r->out.info);
24328 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24329 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24332 ndr_print_ptr(ndr, "needed", r->out.needed);
24334 ndr_print_uint32(ndr, "needed", *r->out.needed);
24336 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24338 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24340 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24342 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24344 ndr_print_WERROR(ndr, "result", r->out.result);
24350 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24352 if (flags & NDR_IN) {
24354 if (flags & NDR_OUT) {
24355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24357 return NDR_ERR_SUCCESS;
24360 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24362 if (flags & NDR_IN) {
24364 if (flags & NDR_OUT) {
24365 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24367 return NDR_ERR_SUCCESS;
24370 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24372 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24374 if (flags & NDR_SET_VALUES) {
24375 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24377 if (flags & NDR_IN) {
24378 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24382 if (flags & NDR_OUT) {
24383 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24385 ndr_print_WERROR(ndr, "result", r->out.result);
24391 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24393 if (flags & NDR_IN) {
24395 if (flags & NDR_OUT) {
24396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24398 return NDR_ERR_SUCCESS;
24401 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24403 if (flags & NDR_IN) {
24405 if (flags & NDR_OUT) {
24406 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24408 return NDR_ERR_SUCCESS;
24411 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24413 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24415 if (flags & NDR_SET_VALUES) {
24416 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24418 if (flags & NDR_IN) {
24419 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24423 if (flags & NDR_OUT) {
24424 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24426 ndr_print_WERROR(ndr, "result", r->out.result);
24432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24434 if (flags & NDR_IN) {
24435 if (r->in.handle == NULL) {
24436 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24438 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24440 if (flags & NDR_OUT) {
24441 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24443 return NDR_ERR_SUCCESS;
24446 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24448 TALLOC_CTX *_mem_save_handle_0;
24449 if (flags & NDR_IN) {
24450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24451 NDR_PULL_ALLOC(ndr, r->in.handle);
24453 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24454 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24455 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24458 if (flags & NDR_OUT) {
24459 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24461 return NDR_ERR_SUCCESS;
24464 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24466 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24468 if (flags & NDR_SET_VALUES) {
24469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24471 if (flags & NDR_IN) {
24472 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24474 ndr_print_ptr(ndr, "handle", r->in.handle);
24476 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24480 if (flags & NDR_OUT) {
24481 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24483 ndr_print_WERROR(ndr, "result", r->out.result);
24489 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24491 if (flags & NDR_IN) {
24493 if (flags & NDR_OUT) {
24494 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24496 return NDR_ERR_SUCCESS;
24499 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24501 if (flags & NDR_IN) {
24503 if (flags & NDR_OUT) {
24504 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24506 return NDR_ERR_SUCCESS;
24509 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24511 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24513 if (flags & NDR_SET_VALUES) {
24514 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24516 if (flags & NDR_IN) {
24517 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24521 if (flags & NDR_OUT) {
24522 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24524 ndr_print_WERROR(ndr, "result", r->out.result);
24530 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
24532 if (flags & NDR_IN) {
24533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24536 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));
24537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24538 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24541 if (r->in.buffer) {
24542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24543 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24546 if (flags & NDR_OUT) {
24547 if (r->out.handle == NULL) {
24548 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24550 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24551 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24553 return NDR_ERR_SUCCESS;
24556 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
24558 uint32_t _ptr_buffer;
24559 TALLOC_CTX *_mem_save_buffer_0;
24560 TALLOC_CTX *_mem_save_handle_0;
24561 if (flags & NDR_IN) {
24562 ZERO_STRUCT(r->out);
24564 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24565 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24566 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24567 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));
24569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24570 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));
24571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24572 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24574 if (r->in.bufsize > 512) {
24575 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24579 NDR_PULL_ALLOC(ndr, r->in.buffer);
24581 r->in.buffer = NULL;
24583 if (r->in.buffer) {
24584 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24585 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24586 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24587 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24588 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24591 NDR_PULL_ALLOC(ndr, r->out.handle);
24592 ZERO_STRUCTP(r->out.handle);
24593 if (r->in.buffer) {
24594 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24597 if (flags & NDR_OUT) {
24598 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24599 NDR_PULL_ALLOC(ndr, r->out.handle);
24601 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24602 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24603 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24605 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24607 return NDR_ERR_SUCCESS;
24610 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24612 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24614 if (flags & NDR_SET_VALUES) {
24615 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24617 if (flags & NDR_IN) {
24618 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24620 ndr_print_string(ndr, "server_name", r->in.server_name);
24621 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24622 ndr_print_winreg_Type(ndr, "type", r->in.type);
24623 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24624 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24626 if (r->in.buffer) {
24627 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24632 if (flags & NDR_OUT) {
24633 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24635 ndr_print_ptr(ndr, "handle", r->out.handle);
24637 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24639 ndr_print_WERROR(ndr, "result", r->out.result);
24645 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24647 if (flags & NDR_IN) {
24648 if (r->in.handle == NULL) {
24649 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24651 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24652 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24654 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24655 if (r->in.buffer) {
24656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24657 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24660 if (flags & NDR_OUT) {
24661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24663 return NDR_ERR_SUCCESS;
24666 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24668 uint32_t _ptr_buffer;
24669 TALLOC_CTX *_mem_save_handle_0;
24670 TALLOC_CTX *_mem_save_buffer_0;
24671 if (flags & NDR_IN) {
24672 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24673 NDR_PULL_ALLOC(ndr, r->in.handle);
24675 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24676 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24677 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24679 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24681 if (r->in.bufsize > 512) {
24682 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24684 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24686 NDR_PULL_ALLOC(ndr, r->in.buffer);
24688 r->in.buffer = NULL;
24690 if (r->in.buffer) {
24691 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24692 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24693 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24694 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24695 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24698 if (r->in.buffer) {
24699 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24702 if (flags & NDR_OUT) {
24703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24705 return NDR_ERR_SUCCESS;
24708 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24710 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24712 if (flags & NDR_SET_VALUES) {
24713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24715 if (flags & NDR_IN) {
24716 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24718 ndr_print_ptr(ndr, "handle", r->in.handle);
24720 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24722 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24723 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24724 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24726 if (r->in.buffer) {
24727 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24732 if (flags & NDR_OUT) {
24733 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24735 ndr_print_WERROR(ndr, "result", r->out.result);
24741 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24743 if (flags & NDR_IN) {
24744 if (r->in.handle == NULL) {
24745 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24747 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24749 if (flags & NDR_OUT) {
24750 if (r->out.handle == NULL) {
24751 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24753 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24756 return NDR_ERR_SUCCESS;
24759 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24761 TALLOC_CTX *_mem_save_handle_0;
24762 if (flags & NDR_IN) {
24763 ZERO_STRUCT(r->out);
24765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24766 NDR_PULL_ALLOC(ndr, r->in.handle);
24768 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24769 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24770 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24772 NDR_PULL_ALLOC(ndr, r->out.handle);
24773 *r->out.handle = *r->in.handle;
24775 if (flags & NDR_OUT) {
24776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24777 NDR_PULL_ALLOC(ndr, r->out.handle);
24779 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24780 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24781 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24783 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24785 return NDR_ERR_SUCCESS;
24788 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24790 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24792 if (flags & NDR_SET_VALUES) {
24793 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24795 if (flags & NDR_IN) {
24796 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24798 ndr_print_ptr(ndr, "handle", r->in.handle);
24800 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24804 if (flags & NDR_OUT) {
24805 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24807 ndr_print_ptr(ndr, "handle", r->out.handle);
24809 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24811 ndr_print_WERROR(ndr, "result", r->out.result);
24817 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24819 if (flags & NDR_IN) {
24821 if (flags & NDR_OUT) {
24822 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24824 return NDR_ERR_SUCCESS;
24827 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24829 if (flags & NDR_IN) {
24831 if (flags & NDR_OUT) {
24832 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24834 return NDR_ERR_SUCCESS;
24837 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24839 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24841 if (flags & NDR_SET_VALUES) {
24842 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24844 if (flags & NDR_IN) {
24845 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24849 if (flags & NDR_OUT) {
24850 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24852 ndr_print_WERROR(ndr, "result", r->out.result);
24858 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24860 if (flags & NDR_IN) {
24862 if (flags & NDR_OUT) {
24863 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24865 return NDR_ERR_SUCCESS;
24868 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24870 if (flags & NDR_IN) {
24872 if (flags & NDR_OUT) {
24873 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24875 return NDR_ERR_SUCCESS;
24878 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24880 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24882 if (flags & NDR_SET_VALUES) {
24883 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24885 if (flags & NDR_IN) {
24886 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24890 if (flags & NDR_OUT) {
24891 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24893 ndr_print_WERROR(ndr, "result", r->out.result);
24899 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24901 if (flags & NDR_IN) {
24903 if (flags & NDR_OUT) {
24904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24906 return NDR_ERR_SUCCESS;
24909 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24911 if (flags & NDR_IN) {
24913 if (flags & NDR_OUT) {
24914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24916 return NDR_ERR_SUCCESS;
24919 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24921 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24923 if (flags & NDR_SET_VALUES) {
24924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24926 if (flags & NDR_IN) {
24927 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24931 if (flags & NDR_OUT) {
24932 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24934 ndr_print_WERROR(ndr, "result", r->out.result);
24940 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24942 if (flags & NDR_IN) {
24944 if (flags & NDR_OUT) {
24945 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24947 return NDR_ERR_SUCCESS;
24950 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24952 if (flags & NDR_IN) {
24954 if (flags & NDR_OUT) {
24955 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24957 return NDR_ERR_SUCCESS;
24960 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24962 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24964 if (flags & NDR_SET_VALUES) {
24965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24967 if (flags & NDR_IN) {
24968 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24972 if (flags & NDR_OUT) {
24973 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24975 ndr_print_WERROR(ndr, "result", r->out.result);
24981 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24983 if (flags & NDR_IN) {
24984 if (r->in.handle == NULL) {
24985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24987 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24988 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24990 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24991 if (r->in.local_machine) {
24992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24995 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));
24997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24998 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24999 if (r->in.notify_options) {
25000 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25003 if (flags & NDR_OUT) {
25004 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25006 return NDR_ERR_SUCCESS;
25009 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25011 uint32_t _ptr_local_machine;
25012 uint32_t _ptr_notify_options;
25013 TALLOC_CTX *_mem_save_handle_0;
25014 TALLOC_CTX *_mem_save_local_machine_0;
25015 TALLOC_CTX *_mem_save_notify_options_0;
25016 if (flags & NDR_IN) {
25017 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25018 NDR_PULL_ALLOC(ndr, r->in.handle);
25020 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25021 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25022 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25024 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
25026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
25027 if (_ptr_local_machine) {
25028 NDR_PULL_ALLOC(ndr, r->in.local_machine);
25030 r->in.local_machine = NULL;
25032 if (r->in.local_machine) {
25033 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
25034 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
25035 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
25036 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
25037 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
25038 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));
25040 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
25041 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));
25042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
25044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
25046 if (_ptr_notify_options) {
25047 NDR_PULL_ALLOC(ndr, r->in.notify_options);
25049 r->in.notify_options = NULL;
25051 if (r->in.notify_options) {
25052 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25053 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
25054 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
25058 if (flags & NDR_OUT) {
25059 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25061 return NDR_ERR_SUCCESS;
25064 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25066 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25068 if (flags & NDR_SET_VALUES) {
25069 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25071 if (flags & NDR_IN) {
25072 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25074 ndr_print_ptr(ndr, "handle", r->in.handle);
25076 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25078 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25079 ndr_print_uint32(ndr, "options", r->in.options);
25080 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
25082 if (r->in.local_machine) {
25083 ndr_print_string(ndr, "local_machine", r->in.local_machine);
25086 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25087 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
25089 if (r->in.notify_options) {
25090 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
25095 if (flags & NDR_OUT) {
25096 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25098 ndr_print_WERROR(ndr, "result", r->out.result);
25104 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25106 if (flags & NDR_IN) {
25107 if (r->in.handle == NULL) {
25108 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25110 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
25112 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
25114 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25115 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25117 if (flags & NDR_OUT) {
25118 if (r->out.reply_result == NULL) {
25119 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25121 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
25122 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25124 return NDR_ERR_SUCCESS;
25127 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
25129 TALLOC_CTX *_mem_save_handle_0;
25130 TALLOC_CTX *_mem_save_reply_result_0;
25131 if (flags & NDR_IN) {
25132 ZERO_STRUCT(r->out);
25134 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25135 NDR_PULL_ALLOC(ndr, r->in.handle);
25137 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25138 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25139 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
25142 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
25144 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25145 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25146 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25147 ZERO_STRUCTP(r->out.reply_result);
25149 if (flags & NDR_OUT) {
25150 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25151 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25153 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
25154 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
25155 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
25156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
25157 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25159 return NDR_ERR_SUCCESS;
25162 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25164 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
25166 if (flags & NDR_SET_VALUES) {
25167 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25169 if (flags & NDR_IN) {
25170 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
25172 ndr_print_ptr(ndr, "handle", r->in.handle);
25174 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25176 ndr_print_uint32(ndr, "color", r->in.color);
25177 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25178 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
25179 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
25180 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
25183 if (flags & NDR_OUT) {
25184 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
25186 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
25188 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
25190 ndr_print_WERROR(ndr, "result", r->out.result);
25196 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25198 if (flags & NDR_IN) {
25199 if (r->in.handle == NULL) {
25200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25202 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
25204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
25205 if (r->in.options) {
25206 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25209 if (flags & NDR_OUT) {
25210 if (r->out.info == NULL) {
25211 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25213 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
25214 if (*r->out.info) {
25215 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25217 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25219 return NDR_ERR_SUCCESS;
25222 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
25224 uint32_t _ptr_options;
25225 uint32_t _ptr_info;
25226 TALLOC_CTX *_mem_save_handle_0;
25227 TALLOC_CTX *_mem_save_options_0;
25228 TALLOC_CTX *_mem_save_info_0;
25229 TALLOC_CTX *_mem_save_info_1;
25230 if (flags & NDR_IN) {
25231 ZERO_STRUCT(r->out);
25233 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25234 NDR_PULL_ALLOC(ndr, r->in.handle);
25236 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25237 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25238 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
25241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
25242 if (_ptr_options) {
25243 NDR_PULL_ALLOC(ndr, r->in.options);
25245 r->in.options = NULL;
25247 if (r->in.options) {
25248 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25249 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25250 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25253 NDR_PULL_ALLOC(ndr, r->out.info);
25254 ZERO_STRUCTP(r->out.info);
25256 if (flags & NDR_OUT) {
25257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25258 NDR_PULL_ALLOC(ndr, r->out.info);
25260 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25261 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25264 NDR_PULL_ALLOC(ndr, *r->out.info);
25266 *r->out.info = NULL;
25268 if (*r->out.info) {
25269 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25270 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25271 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25275 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25277 return NDR_ERR_SUCCESS;
25280 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25282 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25284 if (flags & NDR_SET_VALUES) {
25285 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25287 if (flags & NDR_IN) {
25288 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25290 ndr_print_ptr(ndr, "handle", r->in.handle);
25292 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25294 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25295 ndr_print_ptr(ndr, "options", r->in.options);
25297 if (r->in.options) {
25298 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25303 if (flags & NDR_OUT) {
25304 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25306 ndr_print_ptr(ndr, "info", r->out.info);
25308 ndr_print_ptr(ndr, "info", *r->out.info);
25310 if (*r->out.info) {
25311 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25315 ndr_print_WERROR(ndr, "result", r->out.result);
25321 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25323 if (flags & NDR_IN) {
25325 if (flags & NDR_OUT) {
25326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25328 return NDR_ERR_SUCCESS;
25331 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25333 if (flags & NDR_IN) {
25335 if (flags & NDR_OUT) {
25336 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25338 return NDR_ERR_SUCCESS;
25341 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25343 ndr_print_struct(ndr, name, "spoolss_44");
25345 if (flags & NDR_SET_VALUES) {
25346 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25348 if (flags & NDR_IN) {
25349 ndr_print_struct(ndr, "in", "spoolss_44");
25353 if (flags & NDR_OUT) {
25354 ndr_print_struct(ndr, "out", "spoolss_44");
25356 ndr_print_WERROR(ndr, "result", r->out.result);
25362 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25364 if (flags & NDR_IN) {
25365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25366 if (r->in.printername) {
25367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25373 if (r->in.datatype) {
25374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25379 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25380 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25382 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25383 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25385 if (flags & NDR_OUT) {
25386 if (r->out.handle == NULL) {
25387 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25389 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25390 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25392 return NDR_ERR_SUCCESS;
25395 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25397 uint32_t _ptr_printername;
25398 uint32_t _ptr_datatype;
25399 TALLOC_CTX *_mem_save_printername_0;
25400 TALLOC_CTX *_mem_save_datatype_0;
25401 TALLOC_CTX *_mem_save_handle_0;
25402 if (flags & NDR_IN) {
25403 ZERO_STRUCT(r->out);
25405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25406 if (_ptr_printername) {
25407 NDR_PULL_ALLOC(ndr, r->in.printername);
25409 r->in.printername = NULL;
25411 if (r->in.printername) {
25412 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25413 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25414 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25415 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25416 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25417 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));
25419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25424 if (_ptr_datatype) {
25425 NDR_PULL_ALLOC(ndr, r->in.datatype);
25427 r->in.datatype = NULL;
25429 if (r->in.datatype) {
25430 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25431 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25432 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25433 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25434 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25435 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));
25437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25441 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25442 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25444 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25445 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25446 NDR_PULL_ALLOC(ndr, r->out.handle);
25447 ZERO_STRUCTP(r->out.handle);
25449 if (flags & NDR_OUT) {
25450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25451 NDR_PULL_ALLOC(ndr, r->out.handle);
25453 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25454 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25455 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25457 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25459 return NDR_ERR_SUCCESS;
25462 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25464 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25466 if (flags & NDR_SET_VALUES) {
25467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25469 if (flags & NDR_IN) {
25470 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25472 ndr_print_ptr(ndr, "printername", r->in.printername);
25474 if (r->in.printername) {
25475 ndr_print_string(ndr, "printername", r->in.printername);
25478 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25480 if (r->in.datatype) {
25481 ndr_print_string(ndr, "datatype", r->in.datatype);
25484 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25485 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25486 ndr_print_uint32(ndr, "level", r->in.level);
25487 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25488 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25491 if (flags & NDR_OUT) {
25492 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25494 ndr_print_ptr(ndr, "handle", r->out.handle);
25496 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25498 ndr_print_WERROR(ndr, "result", r->out.result);
25504 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
25506 if (flags & NDR_IN) {
25507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25508 if (r->in.server) {
25509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25514 if (r->in.info_ctr == NULL) {
25515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25517 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25518 if (r->in.devmode_ctr == NULL) {
25519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25521 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25522 if (r->in.secdesc_ctr == NULL) {
25523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25525 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25526 if (r->in.userlevel_ctr == NULL) {
25527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25529 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25531 if (flags & NDR_OUT) {
25532 if (r->out.handle == NULL) {
25533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25535 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25536 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25538 return NDR_ERR_SUCCESS;
25541 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
25543 uint32_t _ptr_server;
25544 TALLOC_CTX *_mem_save_server_0;
25545 TALLOC_CTX *_mem_save_info_ctr_0;
25546 TALLOC_CTX *_mem_save_devmode_ctr_0;
25547 TALLOC_CTX *_mem_save_secdesc_ctr_0;
25548 TALLOC_CTX *_mem_save_userlevel_ctr_0;
25549 TALLOC_CTX *_mem_save_handle_0;
25550 if (flags & NDR_IN) {
25551 ZERO_STRUCT(r->out);
25553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25555 NDR_PULL_ALLOC(ndr, r->in.server);
25557 r->in.server = NULL;
25559 if (r->in.server) {
25560 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25561 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25562 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25563 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25564 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
25565 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));
25567 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
25568 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
25569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25572 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25574 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25575 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25576 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25578 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25579 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25581 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25582 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25583 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25585 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25586 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25588 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25589 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25590 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25592 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25593 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
25595 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25596 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
25597 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25599 NDR_PULL_ALLOC(ndr, r->out.handle);
25600 ZERO_STRUCTP(r->out.handle);
25602 if (flags & NDR_OUT) {
25603 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25604 NDR_PULL_ALLOC(ndr, r->out.handle);
25606 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25607 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25608 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25612 return NDR_ERR_SUCCESS;
25615 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25617 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25619 if (flags & NDR_SET_VALUES) {
25620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25622 if (flags & NDR_IN) {
25623 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25625 ndr_print_ptr(ndr, "server", r->in.server);
25627 if (r->in.server) {
25628 ndr_print_string(ndr, "server", r->in.server);
25631 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25633 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25635 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25637 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25639 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25641 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25643 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25645 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25649 if (flags & NDR_OUT) {
25650 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25652 ndr_print_ptr(ndr, "handle", r->out.handle);
25654 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25656 ndr_print_WERROR(ndr, "result", r->out.result);
25662 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25664 if (flags & NDR_IN) {
25666 if (flags & NDR_OUT) {
25667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25669 return NDR_ERR_SUCCESS;
25672 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25674 if (flags & NDR_IN) {
25676 if (flags & NDR_OUT) {
25677 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25679 return NDR_ERR_SUCCESS;
25682 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25684 ndr_print_struct(ndr, name, "spoolss_47");
25686 if (flags & NDR_SET_VALUES) {
25687 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25689 if (flags & NDR_IN) {
25690 ndr_print_struct(ndr, "in", "spoolss_47");
25694 if (flags & NDR_OUT) {
25695 ndr_print_struct(ndr, "out", "spoolss_47");
25697 ndr_print_WERROR(ndr, "result", r->out.result);
25703 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25705 if (flags & NDR_IN) {
25706 if (r->in.handle == NULL) {
25707 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25709 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25714 if (flags & NDR_OUT) {
25715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25716 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25717 if (r->out.value_needed == NULL) {
25718 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25721 if (r->out.type == NULL) {
25722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25724 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
25726 uint32_t _flags_save_uint8 = ndr->flags;
25727 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
25728 if (r->out.data == NULL) {
25729 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25732 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
25733 ndr->flags = _flags_save_uint8;
25735 if (r->out.data_needed == NULL) {
25736 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25739 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25741 return NDR_ERR_SUCCESS;
25744 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25746 TALLOC_CTX *_mem_save_handle_0;
25747 TALLOC_CTX *_mem_save_value_needed_0;
25748 TALLOC_CTX *_mem_save_type_0;
25749 TALLOC_CTX *_mem_save_data_needed_0;
25750 if (flags & NDR_IN) {
25751 ZERO_STRUCT(r->out);
25753 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25754 NDR_PULL_ALLOC(ndr, r->in.handle);
25756 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25757 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25758 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25763 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25764 ZERO_STRUCTP(r->out.value_needed);
25765 NDR_PULL_ALLOC(ndr, r->out.type);
25766 ZERO_STRUCTP(r->out.type);
25767 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
25768 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
25769 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25770 ZERO_STRUCTP(r->out.data_needed);
25772 if (flags & NDR_OUT) {
25773 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25774 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));
25775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25776 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25778 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25779 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25782 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25783 NDR_PULL_ALLOC(ndr, r->out.type);
25785 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25786 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25787 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
25788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25790 uint32_t _flags_save_uint8 = ndr->flags;
25791 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
25792 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
25793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25794 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
25796 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
25797 ndr->flags = _flags_save_uint8;
25799 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25800 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25802 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25803 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25806 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25807 if (r->out.value_name) {
25808 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25811 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
25814 return NDR_ERR_SUCCESS;
25817 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25819 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25821 if (flags & NDR_SET_VALUES) {
25822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25824 if (flags & NDR_IN) {
25825 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25827 ndr_print_ptr(ndr, "handle", r->in.handle);
25829 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25831 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25832 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25833 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25836 if (flags & NDR_OUT) {
25837 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25839 ndr_print_string(ndr, "value_name", r->out.value_name);
25840 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25842 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25844 ndr_print_ptr(ndr, "type", r->out.type);
25846 ndr_print_winreg_Type(ndr, "type", *r->out.type);
25848 ndr_print_ptr(ndr, "data", r->out.data);
25850 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
25852 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25854 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25856 ndr_print_WERROR(ndr, "result", r->out.result);
25862 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25864 if (flags & NDR_IN) {
25865 if (r->in.handle == NULL) {
25866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25868 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25872 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));
25874 if (flags & NDR_OUT) {
25875 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25877 return NDR_ERR_SUCCESS;
25880 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25882 TALLOC_CTX *_mem_save_handle_0;
25883 if (flags & NDR_IN) {
25884 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25885 NDR_PULL_ALLOC(ndr, r->in.handle);
25887 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25888 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25889 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25891 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25892 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25893 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25894 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));
25896 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25897 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));
25899 if (flags & NDR_OUT) {
25900 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25902 return NDR_ERR_SUCCESS;
25905 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25907 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25909 if (flags & NDR_SET_VALUES) {
25910 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25912 if (flags & NDR_IN) {
25913 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25915 ndr_print_ptr(ndr, "handle", r->in.handle);
25917 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25919 ndr_print_string(ndr, "value_name", r->in.value_name);
25922 if (flags & NDR_OUT) {
25923 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25925 ndr_print_WERROR(ndr, "result", r->out.result);
25931 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25933 if (flags & NDR_IN) {
25935 if (flags & NDR_OUT) {
25936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25938 return NDR_ERR_SUCCESS;
25941 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25943 if (flags & NDR_IN) {
25945 if (flags & NDR_OUT) {
25946 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25948 return NDR_ERR_SUCCESS;
25951 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25953 ndr_print_struct(ndr, name, "spoolss_4a");
25955 if (flags & NDR_SET_VALUES) {
25956 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25958 if (flags & NDR_IN) {
25959 ndr_print_struct(ndr, "in", "spoolss_4a");
25963 if (flags & NDR_OUT) {
25964 ndr_print_struct(ndr, "out", "spoolss_4a");
25966 ndr_print_WERROR(ndr, "result", r->out.result);
25972 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25974 if (flags & NDR_IN) {
25976 if (flags & NDR_OUT) {
25977 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25979 return NDR_ERR_SUCCESS;
25982 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25984 if (flags & NDR_IN) {
25986 if (flags & NDR_OUT) {
25987 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25989 return NDR_ERR_SUCCESS;
25992 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25994 ndr_print_struct(ndr, name, "spoolss_4b");
25996 if (flags & NDR_SET_VALUES) {
25997 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25999 if (flags & NDR_IN) {
26000 ndr_print_struct(ndr, "in", "spoolss_4b");
26004 if (flags & NDR_OUT) {
26005 ndr_print_struct(ndr, "out", "spoolss_4b");
26007 ndr_print_WERROR(ndr, "result", r->out.result);
26013 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
26015 if (flags & NDR_IN) {
26017 if (flags & NDR_OUT) {
26018 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26020 return NDR_ERR_SUCCESS;
26023 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
26025 if (flags & NDR_IN) {
26027 if (flags & NDR_OUT) {
26028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26030 return NDR_ERR_SUCCESS;
26033 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
26035 ndr_print_struct(ndr, name, "spoolss_4c");
26037 if (flags & NDR_SET_VALUES) {
26038 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26040 if (flags & NDR_IN) {
26041 ndr_print_struct(ndr, "in", "spoolss_4c");
26045 if (flags & NDR_OUT) {
26046 ndr_print_struct(ndr, "out", "spoolss_4c");
26048 ndr_print_WERROR(ndr, "result", r->out.result);
26054 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
26056 if (flags & NDR_IN) {
26057 if (r->in.handle == NULL) {
26058 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26060 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26064 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));
26065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26068 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));
26069 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26070 if (r->in.buffer == NULL) {
26071 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26074 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
26075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26077 if (flags & NDR_OUT) {
26078 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26080 return NDR_ERR_SUCCESS;
26083 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
26085 TALLOC_CTX *_mem_save_handle_0;
26086 if (flags & NDR_IN) {
26087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26088 NDR_PULL_ALLOC(ndr, r->in.handle);
26090 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26091 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26092 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26094 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26095 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26096 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26097 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));
26099 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26100 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));
26101 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26102 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26103 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26104 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));
26106 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26107 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));
26108 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26109 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26110 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26111 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26113 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26115 if (r->in.buffer) {
26116 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
26119 if (flags & NDR_OUT) {
26120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26122 return NDR_ERR_SUCCESS;
26125 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
26127 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
26129 if (flags & NDR_SET_VALUES) {
26130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26132 if (flags & NDR_IN) {
26133 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
26135 ndr_print_ptr(ndr, "handle", r->in.handle);
26137 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26139 ndr_print_string(ndr, "key_name", r->in.key_name);
26140 ndr_print_string(ndr, "value_name", r->in.value_name);
26141 ndr_print_winreg_Type(ndr, "type", r->in.type);
26142 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26144 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
26146 ndr_print_uint32(ndr, "offered", r->in.offered);
26149 if (flags & NDR_OUT) {
26150 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
26152 ndr_print_WERROR(ndr, "result", r->out.result);
26158 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
26160 if (flags & NDR_IN) {
26161 if (r->in.handle == NULL) {
26162 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26164 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26168 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));
26169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26172 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));
26173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26175 if (flags & NDR_OUT) {
26176 if (r->out.type == NULL) {
26177 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26179 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26180 if (r->out.buffer == NULL) {
26181 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26184 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26185 if (r->out.needed == NULL) {
26186 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26191 return NDR_ERR_SUCCESS;
26194 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26196 TALLOC_CTX *_mem_save_handle_0;
26197 TALLOC_CTX *_mem_save_type_0;
26198 TALLOC_CTX *_mem_save_needed_0;
26199 if (flags & NDR_IN) {
26200 ZERO_STRUCT(r->out);
26202 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26203 NDR_PULL_ALLOC(ndr, r->in.handle);
26205 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26206 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26207 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26209 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26210 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26211 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26212 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));
26214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26215 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));
26216 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26217 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26218 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26219 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));
26221 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26222 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));
26223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26224 NDR_PULL_ALLOC(ndr, r->out.type);
26225 ZERO_STRUCTP(r->out.type);
26226 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26227 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26228 NDR_PULL_ALLOC(ndr, r->out.needed);
26229 ZERO_STRUCTP(r->out.needed);
26231 if (flags & NDR_OUT) {
26232 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26233 NDR_PULL_ALLOC(ndr, r->out.type);
26235 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26236 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26237 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26239 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26240 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26241 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26243 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26244 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26245 NDR_PULL_ALLOC(ndr, r->out.needed);
26247 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26248 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26251 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26252 if (r->out.buffer) {
26253 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26256 return NDR_ERR_SUCCESS;
26259 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
26261 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
26263 if (flags & NDR_SET_VALUES) {
26264 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26266 if (flags & NDR_IN) {
26267 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26269 ndr_print_ptr(ndr, "handle", r->in.handle);
26271 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26273 ndr_print_string(ndr, "key_name", r->in.key_name);
26274 ndr_print_string(ndr, "value_name", r->in.value_name);
26275 ndr_print_uint32(ndr, "offered", r->in.offered);
26278 if (flags & NDR_OUT) {
26279 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26281 ndr_print_ptr(ndr, "type", r->out.type);
26283 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26285 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26287 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26289 ndr_print_ptr(ndr, "needed", r->out.needed);
26291 ndr_print_uint32(ndr, "needed", *r->out.needed);
26293 ndr_print_WERROR(ndr, "result", r->out.result);
26299 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
26301 if (flags & NDR_IN) {
26302 if (r->in.handle == NULL) {
26303 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26305 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26309 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));
26310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26312 if (flags & NDR_OUT) {
26313 if (r->out.buffer == NULL) {
26314 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26317 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26318 if (r->out.needed == NULL) {
26319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26322 if (r->out.count == NULL) {
26323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26328 return NDR_ERR_SUCCESS;
26331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
26333 TALLOC_CTX *_mem_save_handle_0;
26334 TALLOC_CTX *_mem_save_needed_0;
26335 TALLOC_CTX *_mem_save_count_0;
26336 if (flags & NDR_IN) {
26337 ZERO_STRUCT(r->out);
26339 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26340 NDR_PULL_ALLOC(ndr, r->in.handle);
26342 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26343 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26344 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26346 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26347 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26348 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26349 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));
26351 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26352 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));
26353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26354 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26355 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26356 NDR_PULL_ALLOC(ndr, r->out.needed);
26357 ZERO_STRUCTP(r->out.needed);
26358 NDR_PULL_ALLOC(ndr, r->out.count);
26359 ZERO_STRUCTP(r->out.count);
26361 if (flags & NDR_OUT) {
26362 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26364 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26366 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26368 NDR_PULL_ALLOC(ndr, r->out.needed);
26370 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26371 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26374 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26375 NDR_PULL_ALLOC(ndr, r->out.count);
26377 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26378 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26381 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26382 if (r->out.buffer) {
26383 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26386 return NDR_ERR_SUCCESS;
26389 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26391 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26393 if (flags & NDR_SET_VALUES) {
26394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26396 if (flags & NDR_IN) {
26397 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26399 ndr_print_ptr(ndr, "handle", r->in.handle);
26401 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26403 ndr_print_string(ndr, "key_name", r->in.key_name);
26404 ndr_print_uint32(ndr, "offered", r->in.offered);
26407 if (flags & NDR_OUT) {
26408 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26410 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26412 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26414 ndr_print_ptr(ndr, "needed", r->out.needed);
26416 ndr_print_uint32(ndr, "needed", *r->out.needed);
26418 ndr_print_ptr(ndr, "count", r->out.count);
26420 ndr_print_uint32(ndr, "count", *r->out.count);
26422 ndr_print_WERROR(ndr, "result", r->out.result);
26428 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26430 if (flags & NDR_IN) {
26431 if (r->in.handle == NULL) {
26432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26434 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26438 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));
26439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26441 if (flags & NDR_OUT) {
26443 uint32_t _flags_save_string_array = ndr->flags;
26444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26445 if (r->out.key_buffer == NULL) {
26446 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26448 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.key_buffer));
26449 if (*r->out.key_buffer) {
26451 struct ndr_push *_ndr_key_buffer;
26452 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26453 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer, NDR_SCALARS, *r->out.key_buffer));
26454 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26457 ndr->flags = _flags_save_string_array;
26459 if (r->out.needed == NULL) {
26460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26463 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26465 return NDR_ERR_SUCCESS;
26468 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
26470 uint32_t _ptr_key_buffer;
26471 TALLOC_CTX *_mem_save_handle_0;
26472 TALLOC_CTX *_mem_save_key_buffer_0;
26473 TALLOC_CTX *_mem_save_key_buffer_1;
26474 TALLOC_CTX *_mem_save_needed_0;
26475 if (flags & NDR_IN) {
26476 ZERO_STRUCT(r->out);
26478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26479 NDR_PULL_ALLOC(ndr, r->in.handle);
26481 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26482 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26483 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26485 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26486 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26487 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26488 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));
26490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26491 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));
26492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26493 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26494 ZERO_STRUCTP(r->out.key_buffer);
26495 NDR_PULL_ALLOC(ndr, r->out.needed);
26496 ZERO_STRUCTP(r->out.needed);
26498 if (flags & NDR_OUT) {
26500 uint32_t _flags_save_string_array = ndr->flags;
26501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26502 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26503 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26505 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26506 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
26507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_key_buffer));
26508 if (_ptr_key_buffer) {
26509 NDR_PULL_ALLOC(ndr, *r->out.key_buffer);
26511 *r->out.key_buffer = NULL;
26513 if (*r->out.key_buffer) {
26514 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26515 NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_buffer, 0);
26517 struct ndr_pull *_ndr_key_buffer;
26518 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26519 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer, NDR_SCALARS, r->out.key_buffer));
26520 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
26525 ndr->flags = _flags_save_string_array;
26527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26528 NDR_PULL_ALLOC(ndr, r->out.needed);
26530 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26531 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26534 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26536 return NDR_ERR_SUCCESS;
26539 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
26541 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
26543 if (flags & NDR_SET_VALUES) {
26544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26546 if (flags & NDR_IN) {
26547 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
26549 ndr_print_ptr(ndr, "handle", r->in.handle);
26551 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26553 ndr_print_string(ndr, "key_name", r->in.key_name);
26554 ndr_print_uint32(ndr, "offered", r->in.offered);
26557 if (flags & NDR_OUT) {
26558 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26560 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26562 ndr_print_ptr(ndr, "key_buffer", *r->out.key_buffer);
26564 if (*r->out.key_buffer) {
26565 ndr_print_string_array(ndr, "key_buffer", *r->out.key_buffer);
26569 ndr_print_ptr(ndr, "needed", r->out.needed);
26571 ndr_print_uint32(ndr, "needed", *r->out.needed);
26573 ndr_print_WERROR(ndr, "result", r->out.result);
26579 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
26581 if (flags & NDR_IN) {
26582 if (r->in.handle == NULL) {
26583 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26585 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26589 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));
26590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26593 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));
26595 if (flags & NDR_OUT) {
26596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26598 return NDR_ERR_SUCCESS;
26601 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
26603 TALLOC_CTX *_mem_save_handle_0;
26604 if (flags & NDR_IN) {
26605 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26606 NDR_PULL_ALLOC(ndr, r->in.handle);
26608 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26609 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26610 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26612 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26613 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26614 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26615 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));
26617 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26618 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));
26619 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26620 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26621 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26622 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));
26624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26625 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));
26627 if (flags & NDR_OUT) {
26628 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26630 return NDR_ERR_SUCCESS;
26633 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
26635 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
26637 if (flags & NDR_SET_VALUES) {
26638 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26640 if (flags & NDR_IN) {
26641 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26643 ndr_print_ptr(ndr, "handle", r->in.handle);
26645 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26647 ndr_print_string(ndr, "key_name", r->in.key_name);
26648 ndr_print_string(ndr, "value_name", r->in.value_name);
26651 if (flags & NDR_OUT) {
26652 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26654 ndr_print_WERROR(ndr, "result", r->out.result);
26660 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26662 if (flags & NDR_IN) {
26663 if (r->in.handle == NULL) {
26664 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26666 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26670 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));
26672 if (flags & NDR_OUT) {
26673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26675 return NDR_ERR_SUCCESS;
26678 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26680 TALLOC_CTX *_mem_save_handle_0;
26681 if (flags & NDR_IN) {
26682 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26683 NDR_PULL_ALLOC(ndr, r->in.handle);
26685 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26686 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26687 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26689 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26690 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26691 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26692 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));
26694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26695 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));
26697 if (flags & NDR_OUT) {
26698 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26700 return NDR_ERR_SUCCESS;
26703 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26705 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26707 if (flags & NDR_SET_VALUES) {
26708 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26710 if (flags & NDR_IN) {
26711 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26713 ndr_print_ptr(ndr, "handle", r->in.handle);
26715 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26717 ndr_print_string(ndr, "key_name", r->in.key_name);
26720 if (flags & NDR_OUT) {
26721 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26723 ndr_print_WERROR(ndr, "result", r->out.result);
26729 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26731 if (flags & NDR_IN) {
26733 if (flags & NDR_OUT) {
26734 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26736 return NDR_ERR_SUCCESS;
26739 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26741 if (flags & NDR_IN) {
26743 if (flags & NDR_OUT) {
26744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26746 return NDR_ERR_SUCCESS;
26749 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26751 ndr_print_struct(ndr, name, "spoolss_53");
26753 if (flags & NDR_SET_VALUES) {
26754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26756 if (flags & NDR_IN) {
26757 ndr_print_struct(ndr, "in", "spoolss_53");
26761 if (flags & NDR_OUT) {
26762 ndr_print_struct(ndr, "out", "spoolss_53");
26764 ndr_print_WERROR(ndr, "result", r->out.result);
26770 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26772 if (flags & NDR_IN) {
26773 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26774 if (r->in.server) {
26775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26783 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26787 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26788 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26791 if (flags & NDR_OUT) {
26792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26794 return NDR_ERR_SUCCESS;
26797 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26799 uint32_t _ptr_server;
26800 TALLOC_CTX *_mem_save_server_0;
26801 if (flags & NDR_IN) {
26802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26804 NDR_PULL_ALLOC(ndr, r->in.server);
26806 r->in.server = NULL;
26808 if (r->in.server) {
26809 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26810 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26811 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26812 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26813 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26814 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));
26816 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26817 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26820 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26821 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26822 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26823 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));
26825 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26826 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26827 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26828 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26829 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26830 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));
26832 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26833 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26834 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26837 if (flags & NDR_OUT) {
26838 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26840 return NDR_ERR_SUCCESS;
26843 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26845 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26847 if (flags & NDR_SET_VALUES) {
26848 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26850 if (flags & NDR_IN) {
26851 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26853 ndr_print_ptr(ndr, "server", r->in.server);
26855 if (r->in.server) {
26856 ndr_print_string(ndr, "server", r->in.server);
26859 ndr_print_string(ndr, "architecture", r->in.architecture);
26860 ndr_print_string(ndr, "driver", r->in.driver);
26861 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26862 ndr_print_uint32(ndr, "version", r->in.version);
26865 if (flags & NDR_OUT) {
26866 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26868 ndr_print_WERROR(ndr, "result", r->out.result);
26874 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26876 if (flags & NDR_IN) {
26878 if (flags & NDR_OUT) {
26879 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26881 return NDR_ERR_SUCCESS;
26884 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26886 if (flags & NDR_IN) {
26888 if (flags & NDR_OUT) {
26889 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26891 return NDR_ERR_SUCCESS;
26894 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26896 ndr_print_struct(ndr, name, "spoolss_55");
26898 if (flags & NDR_SET_VALUES) {
26899 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26901 if (flags & NDR_IN) {
26902 ndr_print_struct(ndr, "in", "spoolss_55");
26906 if (flags & NDR_OUT) {
26907 ndr_print_struct(ndr, "out", "spoolss_55");
26909 ndr_print_WERROR(ndr, "result", r->out.result);
26915 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26917 if (flags & NDR_IN) {
26919 if (flags & NDR_OUT) {
26920 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26922 return NDR_ERR_SUCCESS;
26925 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26927 if (flags & NDR_IN) {
26929 if (flags & NDR_OUT) {
26930 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26932 return NDR_ERR_SUCCESS;
26935 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26937 ndr_print_struct(ndr, name, "spoolss_56");
26939 if (flags & NDR_SET_VALUES) {
26940 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26942 if (flags & NDR_IN) {
26943 ndr_print_struct(ndr, "in", "spoolss_56");
26947 if (flags & NDR_OUT) {
26948 ndr_print_struct(ndr, "out", "spoolss_56");
26950 ndr_print_WERROR(ndr, "result", r->out.result);
26956 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26958 if (flags & NDR_IN) {
26960 if (flags & NDR_OUT) {
26961 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26963 return NDR_ERR_SUCCESS;
26966 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26968 if (flags & NDR_IN) {
26970 if (flags & NDR_OUT) {
26971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26973 return NDR_ERR_SUCCESS;
26976 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26978 ndr_print_struct(ndr, name, "spoolss_57");
26980 if (flags & NDR_SET_VALUES) {
26981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26983 if (flags & NDR_IN) {
26984 ndr_print_struct(ndr, "in", "spoolss_57");
26988 if (flags & NDR_OUT) {
26989 ndr_print_struct(ndr, "out", "spoolss_57");
26991 ndr_print_WERROR(ndr, "result", r->out.result);
26997 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26999 if (flags & NDR_IN) {
27000 if (r->in.handle == NULL) {
27001 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27003 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27007 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));
27008 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
27009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
27010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27011 if (r->in.status_code == NULL) {
27012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
27016 if (flags & NDR_OUT) {
27017 if (r->out.out_data == NULL) {
27018 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27021 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
27022 if (r->out.needed == NULL) {
27023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27026 if (r->out.status_code == NULL) {
27027 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
27030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27032 return NDR_ERR_SUCCESS;
27035 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
27037 TALLOC_CTX *_mem_save_handle_0;
27038 TALLOC_CTX *_mem_save_needed_0;
27039 TALLOC_CTX *_mem_save_status_code_0;
27040 if (flags & NDR_IN) {
27041 ZERO_STRUCT(r->out);
27043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27044 NDR_PULL_ALLOC(ndr, r->in.handle);
27046 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27047 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27048 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27050 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
27051 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
27052 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
27053 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));
27055 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
27056 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));
27057 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
27058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
27059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
27060 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27061 NDR_PULL_ALLOC(ndr, r->in.status_code);
27063 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27064 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
27065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
27066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27067 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
27068 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
27069 NDR_PULL_ALLOC(ndr, r->out.needed);
27070 ZERO_STRUCTP(r->out.needed);
27071 NDR_PULL_ALLOC(ndr, r->out.status_code);
27072 *r->out.status_code = *r->in.status_code;
27074 if (flags & NDR_OUT) {
27075 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
27076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27077 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
27079 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
27080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27081 NDR_PULL_ALLOC(ndr, r->out.needed);
27083 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27084 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27088 NDR_PULL_ALLOC(ndr, r->out.status_code);
27090 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27091 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
27092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
27093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27094 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27095 if (r->out.out_data) {
27096 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
27099 return NDR_ERR_SUCCESS;
27102 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
27104 ndr_print_struct(ndr, name, "spoolss_XcvData");
27106 if (flags & NDR_SET_VALUES) {
27107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27109 if (flags & NDR_IN) {
27110 ndr_print_struct(ndr, "in", "spoolss_XcvData");
27112 ndr_print_ptr(ndr, "handle", r->in.handle);
27114 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27116 ndr_print_string(ndr, "function_name", r->in.function_name);
27117 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
27118 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
27119 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
27120 ndr_print_ptr(ndr, "status_code", r->in.status_code);
27122 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
27126 if (flags & NDR_OUT) {
27127 ndr_print_struct(ndr, "out", "spoolss_XcvData");
27129 ndr_print_ptr(ndr, "out_data", r->out.out_data);
27131 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
27133 ndr_print_ptr(ndr, "needed", r->out.needed);
27135 ndr_print_uint32(ndr, "needed", *r->out.needed);
27137 ndr_print_ptr(ndr, "status_code", r->out.status_code);
27139 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
27141 ndr_print_WERROR(ndr, "result", r->out.result);
27147 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
27149 if (flags & NDR_IN) {
27150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
27151 if (r->in.servername) {
27152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27155 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27157 if (r->in.info_ctr == NULL) {
27158 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27160 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27161 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
27163 if (flags & NDR_OUT) {
27164 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27166 return NDR_ERR_SUCCESS;
27169 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
27171 uint32_t _ptr_servername;
27172 TALLOC_CTX *_mem_save_servername_0;
27173 TALLOC_CTX *_mem_save_info_ctr_0;
27174 if (flags & NDR_IN) {
27175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27176 if (_ptr_servername) {
27177 NDR_PULL_ALLOC(ndr, r->in.servername);
27179 r->in.servername = NULL;
27181 if (r->in.servername) {
27182 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27183 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27184 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27185 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27186 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
27187 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));
27189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
27190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
27191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27193 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27194 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27196 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27197 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27198 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27200 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
27202 if (flags & NDR_OUT) {
27203 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27205 return NDR_ERR_SUCCESS;
27208 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
27210 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
27212 if (flags & NDR_SET_VALUES) {
27213 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27215 if (flags & NDR_IN) {
27216 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
27218 ndr_print_ptr(ndr, "servername", r->in.servername);
27220 if (r->in.servername) {
27221 ndr_print_string(ndr, "servername", r->in.servername);
27224 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27226 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27228 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
27231 if (flags & NDR_OUT) {
27232 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
27234 ndr_print_WERROR(ndr, "result", r->out.result);
27240 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
27242 if (flags & NDR_IN) {
27244 if (flags & NDR_OUT) {
27245 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27247 return NDR_ERR_SUCCESS;
27250 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
27252 if (flags & NDR_IN) {
27254 if (flags & NDR_OUT) {
27255 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27257 return NDR_ERR_SUCCESS;
27260 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
27262 ndr_print_struct(ndr, name, "spoolss_5a");
27264 if (flags & NDR_SET_VALUES) {
27265 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27267 if (flags & NDR_IN) {
27268 ndr_print_struct(ndr, "in", "spoolss_5a");
27272 if (flags & NDR_OUT) {
27273 ndr_print_struct(ndr, "out", "spoolss_5a");
27275 ndr_print_WERROR(ndr, "result", r->out.result);
27281 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
27283 if (flags & NDR_IN) {
27285 if (flags & NDR_OUT) {
27286 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27288 return NDR_ERR_SUCCESS;
27291 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27293 if (flags & NDR_IN) {
27295 if (flags & NDR_OUT) {
27296 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27298 return NDR_ERR_SUCCESS;
27301 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27303 ndr_print_struct(ndr, name, "spoolss_5b");
27305 if (flags & NDR_SET_VALUES) {
27306 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27308 if (flags & NDR_IN) {
27309 ndr_print_struct(ndr, "in", "spoolss_5b");
27313 if (flags & NDR_OUT) {
27314 ndr_print_struct(ndr, "out", "spoolss_5b");
27316 ndr_print_WERROR(ndr, "result", r->out.result);
27322 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27324 if (flags & NDR_IN) {
27326 if (flags & NDR_OUT) {
27327 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27329 return NDR_ERR_SUCCESS;
27332 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27334 if (flags & NDR_IN) {
27336 if (flags & NDR_OUT) {
27337 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27339 return NDR_ERR_SUCCESS;
27342 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27344 ndr_print_struct(ndr, name, "spoolss_5c");
27346 if (flags & NDR_SET_VALUES) {
27347 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27349 if (flags & NDR_IN) {
27350 ndr_print_struct(ndr, "in", "spoolss_5c");
27354 if (flags & NDR_OUT) {
27355 ndr_print_struct(ndr, "out", "spoolss_5c");
27357 ndr_print_WERROR(ndr, "result", r->out.result);
27363 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27365 if (flags & NDR_IN) {
27367 if (flags & NDR_OUT) {
27368 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27370 return NDR_ERR_SUCCESS;
27373 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27375 if (flags & NDR_IN) {
27377 if (flags & NDR_OUT) {
27378 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27380 return NDR_ERR_SUCCESS;
27383 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27385 ndr_print_struct(ndr, name, "spoolss_5d");
27387 if (flags & NDR_SET_VALUES) {
27388 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27390 if (flags & NDR_IN) {
27391 ndr_print_struct(ndr, "in", "spoolss_5d");
27395 if (flags & NDR_OUT) {
27396 ndr_print_struct(ndr, "out", "spoolss_5d");
27398 ndr_print_WERROR(ndr, "result", r->out.result);
27404 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27406 if (flags & NDR_IN) {
27408 if (flags & NDR_OUT) {
27409 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27411 return NDR_ERR_SUCCESS;
27414 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27416 if (flags & NDR_IN) {
27418 if (flags & NDR_OUT) {
27419 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27421 return NDR_ERR_SUCCESS;
27424 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27426 ndr_print_struct(ndr, name, "spoolss_5e");
27428 if (flags & NDR_SET_VALUES) {
27429 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27431 if (flags & NDR_IN) {
27432 ndr_print_struct(ndr, "in", "spoolss_5e");
27436 if (flags & NDR_OUT) {
27437 ndr_print_struct(ndr, "out", "spoolss_5e");
27439 ndr_print_WERROR(ndr, "result", r->out.result);
27445 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27447 if (flags & NDR_IN) {
27449 if (flags & NDR_OUT) {
27450 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27452 return NDR_ERR_SUCCESS;
27455 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27457 if (flags & NDR_IN) {
27459 if (flags & NDR_OUT) {
27460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27462 return NDR_ERR_SUCCESS;
27465 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
27467 ndr_print_struct(ndr, name, "spoolss_5f");
27469 if (flags & NDR_SET_VALUES) {
27470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27472 if (flags & NDR_IN) {
27473 ndr_print_struct(ndr, "in", "spoolss_5f");
27477 if (flags & NDR_OUT) {
27478 ndr_print_struct(ndr, "out", "spoolss_5f");
27480 ndr_print_WERROR(ndr, "result", r->out.result);
27486 static const struct ndr_interface_call spoolss_calls[] = {
27488 "spoolss_EnumPrinters",
27489 sizeof(struct spoolss_EnumPrinters),
27490 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
27491 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
27492 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
27496 "spoolss_OpenPrinter",
27497 sizeof(struct spoolss_OpenPrinter),
27498 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
27499 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
27500 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
27505 sizeof(struct spoolss_SetJob),
27506 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
27507 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
27508 (ndr_print_function_t) ndr_print_spoolss_SetJob,
27513 sizeof(struct spoolss_GetJob),
27514 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
27515 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
27516 (ndr_print_function_t) ndr_print_spoolss_GetJob,
27520 "spoolss_EnumJobs",
27521 sizeof(struct spoolss_EnumJobs),
27522 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
27523 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
27524 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
27528 "spoolss_AddPrinter",
27529 sizeof(struct spoolss_AddPrinter),
27530 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
27531 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
27532 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
27536 "spoolss_DeletePrinter",
27537 sizeof(struct spoolss_DeletePrinter),
27538 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
27539 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
27540 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
27544 "spoolss_SetPrinter",
27545 sizeof(struct spoolss_SetPrinter),
27546 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
27547 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
27548 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
27552 "spoolss_GetPrinter",
27553 sizeof(struct spoolss_GetPrinter),
27554 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
27555 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
27556 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
27560 "spoolss_AddPrinterDriver",
27561 sizeof(struct spoolss_AddPrinterDriver),
27562 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
27563 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
27564 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
27568 "spoolss_EnumPrinterDrivers",
27569 sizeof(struct spoolss_EnumPrinterDrivers),
27570 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
27571 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
27572 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
27576 "spoolss_GetPrinterDriver",
27577 sizeof(struct spoolss_GetPrinterDriver),
27578 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
27579 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
27580 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
27584 "spoolss_GetPrinterDriverDirectory",
27585 sizeof(struct spoolss_GetPrinterDriverDirectory),
27586 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
27587 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
27588 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
27592 "spoolss_DeletePrinterDriver",
27593 sizeof(struct spoolss_DeletePrinterDriver),
27594 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
27595 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
27596 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
27600 "spoolss_AddPrintProcessor",
27601 sizeof(struct spoolss_AddPrintProcessor),
27602 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
27603 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
27604 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
27608 "spoolss_EnumPrintProcessors",
27609 sizeof(struct spoolss_EnumPrintProcessors),
27610 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
27611 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
27612 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
27616 "spoolss_GetPrintProcessorDirectory",
27617 sizeof(struct spoolss_GetPrintProcessorDirectory),
27618 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
27619 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
27620 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
27624 "spoolss_StartDocPrinter",
27625 sizeof(struct spoolss_StartDocPrinter),
27626 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
27627 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
27628 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
27632 "spoolss_StartPagePrinter",
27633 sizeof(struct spoolss_StartPagePrinter),
27634 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
27635 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
27636 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
27640 "spoolss_WritePrinter",
27641 sizeof(struct spoolss_WritePrinter),
27642 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27643 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27644 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27648 "spoolss_EndPagePrinter",
27649 sizeof(struct spoolss_EndPagePrinter),
27650 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27651 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27652 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27656 "spoolss_AbortPrinter",
27657 sizeof(struct spoolss_AbortPrinter),
27658 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27659 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27660 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27664 "spoolss_ReadPrinter",
27665 sizeof(struct spoolss_ReadPrinter),
27666 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27667 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27668 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27672 "spoolss_EndDocPrinter",
27673 sizeof(struct spoolss_EndDocPrinter),
27674 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27675 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27676 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27681 sizeof(struct spoolss_AddJob),
27682 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27683 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27684 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27688 "spoolss_ScheduleJob",
27689 sizeof(struct spoolss_ScheduleJob),
27690 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27691 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27692 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27696 "spoolss_GetPrinterData",
27697 sizeof(struct spoolss_GetPrinterData),
27698 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27699 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27700 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27704 "spoolss_SetPrinterData",
27705 sizeof(struct spoolss_SetPrinterData),
27706 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27707 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27708 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27712 "spoolss_WaitForPrinterChange",
27713 sizeof(struct spoolss_WaitForPrinterChange),
27714 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27715 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27716 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27720 "spoolss_ClosePrinter",
27721 sizeof(struct spoolss_ClosePrinter),
27722 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27723 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27724 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27729 sizeof(struct spoolss_AddForm),
27730 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27731 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27732 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27736 "spoolss_DeleteForm",
27737 sizeof(struct spoolss_DeleteForm),
27738 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27739 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27740 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27745 sizeof(struct spoolss_GetForm),
27746 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27747 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27748 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27753 sizeof(struct spoolss_SetForm),
27754 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27755 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27756 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27760 "spoolss_EnumForms",
27761 sizeof(struct spoolss_EnumForms),
27762 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27763 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27764 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27768 "spoolss_EnumPorts",
27769 sizeof(struct spoolss_EnumPorts),
27770 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27771 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27772 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27776 "spoolss_EnumMonitors",
27777 sizeof(struct spoolss_EnumMonitors),
27778 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27779 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27780 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27785 sizeof(struct spoolss_AddPort),
27786 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27787 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27788 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27792 "spoolss_ConfigurePort",
27793 sizeof(struct spoolss_ConfigurePort),
27794 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27795 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27796 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27800 "spoolss_DeletePort",
27801 sizeof(struct spoolss_DeletePort),
27802 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27803 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27804 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27808 "spoolss_CreatePrinterIC",
27809 sizeof(struct spoolss_CreatePrinterIC),
27810 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27811 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27812 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27816 "spoolss_PlayGDIScriptOnPrinterIC",
27817 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27818 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27819 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27820 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27824 "spoolss_DeletePrinterIC",
27825 sizeof(struct spoolss_DeletePrinterIC),
27826 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27827 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27828 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27832 "spoolss_AddPrinterConnection",
27833 sizeof(struct spoolss_AddPrinterConnection),
27834 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27835 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27836 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27840 "spoolss_DeletePrinterConnection",
27841 sizeof(struct spoolss_DeletePrinterConnection),
27842 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27843 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27844 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27848 "spoolss_PrinterMessageBox",
27849 sizeof(struct spoolss_PrinterMessageBox),
27850 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27851 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27852 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27856 "spoolss_AddMonitor",
27857 sizeof(struct spoolss_AddMonitor),
27858 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27859 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27860 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27864 "spoolss_DeleteMonitor",
27865 sizeof(struct spoolss_DeleteMonitor),
27866 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27867 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27868 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27872 "spoolss_DeletePrintProcessor",
27873 sizeof(struct spoolss_DeletePrintProcessor),
27874 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27875 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27876 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27880 "spoolss_AddPrintProvidor",
27881 sizeof(struct spoolss_AddPrintProvidor),
27882 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27883 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27884 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27888 "spoolss_DeletePrintProvidor",
27889 sizeof(struct spoolss_DeletePrintProvidor),
27890 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27891 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27892 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27896 "spoolss_EnumPrintProcDataTypes",
27897 sizeof(struct spoolss_EnumPrintProcDataTypes),
27898 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27899 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27900 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27904 "spoolss_ResetPrinter",
27905 sizeof(struct spoolss_ResetPrinter),
27906 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27907 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27908 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27912 "spoolss_GetPrinterDriver2",
27913 sizeof(struct spoolss_GetPrinterDriver2),
27914 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27915 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27916 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27920 "spoolss_FindFirstPrinterChangeNotification",
27921 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27922 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27923 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27924 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27928 "spoolss_FindNextPrinterChangeNotification",
27929 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27930 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27931 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27932 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27936 "spoolss_FindClosePrinterNotify",
27937 sizeof(struct spoolss_FindClosePrinterNotify),
27938 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27939 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27940 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27944 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27945 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27946 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27947 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27948 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27952 "spoolss_ReplyOpenPrinter",
27953 sizeof(struct spoolss_ReplyOpenPrinter),
27954 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27955 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27956 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27960 "spoolss_RouterReplyPrinter",
27961 sizeof(struct spoolss_RouterReplyPrinter),
27962 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27963 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27964 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27968 "spoolss_ReplyClosePrinter",
27969 sizeof(struct spoolss_ReplyClosePrinter),
27970 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27971 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27972 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27976 "spoolss_AddPortEx",
27977 sizeof(struct spoolss_AddPortEx),
27978 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27979 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27980 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27984 "spoolss_RouterFindFirstPrinterChangeNotification",
27985 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27986 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27987 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27988 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27992 "spoolss_SpoolerInit",
27993 sizeof(struct spoolss_SpoolerInit),
27994 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27995 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27996 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
28000 "spoolss_ResetPrinterEx",
28001 sizeof(struct spoolss_ResetPrinterEx),
28002 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
28003 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
28004 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
28008 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
28009 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
28010 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28011 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28012 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28016 "spoolss_RouterReplyPrinterEx",
28017 sizeof(struct spoolss_RouterReplyPrinterEx),
28018 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
28019 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
28020 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
28024 "spoolss_RouterRefreshPrinterChangeNotify",
28025 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
28026 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
28027 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
28028 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
28033 sizeof(struct spoolss_44),
28034 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
28035 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
28036 (ndr_print_function_t) ndr_print_spoolss_44,
28040 "spoolss_OpenPrinterEx",
28041 sizeof(struct spoolss_OpenPrinterEx),
28042 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
28043 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
28044 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
28048 "spoolss_AddPrinterEx",
28049 sizeof(struct spoolss_AddPrinterEx),
28050 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
28051 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
28052 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
28057 sizeof(struct spoolss_47),
28058 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
28059 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
28060 (ndr_print_function_t) ndr_print_spoolss_47,
28064 "spoolss_EnumPrinterData",
28065 sizeof(struct spoolss_EnumPrinterData),
28066 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
28067 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
28068 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
28072 "spoolss_DeletePrinterData",
28073 sizeof(struct spoolss_DeletePrinterData),
28074 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
28075 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
28076 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
28081 sizeof(struct spoolss_4a),
28082 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
28083 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
28084 (ndr_print_function_t) ndr_print_spoolss_4a,
28089 sizeof(struct spoolss_4b),
28090 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
28091 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
28092 (ndr_print_function_t) ndr_print_spoolss_4b,
28097 sizeof(struct spoolss_4c),
28098 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
28099 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
28100 (ndr_print_function_t) ndr_print_spoolss_4c,
28104 "spoolss_SetPrinterDataEx",
28105 sizeof(struct spoolss_SetPrinterDataEx),
28106 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
28107 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
28108 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
28112 "spoolss_GetPrinterDataEx",
28113 sizeof(struct spoolss_GetPrinterDataEx),
28114 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
28115 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
28116 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
28120 "spoolss_EnumPrinterDataEx",
28121 sizeof(struct spoolss_EnumPrinterDataEx),
28122 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
28123 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
28124 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
28128 "spoolss_EnumPrinterKey",
28129 sizeof(struct spoolss_EnumPrinterKey),
28130 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
28131 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
28132 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
28136 "spoolss_DeletePrinterDataEx",
28137 sizeof(struct spoolss_DeletePrinterDataEx),
28138 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
28139 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
28140 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
28144 "spoolss_DeletePrinterKey",
28145 sizeof(struct spoolss_DeletePrinterKey),
28146 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
28147 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
28148 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
28153 sizeof(struct spoolss_53),
28154 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
28155 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
28156 (ndr_print_function_t) ndr_print_spoolss_53,
28160 "spoolss_DeletePrinterDriverEx",
28161 sizeof(struct spoolss_DeletePrinterDriverEx),
28162 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
28163 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
28164 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
28169 sizeof(struct spoolss_55),
28170 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
28171 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
28172 (ndr_print_function_t) ndr_print_spoolss_55,
28177 sizeof(struct spoolss_56),
28178 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
28179 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
28180 (ndr_print_function_t) ndr_print_spoolss_56,
28185 sizeof(struct spoolss_57),
28186 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
28187 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
28188 (ndr_print_function_t) ndr_print_spoolss_57,
28193 sizeof(struct spoolss_XcvData),
28194 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
28195 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
28196 (ndr_print_function_t) ndr_print_spoolss_XcvData,
28200 "spoolss_AddPrinterDriverEx",
28201 sizeof(struct spoolss_AddPrinterDriverEx),
28202 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
28203 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
28204 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
28209 sizeof(struct spoolss_5a),
28210 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
28211 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
28212 (ndr_print_function_t) ndr_print_spoolss_5a,
28217 sizeof(struct spoolss_5b),
28218 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
28219 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
28220 (ndr_print_function_t) ndr_print_spoolss_5b,
28225 sizeof(struct spoolss_5c),
28226 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
28227 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
28228 (ndr_print_function_t) ndr_print_spoolss_5c,
28233 sizeof(struct spoolss_5d),
28234 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
28235 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
28236 (ndr_print_function_t) ndr_print_spoolss_5d,
28241 sizeof(struct spoolss_5e),
28242 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
28243 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
28244 (ndr_print_function_t) ndr_print_spoolss_5e,
28249 sizeof(struct spoolss_5f),
28250 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
28251 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
28252 (ndr_print_function_t) ndr_print_spoolss_5f,
28255 { NULL, 0, NULL, NULL, NULL, false }
28258 static const char * const spoolss_endpoint_strings[] = {
28259 "ncacn_np:[\\pipe\\spoolss]",
28262 static const struct ndr_interface_string_array spoolss_endpoints = {
28264 .names = spoolss_endpoint_strings
28267 static const char * const spoolss_authservice_strings[] = {
28271 static const struct ndr_interface_string_array spoolss_authservices = {
28273 .names = spoolss_authservice_strings
28277 const struct ndr_interface_table ndr_table_spoolss = {
28280 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28281 NDR_SPOOLSS_VERSION
28283 .helpstring = NDR_SPOOLSS_HELPSTRING,
28285 .calls = spoolss_calls,
28286 .endpoints = &spoolss_endpoints,
28287 .authservices = &spoolss_authservices